From 5500ebe3a9dfdca8572d6fccb60be4dc2f90496c Mon Sep 17 00:00:00 2001 From: jferrl Date: Sat, 19 Sep 2026 13:44:53 +0200 Subject: [PATCH] fix: publish the Homebrew cask The v1.9.0 release uploaded its archives and checksums, then failed: homebrew cask: expected {{ .Env.VAR_NAME }} only (no plain-text or other interpolation) GoReleaser accepts exactly that form for a tap token and rejects any other, including {{ index .Env "VAR" }}, which is what the config used. The check runs when publishing, so goreleaser check and a snapshot build both accepted the wrong form -- neither local check could have caught this, and only a real release can confirm the fix. skip_upload keeps the index form, which is not subject to the rule and does not fail when the variable is unset. The token resolves because the workflow always sets the variable, to the empty string when the secret is missing, and skip_upload stops the upload before the token is used. --- .goreleaser.yaml | 9 ++++++++- CHANGELOG.md | 12 ++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index e1ed9ed..e927908 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -89,7 +89,14 @@ homebrew_casks: repository: owner: jferrl name: homebrew-tap - token: '{{ index .Env "HOMEBREW_TAP_GITHUB_TOKEN" }}' + # GoReleaser requires exactly {{ .Env.VAR }} here and rejects any other + # form, including {{ index .Env "VAR" }}. It is a publish-time check, so + # "goreleaser check" and snapshot builds both pass a wrong one. + # + # This resolves because the workflow always sets the variable, to the + # empty string when the secret is missing; skip_upload then stops the + # upload before the token is used. + token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}" homepage: https://github.com/jferrl/go-githubauth description: GitHub App authentication for your shell - installation tokens, JWTs and PATs license: MIT diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a61783..0add45b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 > That `v2.0.2` tag is the only thing carrying the retraction — the `v2/` directory no > longer exists on `main` — so the tag must not be deleted or the retraction is lost. +## [v1.9.1] - 2026-09-19 + +### Fixed + +- The v1.9.0 release published its binaries and checksums but not the Homebrew cask. + GoReleaser requires the tap token to be written as exactly `{{ .Env.VAR }}` and rejects + any other form; the config used `{{ index .Env "VAR" }}`. The rule is enforced when + publishing, so `goreleaser check` and snapshot builds both accepted it. + + `brew install jferrl/tap/githubauth` works from this release on. The v1.9.0 archives + were unaffected and remain valid. + ## [v1.9.0] - 2026-09-19 The library is unchanged. This release is the `githubauth` command line tool and the