feat(render): lock a release-gated trunk to pipeline-bot #2015

Merged
sean merged 1 commit from feat/render-integration-protection into trunk 2026-08-07 19:06:17 +00:00
Owner

R6. A release-gated trunk gets the merge whitelist main already has, so release-only is true at the provider, not by convention.

Derived from integrationMode, NOT MergeStyle (FFMergeOnly comes from MergeStyle alone).

INERT: no project sets the mode, no golden changed. The both-directions test caught my own wrong field name. 129/129 guards.

R6. A release-gated trunk gets the merge whitelist main already has, so release-only is true at the provider, not by convention. Derived from integrationMode, NOT MergeStyle (FFMergeOnly comes from MergeStyle alone). INERT: no project sets the mode, no golden changed. The both-directions test caught my own wrong field name. 129/129 guards.
feat(render): lock a release-gated trunk to pipeline-bot
All checks were successful
pipeline/ci CI green @ a9db0f88618e
a9db0f8861
R6 of RELEASE-TRAIN-AND-EVENT-TRIGGERS.md. Inert: no project sets
integrationMode=release, and no golden changed.

A trunk whose Release act owns merging now carries the merge whitelist main
already carries. This is what makes "release-only" true at the PROVIDER instead
of true by convention: without it anybody with write access can still move the
integration branch under a running train.

ReleaseGatedIntegration is derived from spec.release.integrationMode, and
deliberately not from MergeStyle. FFMergeOnly comes from MergeStyle alone, so
adding a value there would change which integration sensors render as a side
effect of asking for a different merge owner.

The test asserts both directions, which is what caught my own error: I guessed
the field was spec.ruleName, and main failed alongside trunk rather than the new
case failing alone. A one-direction test would have passed on the wrong field.
sean merged commit a9db0f8861 into trunk 2026-08-07 19:06:17 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/pipelines!2015
No description provided.