Repository navigation
NO-ISSUE: Add a ci-maintainer repository role for ci-duty - #270
Conversation
ci-duty has push on osac and osac-test-infra, and the CI/CD admin org role. That role covers only org-level Actions settings, so repository secrets and variables (BUF_TOKEN, KONFLUX_SA_TOKEN, COPR webhook, fullsend), environments, Actions settings and repository runners still needed repository admin. Add a custom repository role, ci-maintainer: write, plus managing those Actions settings, and merge queue priority (jump the queue, solo merge). Give it to ci-duty on osac and osac-test-infra in place of push. The module's teams variable now also accepts a custom role name. Assisted-by: Claude Code (Claude Opus 5.5) <[email protected]> Signed-off-by: Elior Erez <[email protected]>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
WalkthroughThe configuration adds a custom ChangesCI Maintainer Repository Role
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Suggested labels: Suggested reviewers: Merge Risk: ⚪ Minimal · up to
|
| Check name | Status | Explanation |
|---|---|---|
| Description Check | Check skipped - CodeRabbit’s high-level summary is enabled. | |
| Title check | The title clearly identifies the main change: adding the ci-maintainer repository role for ci-duty. |
|
| Docstring Coverage | 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 | Check skipped because no linked issues were found for this pull request. | |
| Out of Scope Changes check | Check skipped because no linked issues were found for this pull request. | |
| No-Hardcoded-Secrets | The pull request adds only role names, permission identifiers, documentation, and secret-name references such as BUF_TOKEN and KONFLUX_SA_TOKEN. The diff contains no secret values, API keys, passw… |
|
| No-Weak-Crypto | PASS: The pull request adds a GitHub custom repository role, permission validation, documentation, and role assignments. The changed lines contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto,… | |
| No-Injection-Vectors | PASS. The pull request adds Terraform role and permission values, documentation, and a regex validation. The changed code contains no SQL concatenation, shell execution, eval/exec, pickle.loads, unsaf… | |
| Container-Privileges | The pull request changes only README.md and OpenTofu Terraform files for repository roles and permissions. The diff introduces no container or Kubernetes manifest fields for privileged mode, hostPID, … | |
| No-Sensitive-Data-In-Logs | PASS: The PR adds Terraform configuration and documentation only. It does not add logging or output of secret values, tokens, API keys, PII, session IDs, hostnames, or customer data. The added comment… | |
| Ai-Attribution | The PR mentions Claude Code and includes the required Assisted-by: Claude Code (Claude Opus 5.5) <[email protected]> commit trailer. No AI Co-Authored-By trailer is present. |
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. (4 skipped: 4 unsupported.)
Full details: No-Hardcoded-Secrets
-
Explanation
The pull request adds only role names, permission identifiers, documentation, and secret-name references such as
BUF_TOKENandKONFLUX_SA_TOKEN. The diff contains no secret values, API keys, passwords, private-key material, base64 blobs, credential-bearing URLs, or credential variables assigned string literals.
Full details: No-Weak-Crypto
-
Explanation
PASS: The pull request adds a GitHub custom repository role, permission validation, documentation, and role assignments. The changed lines contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret/token comparisons. References to Actions secrets and token names are access-scope documentation only.
Full details: No-Injection-Vectors
-
Explanation
PASS. The pull request adds Terraform role and permission values, documentation, and a regex validation. The changed code contains no SQL concatenation, shell execution, eval/exec, pickle.loads, unsafe yaml.load, os.system, or dangerouslySetInnerHTML. The custom role name flows directly to the GitHub provider collaborator permission field.
Full details: Container-Privileges
-
Explanation
The pull request changes only README.md and OpenTofu Terraform files for repository roles and permissions. The diff introduces no container or Kubernetes manifest fields for privileged mode, hostPID, hostNetwork, hostIPC, SYS_ADMIN, root execution, or allowPrivilegeEscalation.
Full details: No-Sensitive-Data-In-Logs
-
Explanation
PASS: The PR adds Terraform configuration and documentation only. It does not add logging or output of secret values, tokens, API keys, PII, session IDs, hostnames, or customer data. The added comment mentions only secret variable names such as
BUF_TOKENandKONFLUX_SA_TOKEN, not their values.
✨ Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
Comment @coderabbitai help to get the list of available commands.
Summary
Fills the last gap in what
ci-dutyneeds to maintain CI and the merge queue. The CI/CD admin org role (#268) covers only org-level Actions settings (org secrets, variables, runners, policies). Anything set on the repository still needed repo admin. On osac that means:BUF_TOKEN,KONFLUX_SA_TOKEN,COPR_CUSTOM_WEBHOOK_URL,COPR_WEBHOOK_URL,FULLSEND_GCP_PROJECT_ID,FULLSEND_GCP_WIF_PROVIDERFULLSEND_GCP_REGION,FULLSEND_MINT_URL,FULLSEND_PER_REPO_INSTALLThis adds a custom repository role,
ci-maintainer(basewrite), and gives it toci-dutyon osac and osac-test-infra in place ofpush.write_repository_actions_secretswrite_repository_actions_variableswrite_repository_actions_environmentswrite_repository_actions_settingswrite_repository_actions_runnersjump_merge_queuecreate_solo_merge_queue_entryAPI names are from
gh api /orgs/osac-project/repository-fine-grained-permissions. With this role, nobody has to re-enter secret values to move them to org level, and the fullsend per-repo install keeps its repo-level settings.Changes
organization.tf: newgithub_organization_repository_role.ci_maintainer.repositories.tf: on osac and osac-test-infra,ci-duty's permission changes frompushtoci-maintainer. Its force-merge bypasses from NO-ISSUE: Let ci-duty force-merge on osac and enhancement-proposals #269 are unchanged.modules/common_repository/variables.tf:teams[].permissionnow also accepts a custom repository role name, matched as a lowercase name with a hyphen. A typo likepusis still rejected.README.md: documents the role underci-duty.Requirements
org-config-management) already hasorganization_custom_roles: write, which custom repository roles need.runner-manager), so custom repository roles (an Enterprise Cloud feature) are available.Validation
tofu fmt -check -recursive,tofu validate,pre-commit run --all-files: pass.repo_osacandrepo_osac_test_infra, plus the recurring updates. I'll post the local plan output once it's run.ci-dutymember who isn't an org owner, check thatgh api repos/osac-project/osac/collaborators/<user>/permission --jq .role_namereturnsci-maintainer, and that they can view osac's Settings → Secrets and variables → Actions.🤖 Generated with Claude Code