mirror of
https://github.com/jdx/mise-action.git
synced 2026-05-19 07:51:53 +00:00
ci: add workflow to auto-close stale PRs
Closes PRs that have been inactive for 30+ days, aren't authored by jdx, and don't have a "keep-open" label. Runs daily at midnight. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0cc0f19036
commit
2ff66f7d78
4 changed files with 6842 additions and 37709 deletions
29
.github/workflows/pr-closer.yml
vendored
Normal file
29
.github/workflows/pr-closer.yml
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: pr-closer
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *" # daily at midnight
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
close-stale-prs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Close stale PRs
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh pr list -R jdx/mise-action --state open --json number,author,labels,updatedAt,statusCheckRollup --limit 100 | \
|
||||
jq -r '.[] | select(
|
||||
(.updatedAt | fromdateiso8601) < (now - 30*24*60*60) and
|
||||
.author.login != "jdx" and
|
||||
([.labels[].name] | index("keep-open") | not)
|
||||
) | [.number, (if (.statusCheckRollup | length > 0) and ([.statusCheckRollup[].conclusion] | index("FAILURE") or index("failure")) then "failing" else "passing" end)] | @tsv' | \
|
||||
while read -r pr status; do
|
||||
echo "Closing PR #$pr (checks: $status)"
|
||||
if [ "$status" = "failing" ]; then
|
||||
gh pr close "$pr" -R jdx/mise-action -c "This PR has been open for more than 30 days without activity. Note: CI checks were failing, which may be why it wasn't reviewed. Feel free to reopen or create a new PR if you'd like to continue working on this."
|
||||
else
|
||||
gh pr close "$pr" -R jdx/mise-action -c "This PR has been open for more than 30 days without activity. Feel free to reopen or create a new PR if you'd like to continue working on this."
|
||||
fi
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue