Skip to content

feat(repos): let the factory's release deploy key create its release tags - #102

Merged
NWarila merged 1 commit into
mainfrom
feat/factory-release-deploy-key
Oct 8, 2026
Merged

NWarila merged 1 commit into
mainfrom
feat/factory-release-deploy-key

Conversation

@NWarila

@NWarila NWarila commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

The factory's CI will create each container's release tag after a release-please merge. GitHub does not accept its built-in Actions app as a ruleset bypass actor (the apply of #100 failed with 422, reverted in #101), so CI pushes release tags over SSH with a write deploy key instead.

This change does two things in terraform/public/workflow-container-factory.yml:

  • Version Tag Authority keeps admins as a bypass actor and adds DeployKey, so only admins and the repository's deploy key can create or update a <name>/v* tag. Release Tag Protection still keeps deleting or force-moving a tag to admins.
  • A new release environment that only main may use. Its secret RELEASE_TAG_DEPLOY_KEY (the deploy key's private half) and the deploy key itself are created outside Terraform, which cannot hold key material; the comment in the file says so.

A tag push runs the workflow files at the tagged commit, so limiting who can create release tags is what keeps the factory's signing identity (build.yaml@refs/tags/<name>/v<version>) trustworthy. The bypass was tested first on a disposable repository: the deploy key is refused without the bypass and accepted with it, a workflow-token push is refused with this exact bypass list, and a tag pushed with a deploy key starts tag-push workflows.

@NWarila
NWarila merged commit c90baf8 into main Oct 8, 2026
2 checks passed
@NWarila
NWarila deleted the feat/factory-release-deploy-key branch October 8, 2026 16:21
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