Skip to content

Commit 0d61908

Browse files
cguldnerclaude
andauthored
Close old PRs before creation, comment with link after (#553)
The create-pull-request action force-pushes the branch, which closes old PRs before the close step can run. Move close step before PR creation (saving closed PR numbers), then comment "Superseded by #<new>" on each afterward. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent fedfe10 commit 0d61908

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

.github/workflows/spec_update.yml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,20 @@ jobs:
8585
pip install -r requirements.txt
8686
python generate_base_client.py
8787
88+
- name: Close Old Pull Requests
89+
id: close-old-prs
90+
if: steps.git-diff-num.outputs.num-diff != 0
91+
run: |
92+
closed=""
93+
gh pr list --label "automated-spec-update" --state open --json number --jq '.[].number' | while read -r pr_num; do
94+
echo "Closing old PR #$pr_num"
95+
gh pr close "$pr_num" --delete-branch
96+
closed="${closed:+$closed,}$pr_num"
97+
done
98+
echo "closed=$closed" >> "$GITHUB_OUTPUT"
99+
env:
100+
GH_TOKEN: ${{ steps.app-token.outputs.token }}
101+
88102
- name: Create Pull Request
89103
id: create-pr
90104
uses: peter-evans/create-pull-request@v8
@@ -103,15 +117,12 @@ jobs:
103117
automated-spec-update
104118
draft: false
105119
106-
- name: Close Old Pull Requests
107-
if: steps.create-pr.outputs.pull-request-number
120+
- name: Comment on closed PRs
121+
if: steps.create-pr.outputs.pull-request-number && steps.close-old-prs.outputs.closed
108122
run: |
109-
gh pr list --label "automated-spec-update" --state open --json number --jq '.[].number' | while read -r pr_num; do
110-
if [ "$pr_num" != "${{ steps.create-pr.outputs.pull-request-number }}" ]; then
111-
echo "Closing old PR #$pr_num"
112-
gh pr comment "$pr_num" --body "Superseded by #${{ steps.create-pr.outputs.pull-request-number }}"
113-
gh pr close "$pr_num" --delete-branch
114-
fi
123+
IFS=',' read -ra prs <<< "${{ steps.close-old-prs.outputs.closed }}"
124+
for pr_num in "${prs[@]}"; do
125+
gh pr comment "$pr_num" --body "Superseded by #${{ steps.create-pr.outputs.pull-request-number }}"
115126
done
116127
env:
117128
GH_TOKEN: ${{ steps.app-token.outputs.token }}

0 commit comments

Comments
 (0)