58 lines
2.2 KiB
YAML
58 lines
2.2 KiB
YAML
|
|
# ======================================================================================
|
|
# Workflow: Stale Requested-Changes PRs
|
|
# ======================================================================================
|
|
# Usage:
|
|
# - Runs daily and follows up on external-contributor PRs that have an active
|
|
# requested-changes review and have gone inactive.
|
|
# - Posts reminder comments at 7 and 10 days of author inactivity, then closes
|
|
# the PR at 14 days — but only after the day-10 final warning has been posted.
|
|
# - Inactivity is author-driven: a head-branch push (GitHub-recorded) or a comment by
|
|
# the PR author resets the timer; maintainer/third-party/bot comments do not.
|
|
# - Reminder progress is tracked via marker comments authored by github-actions[bot],
|
|
# so no datastore is needed.
|
|
#
|
|
# Modes (workflow_dispatch `mode` input; scheduled runs use `full`):
|
|
# - dry-run: log eligible PRs and intended actions, write nothing.
|
|
# - reminder-only: post reminders, never close.
|
|
# - full: post reminders and close.
|
|
# ======================================================================================
|
|
|
|
name: Stale Requested-Changes PRs
|
|
on:
|
|
schedule:
|
|
- cron: '7 12 * * *' # 12:07 UTC daily (minute 7 avoids top-of-hour scheduler congestion)
|
|
workflow_dispatch:
|
|
inputs:
|
|
mode:
|
|
description: 'Write mode'
|
|
type: choice
|
|
default: full
|
|
options:
|
|
- dry-run
|
|
- reminder-only
|
|
- full
|
|
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
issues: write
|
|
|
|
jobs:
|
|
stale-requested-changes:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
with:
|
|
# Only the follow-up script is needed; skip blob content for speed.
|
|
sparse-checkout: .github/scripts
|
|
filter: blob:none
|
|
|
|
- name: Follow up on stale requested-changes PRs
|
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
with:
|
|
script: |
|
|
const run = require('./.github/scripts/stale-requested-changes-prs.js')
|
|
await run({ github, context })
|