docs(rulesets): list required_deployments as an ignored ruleset rule - #12367
Conversation
Merge Protections🟢 All 6 merge protections satisfied — ready to merge. Show 6 satisfied protections🟢 🤖 Continuous Integration
🟢 👀 Review Requirements
🟢 Enforce conventional commitMake sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
🟢 🔎 Reviews
🟢 📕 PR description
🟢 🚦 Auto-queueWhen all merge protections are satisfied, this pull request will be queued automatically. |
There was a problem hiding this comment.
Pull request overview
Clarifies the GitHub Rulesets compatibility documentation so readers don’t misinterpret required_deployments as a Mergify-injected merge condition, and instead understand that GitHub enforces it while Mergify only reads it for a specific Merge Protections configuration check.
Changes:
- Updates the
required_deploymentscompatibility-table row to explicitly state it is not injected and is enforced by GitHub. - Adds a new “Required Deployments” section explaining enforcement behavior and the one case where Mergify reads the rule.
- Tightens surrounding explanatory text to clarify that only “Injected as conditions” rows become Mergify conditions.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Revision history
|
deb4a2f to
6e32f13
Compare
6e32f13 to
a5d30cf
Compare
The Ruleset Rule Compatibility table put "Used by Merge Protections" in the `required_deployments` behavior column, directly under two rows reading "Injected as conditions". Readers compared the rows and concluded Mergify turns the rule into a merge condition and holds a pull request until the required deployment succeeds. It does not: the rule is never injected, for the merge action or the merge queue. There is nothing for the table to say about it, so the row goes and the rule joins the Ignored Rule Types list, which already carries the right message: Mergify will not enforce these, ensure GitHub does. The intro made the same blanket claim one level up and now says Mergify injects the supported rules as conditions. Fixes MRGFY-8644 Change-Id: Id4da85649474e01415e299033832bf04154a172b
a5d30cf to
34020e1
Compare
Merge Queue Status
This pull request spent 3 minutes 28 seconds in the queue, including 2 minutes 27 seconds running CI. Required conditions to merge
|
The Ruleset Rule Compatibility table put "Used by Merge Protections" in the
required_deploymentsbehavior column, directly under two rows reading "Injected as conditions". Readers compare the rows and conclude Mergify turns the rule into a merge condition, i.e. that it holds a pull request until the required deployment succeeds. It does not. The confusion is not hypothetical: a HackerOne reporter built an authorization-bypass report on that reading.get_repository_rulesets_conditions()branches onrequired_status_checksandpull_requestonly. There is norequired_deploymentsbranch, so the rule is never injected, for the merge action or the merge queue.The table has nothing to say about a rule Mergify does not inject, so the row goes and
required_deploymentsjoins the Ignored Rule Types list, which already says what a reader needs: "Mergify will not enforce them", "ensure they are enforced by GitHub directly on your target branch".The intro made the same blanket claim one level up ("injects them as conditions"), now "injects the supported ones".
One caveat for the reviewer: the Ignored Rule Types section opens with "not processed by Mergify". That is true of the injection pipeline, which is what this page covers, but Mergify does read the rule elsewhere, in the Merge Protections healthcheck for
reporting_method: deployments. If you would rather that nuance were visible, it belongs on the Merge Protections page, not here.Adjacent PR: #12362 rewrites the bypass-mode guidance on this same file. It does not touch the table or the ignored list, and the two merge cleanly.
Fixes MRGFY-8644