Skip to content

ci: notarize macOS builds with an App Store Connect API key - #297

Open
sourya-deepsource wants to merge 2 commits into
masterfrom
ci/notarize-api-key
Open

sourya-deepsource wants to merge 2 commits into
masterfrom
ci/notarize-api-key

Conversation

@sourya-deepsource

@sourya-deepsource sourya-deepsource commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

The v2.0.56 prod deploy failed at Notarize (run):

Error: HTTP status code: 401. Unable to authenticate. The application is not allowed for primary authentication.

Notarization used an Apple ID + app-specific password. The secrets haven't changed since 2026-01-28 and worked through v2.0.55 (2026-04-03), so Apple has since stopped accepting the password. Apple revokes app-specific passwords whenever the Apple ID's password changes. This switches notarytool to an App Store Connect Team API key, which isn't tied to a person's account.

Merge only after these repo secrets exist (otherwise the next prod deploy fails at the same step):

  • APPLE_API_KEY_BASE64: base64 of the .p8 key
  • APPLE_API_KEY_ID
  • APPLE_API_ISSUER_ID

Also bumps VERSION to 2.0.57: v2.0.56 is tagged on the commit before this change and was never published. After merging, just deploy-prod from master ships 2.0.57 with the new step.

After 2.0.57 notarizes, APPLE_ID, APPLE_TEAM_ID and APPLE_APP_PASSWORD can be deleted; nothing else uses them.

Dev tags skip this step and are unaffected. Flags were checked against local notarytool; the step itself can only be exercised by a prod tag.

🤖 Generated with Claude Code

Notarization authenticated with an Apple ID + app-specific password.
That password stopped being accepted (401 "not allowed for primary
authentication"), which failed the v2.0.56 prod deploy. App-specific
passwords are revoked whenever the Apple ID's password changes, so
switch to a Team API key, which isn't tied to a person's account.

Requires the APPLE_API_KEY_BASE64, APPLE_API_KEY_ID and
APPLE_API_ISSUER_ID secrets. APPLE_ID, APPLE_TEAM_ID and
APPLE_APP_PASSWORD are no longer used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

AI-Session-Id: 526ae2dd-8c0f-4ca0-b4ca-f1994b0e48e5
AI-Tool: claude-code
AI-Model: unknown
@deepsource-io

deepsource-io Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in bf39f0e...84e5dd8 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Coverage  

Code Review Summary

Analyzer Status Updated (UTC) Details
Go Oct 30, 2026 5:31a.m. Review ↗
Secrets Oct 30, 2026 5:31a.m. Review ↗
Code coverage Oct 30, 2026 5:31a.m. Review ↗

Code Coverage Summary

Language Line Coverage (Overall)
Aggregate
25.4%
Go
25.4%
[✓ above threshold]

➟ Additional coverage metrics may have been reported. See full coverage report ↗


Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

AI-Session-Id: 526ae2dd-8c0f-4ca0-b4ca-f1994b0e48e5
AI-Tool: claude-code
AI-Model: unknown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant