@@ -3,25 +3,55 @@ name: Update Homebrew Formula
33on :
44 release :
55 types : [published]
6+ workflow_dispatch :
7+ inputs :
8+ tag-name :
9+ description : Release tag to bump the formula to (e.g. v2.8.0)
10+ required : true
11+ type : string
612
713permissions : read-all
814
15+ # mislav/bump-homebrew-formula-action rejects the HTTP 303 redirects GitHub
16+ # now serves for tarball URLs (mislav/bump-homebrew-formula-action#340), so
17+ # the formula is bumped directly via the tap's contents API instead.
918jobs :
1019 homebrew :
1120 name : Bump Homebrew formula
1221 runs-on : ubuntu-latest
1322 if : ${{ !github.event.release.prerelease }}
1423 steps :
15- - uses : mislav/bump-homebrew-formula-action@56a283fa15557e9abaa4bdb63b8212abc68e655c # v3
16- with :
17- formula-name : git-gtr
18- formula-path : Formula/git-gtr.rb
19- homebrew-tap : coderabbitai/homebrew-tap
20- tag-name : ${{ github.event.release.tag_name }}
21- create-pullrequest : false
22- commit-message : |
23- {{formulaName}} {{version}}
24-
25- Automated update from https://github.com/coderabbitai/git-worktree-runner
24+ - name : Bump Formula/git-gtr.rb in coderabbitai/homebrew-tap
2625 env :
27- COMMITTER_TOKEN : ${{ secrets.HOMEBREW_TAP_TOKEN }}
26+ GH_TOKEN : ${{ secrets.HOMEBREW_TAP_TOKEN }}
27+ TAG_NAME : ${{ github.event.release.tag_name || inputs.tag-name }}
28+ run : |
29+ set -euo pipefail
30+
31+ version="${TAG_NAME#v}"
32+ url="https://github.com/coderabbitai/git-worktree-runner/archive/refs/tags/${TAG_NAME}.tar.gz"
33+
34+ curl -fsSL --retry 3 "$url" -o release.tar.gz
35+ sha256=$(sha256sum release.tar.gz | awk '{print $1}')
36+
37+ gh api repos/coderabbitai/homebrew-tap/contents/Formula/git-gtr.rb > formula.json
38+ blob_sha=$(jq -r '.sha' formula.json)
39+ jq -r '.content' formula.json | base64 -d > git-gtr.rb
40+
41+ if grep -qF " url \"${url}\"" git-gtr.rb; then
42+ echo "Formula already at ${TAG_NAME}; nothing to do."
43+ exit 0
44+ fi
45+
46+ sed -i "s|^ url \".*\"$| url \"${url}\"|" git-gtr.rb
47+ sed -i "s|^ sha256 \".*\"$| sha256 \"${sha256}\"|" git-gtr.rb
48+
49+ grep -qF " url \"${url}\"" git-gtr.rb
50+ grep -qF " sha256 \"${sha256}\"" git-gtr.rb
51+
52+ message="$(printf 'git-gtr %s\n\nAutomated update from https://github.com/coderabbitai/git-worktree-runner' "$version")"
53+
54+ gh api --method PUT repos/coderabbitai/homebrew-tap/contents/Formula/git-gtr.rb \
55+ -f message="$message" \
56+ -f content="$(base64 -w0 git-gtr.rb)" \
57+ -f sha="$blob_sha"
0 commit comments