mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-28 11:41:04 +00:00
* ci(stale): enable 28+28 stale/close policy for pull requests - Fix the repository guard so the workflow actually runs on QwenLM/qwen-code (it was previously gated to google-gemini/gemini-cli and never executed in this repo). - Scope the behavior to pull requests for now; issue policy will be introduced separately once triage labels are in place. - Mark a PR stale after 4 weeks without activity, then close it after another 4 weeks. - Exempt pinned, security, status/blocked, status/on-hold, and status/ready-for-merge from auto-close. - Remove the stale label automatically when activity resumes, and process the oldest PRs first on each run. * ci(stale): loosen PR cadence from 28+28 to 35+35 Five weeks + five weeks gives contributors more slack around holidays and busy periods, and reduces the first-run impact on the existing backlog. The total window moves from 56 days to 70 days. * ci(stale): move cron from 01:30 UTC to 00:30 UTC Shift by one hour so results are ready before the Beijing work day starts (08:30 local), while still avoiding the top of the hour (the high-contention window for GitHub-hosted runners) and staying 30 minutes after release.yml at 00:00 UTC. * ci(stale): drop redundant repo guard and document ops-per-run - Remove the `github.repository == 'QwenLM/qwen-code'` job guard: scheduled runs are already disabled on forks by GitHub, and workflow_dispatch is manually-triggered so the guard adds no safety. - Add a comment explaining the `operations-per-run: 100` rationale (rate-limit headroom given the ~150-PR backlog).
47 lines
2.1 KiB
YAML
47 lines
2.1 KiB
YAML
name: 'Mark stale issues and pull requests'
|
|
|
|
# Run as a daily cron at 00:30 UTC (Beijing time 08:30).
|
|
# Avoid the top of the hour to dodge GitHub's high-contention window,
|
|
# and stay 30 minutes after release.yml (00:00 UTC) to reduce overlap.
|
|
on:
|
|
schedule:
|
|
- cron: '30 0 * * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
stale:
|
|
runs-on: 'ubuntu-latest'
|
|
permissions:
|
|
issues: 'write'
|
|
pull-requests: 'write'
|
|
concurrency:
|
|
group: '${{ github.workflow }}-stale'
|
|
cancel-in-progress: true
|
|
steps:
|
|
- uses: 'actions/stale@5bef64f19d7facfb25b37b414482c7164d639639' # ratchet:actions/stale@v9
|
|
with:
|
|
repo-token: '${{ secrets.GITHUB_TOKEN }}'
|
|
# Issues are intentionally disabled here; a separate policy will
|
|
# be introduced once issue triage labels are in place.
|
|
days-before-issue-stale: -1
|
|
days-before-issue-close: -1
|
|
# Pull requests: 60 days to stale + 30 days to close.
|
|
days-before-pr-stale: 60
|
|
days-before-pr-close: 30
|
|
stale-pr-label: 'status/stale'
|
|
stale-pr-message: >-
|
|
This pull request has had no activity for 60 days and is being marked as stale.
|
|
It will be closed in another 30 days if no further activity occurs.
|
|
To keep it open, push a new commit or leave a comment.
|
|
Maintainers may apply `pinned`, `status/blocked`, `status/on-hold`,
|
|
or `status/ready-for-merge` to exempt it from auto-close.
|
|
close-pr-message: >-
|
|
This pull request has been closed after 30 additional days of inactivity.
|
|
You are welcome to reopen it or submit a new pull request if the change is still relevant.
|
|
Thanks for contributing!
|
|
exempt-pr-labels: 'pinned,security,status/blocked,status/on-hold,status/ready-for-merge'
|
|
remove-stale-when-updated: true
|
|
ascending: true
|
|
# Cap per-run API operations to stay well under GitHub's hourly rate limit
|
|
# and give the current PR backlog (~150) enough headroom across a few runs.
|
|
operations-per-run: 100
|