Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions modules/common_repository/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,17 @@ resource "github_repository_ruleset" "status_checks" {
bypass_mode = "always"
}

# GitHub Merge Queue app — must bypass the ruleset to push rebased
# commits to the protected branch after queue checks pass.
dynamic "bypass_actors" {
for_each = var.merge_queue != null ? [1] : []
content {
actor_id = 262318
actor_type = "Integration"
bypass_mode = "always"
}
}

dynamic "bypass_actors" {
for_each = var.ruleset_bypass_team_ids
content {
Expand All @@ -136,6 +147,11 @@ resource "github_repository_ruleset" "status_checks" {
}

rules {
# When merge queue is enabled, block direct pushes via the ruleset
# instead of classic branch protection's restrict_pushes — the merge
# queue bot cannot be added to branch protection but can bypass rulesets.
update = var.merge_queue != null ? true : false

required_status_checks {
# When merge queue is enabled, strict is unnecessary — the queue tests
# each PR against latest main before merging.
Expand Down
9 changes: 6 additions & 3 deletions repositories.tf
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,15 @@ module "repo_osac" {
# it's disabled at the GitHub level, not just by convention.
allow_squash_merge = false
ruleset_bypass_team_ids = [github_team.all["wg-infra"].id]
# openshift-merge-robot removed: Tide no longer merges; merge queue handles it.
push_allowances = ["osac-project/wg-infra", "osac-project/org-admins"]
# push_allowances removed: classic branch protection's "Restrict who can push"
# overrides the merge queue bot's implicit push access and cannot include it
# (the bot is an internal GitHub app with no discoverable slug). The ruleset's
# merge_queue rule prevents unauthorized merges; force_push_bypassers (above)
# controls force pushes.

merge_queue = {
merge_method = "REBASE"
max_entries_to_build = 3
max_entries_to_build = 4
max_entries_to_merge = 5
min_entries_to_merge = 1
min_entries_to_merge_wait_minutes = 5
Expand Down
Loading