Skip to content

NO-ISSUE: Let ci-duty bypass branch protections with its role - #280

Merged
eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:ci-maintainer-bypass
Oct 22, 2026
Merged

eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:ci-maintainer-bypass

Conversation

@eliorerz

@eliorerz eliorerz commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

The ci-maintainer repository role of the ci-duty team (on osac and osac-test-infra) gets the permission bypass_branch_protection ("Bypass branch protections").

Why: the force-merge checkbox of a pull request ("Merge without waiting for requirements to be met") is offered only to someone who can bypass every rule on the branch. ci-duty already bypasses the rulesets (ruleset_bypass_team_ids) and, on osac, the review requirements (pull_request_bypassers), but the role itself had no bypass permission. People of the team reported that a pull request that was ejected from the merge queue shows them only "Merge when ready" and no force merge, while one that never was queued shows the checkbox.

What this changes: one entry in the permissions of github_organization_repository_role.ci_maintainer and its description and comment, and a line in the README. Nothing else. After the apply, the role has the seven permissions it has in this repository (the Actions secrets and variables ones among them) plus the new one.

Note: the permission was added by hand in the organization settings for a test, which also left the live role without the Actions secrets and variables permissions. The next apply puts both right, so please merge this before anyone edits the role again in the settings, or the apply will remove the manual bypass permission again.

Not verified: that the checkbox shows for a member of the team on an ejected pull request once the role has the permission. I could only check, with an account of the team, that GitHub already reports the team as able to bypass the ruleset and to merge as admin on every pull request. Please check on an ejected pull request after the apply.

Summary

  • Authorization: Added bypass_branch_protection to the ci-maintainer repository role for osac and osac-test-infra. The role description and comments now document this permission alongside its existing repository and Actions permissions.
  • CI operations: The permission is intended to let ci-duty members bypass branch protection when merging, including access to GitHub’s “Merge without waiting for requirements to be met” checkbox. That behavior was not verified on an ejected pull request.
  • Documentation: Updated the README to describe the role’s branch-protection bypass permission.
  • Compatibility: This adds a permission to an existing role. No breaking change is documented. The permission change applies when the configuration is applied.
  • Tests and review status: No test results or current review findings were supplied.

Risk classification

The applied risk label and the criteria for risk:ship, risk:show, or risk:ask were not supplied. The repository search found no labeling criteria. The classification, including whether the change was close to another label, cannot be determined from the available evidence.

The force-merge checkbox of a pull request ("Merge without waiting for
requirements to be met") is offered only to someone who can bypass every
rule on the branch. ci-duty is already a bypass actor of the rulesets and
of the review requirements, but its repository role, ci-maintainer, had no
permission to bypass branch protections, so a pull request ejected from
the merge queue showed the team only "Merge when ready".

Add bypass_branch_protection to the ci-maintainer role (osac and
osac-test-infra) and say so in its description and in the README.

Signed-off-by: Elior Erez <eerez@redhat.com>
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Central YAML; Path: .coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: cdfd4c69-e55a-4071-9208-4e9b32c5a7d7
📥 Commits

Reviewing files that changed from the base of the PR and between 4251893 and 69c0b30.

📒 Files selected for processing: 2
  • README.md
  • organization.tf

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Walkthrough

The ci_maintainer role adds the bypass_branch_protection permission. The Terraform comments and README role description now include branch-protection bypass.

Changes

CI Maintainer Role

Layer / File(s) Summary
Role permission and description
organization.tf, README.md
The ci_maintainer role adds bypass_branch_protection. Its comments and README description now include branch-protection bypass.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Feature

Suggested labels: risk:ask

Merge Risk: ⚪ Minimal · up to 69c0b

No actionable issue is established before merge. Check the ejected-pull-request checkbox after applying the role change as planned.

Pre-merge checks: Passed 11
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title names the main change: adding branch-protection bypass to the ci-maintainer role for the ci-duty team. The raw summary confirms the README and organization.tf changes add bypass_branch_prote…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
No-Hardcoded-Secrets Passed The pull request changes only README.md and organization.tf. Added content contains permission names, documentation, and the bypass_branch_protection literal. It adds no API key, token value, pa…
No-Weak-Crypto Passed The pull request changes only README.md and organization.tf. The diff adds the GitHub permission bypass_branch_protection and updates documentation. It introduces no MD5, SHA1, DES, RC4, 3DES, Blowf…
No-Injection-Vectors Passed PASS. The pull request changes only static README text and Terraform role metadata. The added bypass_branch_protection permission and descriptions contain no SQL concatenation, shell execution, eval…
Container-Privileges Passed PASS: The pull request changes only README.md and organization.tf. It adds a GitHub repository-role permission and documentation. It does not modify container or Kubernetes manifests, and it intro…
No-Sensitive-Data-In-Logs Passed The pull request changes only README.md and organization.tf. The diff adds a repository-role permission, descriptions, and comments. It adds no logging statements or sensitive values such as passwords…
Ai-Attribution Passed No AI tool use is mentioned in the authored PR description or commit message. The only commit trailer is Signed-off-by; no Co-Authored-By, Assisted-by, or Generated-by trailer is present. The “AI-gene…
Full details: Title check

Explanation

The title names the main change: adding branch-protection bypass to the ci-maintainer role for the ci-duty team. The raw summary confirms the README and organization.tf changes add bypass_branch_protection to that role. The title is short and specific. The 'NO-ISSUE:' prefix is a tracking tag and does not affect the assessment.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)

Full details: No-Hardcoded-Secrets

Explanation

The pull request changes only README.md and organization.tf. Added content contains permission names, documentation, and the bypass_branch_protection literal. It adds no API key, token value, password, private key, credential-bearing URL, or long base64/hex string.

Full details: No-Weak-Crypto

Explanation

The pull request changes only README.md and organization.tf. The diff adds the GitHub permission bypass_branch_protection and updates documentation. It introduces no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB usage, custom cryptography, or secret/token comparisons.

Full details: No-Injection-Vectors

Explanation

PASS. The pull request changes only static README text and Terraform role metadata. The added bypass_branch_protection permission and descriptions contain no SQL concatenation, shell execution, eval/exec, unsafe deserialization, unsafe YAML loading, or HTML injection.

Full details: Container-Privileges

Explanation

PASS: The pull request changes only README.md and organization.tf. It adds a GitHub repository-role permission and documentation. It does not modify container or Kubernetes manifests, and it introduces none of the listed privileged settings.

Full details: No-Sensitive-Data-In-Logs

Explanation

The pull request changes only README.md and organization.tf. The diff adds a repository-role permission, descriptions, and comments. It adds no logging statements or sensitive values such as passwords, tokens, API keys, PII, session IDs, hostnames, or customer data.

Full details: Ai-Attribution

Explanation

No AI tool use is mentioned in the authored PR description or commit message. The only commit trailer is Signed-off-by; no Co-Authored-By, Assisted-by, or Generated-by trailer is present. The “AI-generated summary” label is review metadata, not contributor attribution.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@eliorerz
eliorerz merged commit a0ca085 into osac-project:main Oct 22, 2026
2 checks passed
@eliorerz
eliorerz deleted the ci-maintainer-bypass branch October 22, 2026 23:13
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.

1 participant