Skip to content

fix(release): read notary issuer_id/key_id from vars not secrets#16

Merged
hmk merged 1 commit into
mainfrom
fix/notary-vars-not-secrets
May 11, 2026
Merged

fix(release): read notary issuer_id/key_id from vars not secrets#16
hmk merged 1 commit into
mainfrom
fix/notary-vars-not-secrets

Conversation

@hmk

@hmk hmk commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

`MACOS_NOTARY_ISSUER_ID` and `MACOS_NOTARY_KEY_ID` are stored as variables (not secrets) in the `release` environment. The workflow was reading them via `secrets.*`, which silently resolved to empty strings.

Goreleaser then hit this skip path:

https://github.com/goreleaser/goreleaser/blob/main/internal/pipe/notary/macos.go#L103-L107

if cfg.Notarize.IssuerID == "" || cfg.Notarize.KeyID == "" || cfg.Notarize.Key == "" {
  log.WithField("binary", bin.Path).Info("will not try to notarize")
  continue
}

So v0.1.2 was signed but not notarized.

Test plan

  • Merge → empty fix commit on main → release-please opens 0.1.3 PR → merge → goreleaser run logs `notarizing` lines per darwin binary
  • Download v0.1.3 darwin tarball, run `spctl --assess --type execute -vv ./try`, confirm `source=Notarized Developer ID`

🤖 Generated with Claude Code

These two are stored as environment variables (not secrets) in the
release environment. Previous workflow read them via secrets.* which
silently resolved to empty strings, causing goreleaser to log
"will not try to notarize" and ship signed-but-not-notarized binaries.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hmk hmk merged commit f2efd48 into main May 11, 2026
4 checks passed
@hmk hmk deleted the fix/notary-vars-not-secrets branch May 11, 2026 21:25
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.

1 participant