Skip to content

Fix Homebrew tap publishing: master→main, fine-grained PAT diagnosis, manual dispatch#27

Merged
execsumo merged 5 commits into
mainfrom
claude/brew-version-availability-BykQM
Jun 2, 2026
Merged

Fix Homebrew tap publishing: master→main, fine-grained PAT diagnosis, manual dispatch#27
execsumo merged 5 commits into
mainfrom
claude/brew-version-availability-BykQM

Conversation

@execsumo

@execsumo execsumo commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix tap push branch name — CI was pushing to refs/heads/master in execsumo/homebrew-heard, but that repo's default branch is main. Every release since v0.2.0 silently pushed to a dead branch; the tap stayed on 0.1.0.
  • Standardize mastermain throughout ci.yml, release.sh, and CLAUDE.md to match the repo rename and industry standard.
  • Add update-tap.yml — manual workflow_dispatch workflow to publish any version to the tap without cutting a full release. Used to close the 0.1.0 → 0.2.2 gap immediately.

The tap is already updated to 0.2.2 (workflow ran successfully after the root-cause GH_PAT token was corrected — the stored secret was a fine-grained PAT without Contents:write on homebrew-heard).

Test plan

  • update-tap.yml ran successfully and execsumo/homebrew-heard now shows version 0.2.2
  • After merge, verify ci.yml release job pushes to refs/heads/main on the next release

Generated by Claude Code

claude added 5 commits June 1, 2026 18:51
The CI was pushing to refs/heads/master in execsumo/homebrew-heard, but
that repo's default branch is main — so v0.2.0, v0.2.1, and v0.2.2 never
reached brew users (tap is still on 0.1.0).

Fixes: change tap push target to refs/heads/main.
Adds: update-tap.yml workflow_dispatch so the 0.2.2 gap can be closed
immediately without cutting a new release.

https://claude.ai/code/session_017hkC9vmFd9ejBQNxzBfcWP
Industry standard since GitHub changed its default in 2020.
Updates ci.yml (comment + push target), release.sh (branch check + push),
and CLAUDE.md (docs reference).

Note: the GitHub repo's default branch also needs renaming in Settings →
Branches. Until then, release.sh will reject runs on the old master branch.

https://claude.ai/code/session_017hkC9vmFd9ejBQNxzBfcWP
git push via PAT was hitting a 403 despite correct repo scope.
Switching to the Contents API (curl PUT) avoids the git auth path
entirely — same token, different mechanism.

https://claude.ai/code/session_017hkC9vmFd9ejBQNxzBfcWP
The REST API switch was a non-fix: it reuses the same GH_PAT and hits
the identical 403 permission check, so it could never resolve the push
denial. Reverted ci.yml back to the git-push path.

Added a diagnostic step to update-tap.yml that prints the stored secret's
actual scopes (x-oauth-scopes), authenticated login, and .permissions on
homebrew-heard — so the next run reveals whether the secret can write,
rather than us guessing.

https://claude.ai/code/session_017hkC9vmFd9ejBQNxzBfcWP
Root cause was a fine-grained PAT in the GH_PAT secret without
Contents: write on homebrew-heard. Token updated; tap now publishes
0.2.2. Diagnostic is no longer needed.

https://claude.ai/code/session_017hkC9vmFd9ejBQNxzBfcWP
@execsumo execsumo merged commit 1e31438 into main Jun 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants