mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-14 22:02:59 -07:00
3a06655ec5
#### Problem Statement Current repository metrics (`latency`, `throughput`) suffer from **survivorship bias**: they only sample the last 100 *closed* items, making the repository appear healthier than it is. Meanwhile, a stable backlog of **2342 open issues** and **442 open PRs** persists, largely due to "staleness immunity" for `help wanted` items and throttling in the standard stale workflow. #### Changes 1. **New Metric: Backlog Age**: Added `tools/gemini-cli-bot/metrics/scripts/backlog_age.ts` to measure the median age of the oldest 100 open issues and PRs. This exposes the "Slow Path" bottleneck that was previously invisible. 2. **Stale Policy Throttling Fix**: Increased `operations-per-run` from 30 (default) to 200 in `.github/workflows/stale.yml` to allow the daily cron to actually make progress on the large backlog. 3. **Help-Wanted Expiration**: Updated `gemini-scheduled-stale-issue-closer.yml` to remove the infinite exemption for `help wanted` issues. They are now eligible for stale closure if they are older than 180 days and have no recent human activity. #### Expected Impact - **Visibility**: The new `backlog_age` metrics will likely show high values initially, providing a baseline for backlog reduction efforts. - **Efficiency**: Throttling fix will increase the rate of stale item closure. - **Backlog Reduction**: The 6-month expiration for `help wanted` will finally address legacy "immortal" issues that have been bloating the backlog for years. This is a surgical PR focused on repository health and metric accuracy.
46 lines
1.9 KiB
YAML
46 lines
1.9 KiB
YAML
name: 'Mark stale issues and pull requests'
|
|
|
|
# Run as a daily cron at 1:30 AM
|
|
on:
|
|
schedule:
|
|
- cron: '30 1 * * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
stale:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner:
|
|
- 'ubuntu-latest' # GitHub-hosted
|
|
runs-on: '${{ matrix.runner }}'
|
|
if: |-
|
|
${{ github.repository == 'google-gemini/gemini-cli' }}
|
|
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 }}'
|
|
stale-issue-message: >-
|
|
This issue has been automatically marked as stale due to 60 days of inactivity.
|
|
It will be closed in 14 days if no further activity occurs.
|
|
stale-pr-message: >-
|
|
This pull request has been automatically marked as stale due to 60 days of inactivity.
|
|
It will be closed in 14 days if no further activity occurs.
|
|
close-issue-message: >-
|
|
This issue has been closed due to 14 additional days of inactivity after being marked as stale.
|
|
If you believe this is still relevant, feel free to comment or reopen the issue. Thank you!
|
|
close-pr-message: >-
|
|
This pull request has been closed due to 14 additional days of inactivity after being marked as stale.
|
|
If this is still relevant, you are welcome to reopen or leave a comment. Thanks for contributing!
|
|
days-before-stale: 60
|
|
days-before-close: 14
|
|
operations-per-run: 200
|
|
exempt-issue-labels: 'pinned,security,🔒 maintainer only,help wanted,🗓️ Public Roadmap'
|
|
exempt-pr-labels: 'pinned,security,🔒 maintainer only,help wanted,🗓️ Public Roadmap'
|