Repository navigation
NO-ISSUE: Add a ci-maintainer repository role for ci-duty - #270
Merged
Merged
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) <noreply@anthropic.com> Signed-off-by: Elior Erez <eerez@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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