Skip to content

Separate versions publishing privileges from release#1128

Open
zsol wants to merge 1 commit into
mainfrom
zsol/codex/fix-issue-019e1833
Open

Separate versions publishing privileges from release#1128
zsol wants to merge 1 commit into
mainfrom
zsol/codex/fix-issue-019e1833

Conversation

@zsol
Copy link
Copy Markdown
Member

@zsol zsol commented May 12, 2026

Summary

This moves versions publishing back into a dedicated reusable workflow, keeping the release job limited to release creation and artifact publication instead of executing code from the external versions repository under the release token. The versions workflow remains isolated with empty top-level permissions and no persisted checkout credentials, preserving the intended least-privilege boundary.

@zsol zsol requested a review from woodruffw May 12, 2026 13:54
Comment thread .github/workflows/publish-versions.yml Fixed
Comment thread .github/workflows/publish-versions.yml Fixed
Comment thread .github/workflows/publish-versions.yml Fixed
@zsol zsol added the ci:skip label May 12, 2026
@zsol
Copy link
Copy Markdown
Member Author

zsol commented May 12, 2026

Not sure we should do this tbh - it limits the scope of GITHUB_TOKEN so a compromised versions repository will not have access to it, which is technically a supply-chain escalation. But once someone has access to versions they can do much worse things than steal a GITHUB_TOKEN for this repo.

OTOH I don't have much context for why #1085 inlined these steps in the first place - what's the cost of an environment activation?

cc @woodruffw and @zanieb who will have more context

@zsol zsol marked this pull request as ready for review May 12, 2026 14:08
@zsol zsol force-pushed the zsol/codex/fix-issue-019e1833 branch from 0990d35 to cdfd4bd Compare May 12, 2026 14:10
@zanieb
Copy link
Copy Markdown
Member

zanieb commented May 12, 2026

Activating the release environment requires another manual approval.

We'd need to setup the release-gate workflow here to have the approval be automatic after the first manual approval.
We might need to do that anyway.

Regardless, we use a shared release environment across all of our projects. I'm not sure what this buys us if it doesn't use a dedicated separate environment? And I'm also not sure it's worth the effort of separating them all into least-permissions buckets, though it could be nice 🤷‍♀️ It would definitely require changes to the policy design in the release-gate service.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants