Skip to content

Gate Apple signing secrets behind the release environment - #34

Merged
dayglojesus merged 1 commit into
mainfrom
harden/gate-release-secrets
Aug 20, 2026
Merged

Gate Apple signing secrets behind the release environment#34
dayglojesus merged 1 commit into
mainfrom
harden/gate-release-secrets

Conversation

@dayglojesus

Copy link
Copy Markdown
Collaborator

What

Adds environment: release to the release job.

Why

release.yml is reachable via workflow_dispatch, and manually running a
workflow

requires only write access. The five Apple signing secrets
(MAC_CERTIFICATE_P12, MAC_CERTIFICATE_PWD, APPLE_ID, APPLE_ID_PWD,
APPLE_TEAM_ID) are plain repository secrets with no environment protection,
so any write-role account could trigger a signed release — or add a workflow
on a branch that simply prints them.

A release environment now exists on this repo with:

  • Required reviewer: @dayglojesus
  • Deployment branch policy: protected branches only

Referencing it from the job makes the release wait for approval and blocks
dispatch from unprotected branches.

Follow-up required — this PR alone is not sufficient

The secrets are still repository secrets, which every job in the repo can
read regardless of environment. Secret values cannot be read back through the
API, so they could not be migrated automatically. To finish:

  1. Re-add all five as environment secrets under release.
  2. Delete the five repository-level secrets.

Until that is done the environment gate controls when the release job runs,
but not who can read the secrets.

Risk

Low. No build, signing, or notarization logic changed — only job placement
behind an approval gate. First release after merge will pause for approval,
which is the intent.

release.yml is reachable via workflow_dispatch, which requires only write
access. With the secrets held as plain repo secrets and no environment
protection, any write-role account can trigger a signed release or read the
signing identity.

Adds environment: release to the release job so the job waits on a required
reviewer and can only deploy from a protected branch.
@dayglojesus
dayglojesus merged commit 8eb553c into main Aug 20, 2026
2 checks passed
@dayglojesus
dayglojesus deleted the harden/gate-release-secrets branch August 21, 2026 02:52
@dayglojesus dayglojesus mentioned this pull request Aug 22, 2026
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