Skip to content

Commit c8a957c

Browse files
Copilotpetesramek
andauthored
fix(backtrack): unblock Merges API when enforce_admins + PR reviews are active (#191)
The backtrack workflow's automated `POST /repos/.../merges` calls were blocked by branch protection: `enforce_admins: true` combined with `required_pull_request_reviews` rejects the Merges API even for admin tokens — there's no bypass. ## Changes **`lock/action.yml`** — adds `skip-pull-request-reviews` input. When `true`, sends `required_pull_request_reviews: null` in the PUT payload instead of the review config object: ```yaml "required_pull_request_reviews": (if $skip_reviews then null else { "dismiss_stale_reviews": $dismiss_stale, "require_code_owner_reviews": false, "required_approving_review_count": $review_count } end) ``` **`backtrack.yml`** — the two "unlock for merge" steps (preview and develop branches) now pass `skip-pull-request-reviews: 'true'`. The existing `always()`-guarded restore steps re-apply full PR review requirements after each merge regardless of outcome. Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: petesramek <2333452+petesramek@users.noreply.github.com>
1 parent 9caa7cc commit c8a957c

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

.github/actions/github/branch-protection/lock/action.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ inputs:
2424
description: 'When true, repository admins are exempt from all branch protection rules (enforce_admins is disabled). When false (default), admins are also subject to the rules.'
2525
required: false
2626
default: 'false'
27+
skip-pull-request-reviews:
28+
description: 'When true, sets required_pull_request_reviews to null (removes PR review requirement). Use temporarily before automated merges so the merge API is not blocked. When false (default), PR reviews are required as configured.'
29+
required: false
30+
default: 'false'
2731

2832
runs:
2933
using: composite
@@ -43,14 +47,15 @@ runs:
4347
--argjson dismiss_stale '${{ inputs.dismiss-stale-reviews }}' \
4448
--argjson enforce_admins "$ENFORCE_ADMINS" \
4549
--argjson lock_branch '${{ inputs.lock-branch }}' \
50+
--argjson skip_reviews '${{ inputs.skip-pull-request-reviews }}' \
4651
'{
4752
"required_status_checks": null,
4853
"enforce_admins": $enforce_admins,
49-
"required_pull_request_reviews": {
54+
"required_pull_request_reviews": (if $skip_reviews then null else {
5055
"dismiss_stale_reviews": $dismiss_stale,
5156
"require_code_owner_reviews": false,
5257
"required_approving_review_count": $review_count
53-
},
58+
} end),
5459
"restrictions": null,
5560
"allow_force_pushes": false,
5661
"allow_deletions": false,

.github/workflows/backtrack.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ jobs:
9494
branch: ${{ steps.targets.outputs.preview-branch }}
9595
token: ${{ secrets.GH_ADMIN_TOKEN }}
9696
lock-branch: 'false'
97+
skip-pull-request-reviews: 'true'
9798

9899
- name: 'Backtrack: merge ${{ github.base_ref }} into ${{ steps.targets.outputs.preview-branch }}'
99100
if: ${{ steps.targets.outputs.preview-branch != '' }}
@@ -112,6 +113,7 @@ jobs:
112113
branch: ${{ steps.targets.outputs.develop-branch }}
113114
token: ${{ secrets.GH_ADMIN_TOKEN }}
114115
lock-branch: 'false'
116+
skip-pull-request-reviews: 'true'
115117

116118
- name: 'Backtrack: merge ${{ steps.targets.outputs.merge-source }} into ${{ steps.targets.outputs.develop-branch }}'
117119
if: ${{ steps.check-develop.outputs.exists == 'true' }}

0 commit comments

Comments
 (0)