From d77ed23d09184b198191e3bfd363e010f5e55a8b Mon Sep 17 00:00:00 2001 From: SuperDooper <37051355+superdooper86@users.noreply.github.com> Date: Fri, 8 May 2026 17:06:06 +0200 Subject: [PATCH] Fix: use GitHub API to update files instead of git push to protected main --- .github/workflows/release.yml | 41 +++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 33a3d8d..2789fbf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,13 +58,6 @@ jobs: --arg notes "$notes" \ '{version: $version, url: $url, notes: $notes}' > version.json - - name: Update Homebrew cask - run: | - sed -i '' \ - -e 's/version "[^"]*"/version "${{ steps.version.outputs.version }}"/' \ - -e 's/sha256 "[^"]*"/sha256 "${{ steps.sha.outputs.sha256 }}"/' \ - ../homebrew-tap/Casks/claudechecker.rb 2>/dev/null || true - - name: Update README badge env: NEW_VERSION: ${{ steps.version.outputs.version }} @@ -85,14 +78,34 @@ jobs: open('README.md', 'w').writelines(out) " - - name: Commit version.json and README + - name: Commit version.json and README via API + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add version.json README.md - git commit -m "Release ${{ github.ref_name }}" - git pull --rebase origin main - git push origin HEAD:main + python3 - <<'PYEOF' + import base64, subprocess, os + + repo = os.environ['GITHUB_REPOSITORY'] + ref_name = os.environ['GITHUB_REF_NAME'] + msg = f'Release {ref_name}' + + def api_put(path): + sha = subprocess.check_output( + ['gh', 'api', f'repos/{repo}/contents/{path}', '--jq', '.sha'], + text=True + ).strip() + content = base64.b64encode(open(path, 'rb').read()).decode() + subprocess.run([ + 'gh', 'api', '--method', 'PUT', + f'repos/{repo}/contents/{path}', + '-f', f'message={msg}', + '-f', f'content={content}', + '-f', f'sha={sha}', + ], check=True) + + api_put('version.json') + api_put('README.md') + PYEOF - name: Update Homebrew tap env: