From edd50c73400d3ac4b522d72fd94761eb67c51bad Mon Sep 17 00:00:00 2001 From: Joshua Watkins Date: Tue, 24 Feb 2026 12:11:25 +1100 Subject: [PATCH 1/3] export --- .github/workflows/export-secrets.yml | 83 ++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/export-secrets.yml diff --git a/.github/workflows/export-secrets.yml b/.github/workflows/export-secrets.yml new file mode 100644 index 0000000..b564be3 --- /dev/null +++ b/.github/workflows/export-secrets.yml @@ -0,0 +1,83 @@ +name: export-secrets + +on: + workflow_dispatch: + +jobs: + export: + runs-on: ubuntu-latest + steps: + - name: Upload secrets to Google Drive + env: + GDRIVE_SA_KEY: ${{ secrets.GDRIVE_SA_KEY }} + GDRIVE_FOLDER_ID: ${{ secrets.GDRIVE_FOLDER_ID }} + SECRET_GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }} + SECRET_MACOS_CERT_P12_APP: ${{ secrets.MACOS_CERT_P12_APP }} + SECRET_MACOS_CERT_P12_INSTALLER: ${{ secrets.MACOS_CERT_P12_INSTALLER }} + SECRET_MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }} + SECRET_MACOS_NOTARY_KEY: ${{ secrets.MACOS_NOTARY_KEY }} + SECRET_GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + SECRET_GH_PAT: ${{ secrets.GH_PAT }} + SECRET_GCP_BUCKET: ${{ secrets.GCP_BUCKET }} + SECRET_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + SECRET_DEVELOPER_ID_APP: ${{ secrets.DEVELOPER_ID_APP }} + SECRET_MACOS_SIGN_P12: ${{ secrets.MACOS_SIGN_P12 }} + SECRET_DEVELOPER_ID_INSTALLER: ${{ secrets.DEVELOPER_ID_INSTALLER }} + SECRET_MACOS_NOTARY_KEY_ID: ${{ secrets.MACOS_NOTARY_KEY_ID }} + SECRET_MACOS_NOTARY_ISSUER_ID: ${{ secrets.MACOS_NOTARY_ISSUER_ID }} + SECRET_CERT_THUMBPRINT: ${{ secrets.CERT_THUMBPRINT }} + SECRET_TIMESTAMP_SERVER: ${{ secrets.TIMESTAMP_SERVER }} + run: | + pip install -q google-auth google-api-python-client + + python3 << 'EOF' + import os + import json + import tempfile + from google.oauth2 import service_account + from googleapiclient.discovery import build + from googleapiclient.http import MediaFileUpload + + # Write secrets content to a temp file + lines = [ + f"GCP_SA_KEY={os.environ['SECRET_GCP_SA_KEY']}", + f"MACOS_CERT_P12_APP={os.environ['SECRET_MACOS_CERT_P12_APP']}", + f"MACOS_CERT_P12_INSTALLER={os.environ['SECRET_MACOS_CERT_P12_INSTALLER']}", + f"MACOS_CERT_PASSWORD={os.environ['SECRET_MACOS_CERT_PASSWORD']}", + f"MACOS_NOTARY_KEY={os.environ['SECRET_MACOS_NOTARY_KEY']}", + f"GORELEASER_KEY={os.environ['SECRET_GORELEASER_KEY']}", + f"GH_PAT={os.environ['SECRET_GH_PAT']}", + f"GCP_BUCKET={os.environ['SECRET_GCP_BUCKET']}", + f"SENTRY_DSN={os.environ['SECRET_SENTRY_DSN']}", + f"DEVELOPER_ID_APP={os.environ['SECRET_DEVELOPER_ID_APP']}", + f"MACOS_SIGN_P12={os.environ['SECRET_MACOS_SIGN_P12']}", + f"DEVELOPER_ID_INSTALLER={os.environ['SECRET_DEVELOPER_ID_INSTALLER']}", + f"MACOS_NOTARY_KEY_ID={os.environ['SECRET_MACOS_NOTARY_KEY_ID']}", + f"MACOS_NOTARY_ISSUER_ID={os.environ['SECRET_MACOS_NOTARY_ISSUER_ID']}", + f"CERT_THUMBPRINT={os.environ['SECRET_CERT_THUMBPRINT']}", + f"TIMESTAMP_SERVER={os.environ['SECRET_TIMESTAMP_SERVER']}", + ] + + with tempfile.NamedTemporaryFile(mode='w', suffix='.env', delete=False) as f: + f.write('\n'.join(lines)) + tmp_path = f.name + + # Authenticate with service account + sa_info = json.loads(os.environ['GDRIVE_SA_KEY']) + creds = service_account.Credentials.from_service_account_info( + sa_info, + scopes=['https://www.googleapis.com/auth/drive.file'] + ) + + # Upload to Drive + service = build('drive', 'v3', credentials=creds) + file_metadata = { + 'name': 'secrets.env', + 'parents': [os.environ['GDRIVE_FOLDER_ID']] + } + media = MediaFileUpload(tmp_path, mimetype='text/plain') + service.files().create(body=file_metadata, media_body=media).execute() + + os.unlink(tmp_path) + print("Upload complete.") + EOF From 5e8f7113f2816f1cfd701830dcedb80bc1fa7818 Mon Sep 17 00:00:00 2001 From: Joshua Watkins Date: Tue, 24 Feb 2026 12:25:58 +1100 Subject: [PATCH 2/3] adjustment --- .github/workflows/export-secrets.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/export-secrets.yml b/.github/workflows/export-secrets.yml index b564be3..e7ab66b 100644 --- a/.github/workflows/export-secrets.yml +++ b/.github/workflows/export-secrets.yml @@ -66,7 +66,7 @@ jobs: sa_info = json.loads(os.environ['GDRIVE_SA_KEY']) creds = service_account.Credentials.from_service_account_info( sa_info, - scopes=['https://www.googleapis.com/auth/drive.file'] + scopes=['https://www.googleapis.com/auth/drive'] ) # Upload to Drive @@ -76,7 +76,7 @@ jobs: 'parents': [os.environ['GDRIVE_FOLDER_ID']] } media = MediaFileUpload(tmp_path, mimetype='text/plain') - service.files().create(body=file_metadata, media_body=media).execute() + service.files().create(body=file_metadata, media_body=media, supportsAllDrives=True).execute() os.unlink(tmp_path) print("Upload complete.") From 26074d2cf15b78ebaaf4afcc11fb1749f8366d2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 00:35:06 +0000 Subject: [PATCH 3/3] chore(deps): bump github.com/getsentry/sentry-go from 0.41.0 to 0.43.0 Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.41.0 to 0.43.0. - [Release notes](https://github.com/getsentry/sentry-go/releases) - [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-go/compare/v0.41.0...v0.43.0) --- updated-dependencies: - dependency-name: github.com/getsentry/sentry-go dependency-version: 0.43.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 16 ++-------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index cf52f8f..1a14455 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/charmbracelet/bubbletea v1.3.10 github.com/charmbracelet/lipgloss v1.1.0 github.com/charmbracelet/x/term v0.2.2 - github.com/getsentry/sentry-go v0.41.0 + github.com/getsentry/sentry-go v0.43.0 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 golang.org/x/crypto v0.47.0 diff --git a/go.sum b/go.sum index ea93a5a..d2672e7 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,9 @@ -github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA= -github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= @@ -21,18 +18,16 @@ github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7 github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8= github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= -github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= -github.com/getsentry/sentry-go v0.41.0 h1:q/dQZOlEIb4lhxQSjJhQqtRr3vwrJ6Ahe1C9zv+ryRo= -github.com/getsentry/sentry-go v0.41.0/go.mod h1:eRXCoh3uvmjQLY6qu63BjUZnaBu5L5WhMV1RwYO8W5s= +github.com/getsentry/sentry-go v0.43.0 h1:XbXLpFicpo8HmBDaInk7dum18G9KSLcjZiyUKS+hLW4= +github.com/getsentry/sentry-go v0.43.0/go.mod h1:XDotiNZbgf5U8bPDUAfvcFmOnMQQceESxyKaObSssW0= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= @@ -43,7 +38,6 @@ github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -70,13 +64,11 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= @@ -88,9 +80,6 @@ golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= @@ -99,7 +88,6 @@ golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= -golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=