Fix: use GitHub API to update files instead of git push to protected main

This commit is contained in:
SuperDooper
2026-05-08 17:06:06 +02:00
parent 6136b0ded0
commit d77ed23d09
+27 -14
View File
@@ -58,13 +58,6 @@ jobs:
--arg notes "$notes" \ --arg notes "$notes" \
'{version: $version, url: $url, notes: $notes}' > version.json '{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 - name: Update README badge
env: env:
NEW_VERSION: ${{ steps.version.outputs.version }} NEW_VERSION: ${{ steps.version.outputs.version }}
@@ -85,14 +78,34 @@ jobs:
open('README.md', 'w').writelines(out) 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: | run: |
git config user.name "github-actions[bot]" python3 - <<'PYEOF'
git config user.email "github-actions[bot]@users.noreply.github.com" import base64, subprocess, os
git add version.json README.md
git commit -m "Release ${{ github.ref_name }}" repo = os.environ['GITHUB_REPOSITORY']
git pull --rebase origin main ref_name = os.environ['GITHUB_REF_NAME']
git push origin HEAD:main 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 - name: Update Homebrew tap
env: env: