@@ -140,6 +140,8 @@ jobs:
140140 name : Update Homebrew tap
141141 needs : [release]
142142 runs-on : ubuntu-latest
143+ permissions :
144+ contents : read
143145 steps :
144146 - uses : actions/download-artifact@v8
145147 with :
@@ -155,65 +157,17 @@ jobs:
155157 echo "linux_arm=$(sha256sum cnctl-aarch64-unknown-linux-gnu.tar.gz | awk '{print $1}')" >> "$GITHUB_OUTPUT"
156158 echo "linux_x86=$(sha256sum cnctl-x86_64-unknown-linux-gnu.tar.gz | awk '{print $1}')" >> "$GITHUB_OUTPUT"
157159
158- - name : Checkout homebrew tap
159- uses : actions/checkout@v6
160- with :
161- repository : CloudNativeBergen/homebrew-tap
162- token : ${{ secrets.HOMEBREW_TAP_TOKEN }}
163- path : homebrew-tap
164-
165- - name : Write formula
160+ # Dispatch to homebrew-tap so its own GITHUB_TOKEN writes the formula —
161+ # no cross-repo PAT needed.
162+ - name : Trigger tap update
166163 env :
167- VERSION : ${{ needs.release.outputs.tag }}
168- MAC_ARM_SHA : ${{ steps.sums.outputs.mac_arm }}
169- MAC_X86_SHA : ${{ steps.sums.outputs.mac_x86 }}
170- LINUX_ARM_SHA : ${{ steps.sums.outputs.linux_arm }}
171- LINUX_X86_SHA : ${{ steps.sums.outputs.linux_x86 }}
172- run : |
173- mkdir -p homebrew-tap/Formula
174- cat > homebrew-tap/Formula/cnctl.rb << FORMULA
175- class Cnctl < Formula
176- desc "Organizer CLI for Cloud Native Days Norway"
177- homepage "https://github.com/CloudNativeBergen/cnctl"
178- version "${VERSION}"
179- license "MIT"
180-
181- on_macos do
182- if Hardware::CPU.arm?
183- url "https://github.com/CloudNativeBergen/cnctl/releases/download/${VERSION}/cnctl-aarch64-apple-darwin.tar.gz"
184- sha256 "${MAC_ARM_SHA}"
185- else
186- url "https://github.com/CloudNativeBergen/cnctl/releases/download/${VERSION}/cnctl-x86_64-apple-darwin.tar.gz"
187- sha256 "${MAC_X86_SHA}"
188- end
189- end
190-
191- on_linux do
192- if Hardware::CPU.arm?
193- url "https://github.com/CloudNativeBergen/cnctl/releases/download/${VERSION}/cnctl-aarch64-unknown-linux-gnu.tar.gz"
194- sha256 "${LINUX_ARM_SHA}"
195- else
196- url "https://github.com/CloudNativeBergen/cnctl/releases/download/${VERSION}/cnctl-x86_64-unknown-linux-gnu.tar.gz"
197- sha256 "${LINUX_X86_SHA}"
198- end
199- end
200-
201- def install
202- bin.install "cnctl"
203- end
204-
205- test do
206- assert_match version.to_s, shell_output("#{bin}/cnctl --version")
207- end
208- end
209- FORMULA
210-
211- - name : Commit and push
164+ GH_TOKEN : ${{ github.token }}
212165 run : |
213- cd homebrew-tap
214- git config user.name "github-actions[bot]"
215- git config user.email "github-actions[bot]@users.noreply.github.com"
216- git add Formula/cnctl.rb
217- git diff --cached --quiet && echo "No changes" && exit 0
218- git commit -m "chore: update cnctl to ${{ needs.release.outputs.tag }}"
219- git push
166+ gh api repos/CloudNativeBergen/homebrew-tap/dispatches \
167+ --method POST \
168+ --field event_type=update-formula \
169+ --field client_payload[version]="${{ needs.release.outputs.tag }}" \
170+ --field client_payload[mac_arm]="${{ steps.sums.outputs.mac_arm }}" \
171+ --field client_payload[mac_x86]="${{ steps.sums.outputs.mac_x86 }}" \
172+ --field client_payload[linux_arm]="${{ steps.sums.outputs.linux_arm }}" \
173+ --field client_payload[linux_x86]="${{ steps.sums.outputs.linux_x86 }}"
0 commit comments