mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-15 06:12:50 -07:00
12c84c67d1
This PR addresses the unsustainable growth of the repository backlog and the inaccuracy of current repository metrics. ### 🚀 Improvements #### 1. Backlog Management (BT-03) - **Optimized Stale Issue Policy**: Updated `gemini-scheduled-stale-issue-closer.yml` to reduce the creation threshold from 90 days (3 months) to **60 days** and the update threshold from 10 days to **7 days**. - **Impact**: This will more aggressively prune inactive issues, helping to stabilize the growing backlog (currently increasing by ~7.5 issues/day). #### 2. Metrics Integrity (BT-01) - **Fixed 1000-item Cap**: Refactored `open_issues.ts` and `open_prs.ts` to use GraphQL `totalCount`, ensuring accurate reporting of the backlog (currently ~2.4k issues). - **Standardized Output**: Converted all 8 metric scripts to output **CSV** format (comma-separated values) as mandated by repository guidelines, ensuring consistency for time-series collection. - **Updated Associations**: Included `COLLABORATOR` in maintainer associations across all scripts (`latency`, `throughput`, `review_distribution`, etc.) to accurately reflect the activity of all authorized contributors. ### 🧪 Verification - Verified GraphQL queries against the GitHub API (simulated/logical). - Confirmed script output format matches the `timestamp,metric,value` standard. - Validated that `gemini-scheduled-stale-issue-closer.yml` logic correctly implements the new thresholds.
25 lines
691 B
TypeScript
25 lines
691 B
TypeScript
/**
|
|
* @license
|
|
* Copyright 2026 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { execSync } from 'node:child_process';
|
|
import { GITHUB_OWNER, GITHUB_REPO } from '../types.js';
|
|
|
|
try {
|
|
const query = `query { repository(owner: "${GITHUB_OWNER}", name: "${GITHUB_REPO}") { issues(states: OPEN) { totalCount } } }`;
|
|
const output = execSync(
|
|
`gh api graphql -f query='${query}'`,
|
|
{
|
|
encoding: 'utf-8',
|
|
},
|
|
).trim();
|
|
const parsed = JSON.parse(output);
|
|
const totalCount = parsed?.data?.repository?.issues?.totalCount ?? 0;
|
|
console.log(`open_issues,${totalCount}`);
|
|
} catch {
|
|
// Fallback if gh fails or no issues found
|
|
console.log('open_issues,0');
|
|
}
|