This PR updates the metrics scripts to resolve lint errors and improve architectural consistency after the conversion to CSV format.
### 🛠 Fixes
1. **Lint Errors**: Resolved 6 `@typescript-eslint/no-unused-vars` errors by removing the unused `MetricOutput` import across the metric suite.
2. **License Standardization**: Removed redundant `@license` tags from all 8 metric scripts to match repository standards.
3. **GraphQL Consistency**: Updated `open_issues.ts` and `open_prs.ts` to use GraphQL variables (`-F`) and the `gh api graphql` pattern used by other scripts, improving security and readability.
4. **Output Consistency**: Migrated `open_issues.ts` and `open_prs.ts` from `console.log` to `process.stdout.write` for unified output behavior.
5. **Robust Execution**: Added `stdio: ['ignore', 'pipe', 'ignore']` to all `execSync` calls to ensure clean output streams and prevent unintentional inheritance of the parent process's stdio.
6. **Code Cleanup**: Removed the now-unused `MetricOutput` interface from `types.ts` and simplified `metrics/index.ts` by removing legacy JSON parsing logic.
### 🧪 Verification
- `npm run lint` now passes for all files in `tools/gemini-cli-bot/metrics/`.
- Validated all 8 scripts manually to ensure they still produce the correct CSV output.
This PR addresses the accuracy and standardization of repository metrics, ensuring reliable data for long-term health tracking. It extracts the metrics improvements from PR #26239 while excluding the stale issue policy changes as requested by maintainers.
### 🚀 Improvements
#### 1. Fixed 1000-item Cap
- **GraphQL Integration**: Refactored `open_issues.ts` and `open_prs.ts` to use GraphQL `totalCount`. This bypasses the 1000-item limit of the `gh issue list` and `gh pr list` commands, ensuring accurate reporting of the backlog (currently ~2.4k issues).
#### 2. Standardized CSV Output
- **Format Conversion**: Converted all 8 metric scripts to output **CSV** format (`metric_name,value`) instead of varied JSON formats. This ensures consistency for downstream time-series collection and simplifies ingestion.
#### 3. Accurate Maintainer Activity
- **Association Updates**: Included `COLLABORATOR` in maintainer associations across all scripts (`latency`, `throughput`, `review_distribution`, etc.). This accurately reflects the activity of authorized contributors who may not be direct members of the organization but are core to the development process.
### 🧪 Verification
- Verified GraphQL queries against the GitHub API.
- Confirmed script output format matches the required standard.
- Validated that all 8 scripts execute successfully and produce the expected CSV data.