Files
qwen-code/.github/workflows/stale.yml
T
Shaojin WenandQwen-Coder 3663209c3d chore(ci): shorten stale PR window to 30 + 14 days (#16435)
* chore(ci): shorten stale PR window to 30 + 14 days

The open PR backlog keeps growing, and the 60 + 30 day window only reaches PRs inactive for two months, leaving the 30-60 day band untouched. Lower the stale threshold to 30 days and the close window to 14 days, and raise operations-per-run to 300 so the first sweep can label the backlog in one or two runs. The stale/close messages and the fleet-shepherd design docs are updated to match.

Co-authored-by: Qwen-Coder <[email protected]>

* docs: keep the stale-window reference in the design current

Avoid pinning the note to a merge-date guess: name the policy change instead, and reflow the paragraph to the file width.

Co-authored-by: Qwen-Coder <[email protected]>

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-11-06 14:43:07 +08:00

55 lines
2.6 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.
# This no longer trails the nightly release, which moved to 21:00 UTC.
on:
schedule:
- cron: '30 0 * * *'
workflow_dispatch:
jobs:
stale:
# Checks out nothing and runs no repository code (schedule/dispatch use
# base-repo YAML), so the persistent ECS pool is safe.
# Kill-switch: MAINTAINER_ECS_RUNNER_DISABLED.
runs-on: '${{ (github.repository == ''QwenLM/qwen-code'' && vars.MAINTAINER_ECS_RUNNER_DISABLED != ''true'') && fromJSON(''["self-hosted", "linux", "x64", "ecs-qwen"]'') || fromJSON(''["ubuntu-latest"]'') }}'
# A hung sweep must not pin a persistent pool machine for the 360-minute
# default; the sweep itself finishes in well under this.
timeout-minutes: 10
permissions:
issues: 'write'
pull-requests: 'write'
concurrency:
group: '${{ github.workflow }}-stale'
cancel-in-progress: true
steps:
- uses: 'actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899' # v10.3.0
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: 30 days to stale + 14 days to close.
days-before-pr-stale: 30
days-before-pr-close: 14
stale-pr-label: 'status/stale'
stale-pr-message: >-
This pull request has had no activity for 30 days and is being marked as stale.
It will be closed in another 14 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 14 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. Raised with the 30-day window: the first sweep after that
# change has ~90 PRs to label and comment on (2 operations each).
operations-per-run: 300