このリポジトリは、GitHub Actionsを使用してPull Requestのリードタイムを自動計測します。
github/issue-metrics アクションを使用して、以下のメトリクスを計測します:
- Time to First Response: PRが作成されてから最初のコメント/レビューまでの時間
- Time to Close: PRが作成されてからクローズ(マージ)されるまでの時間
- Time to Merge: PRがマージされるまでの時間
- Time in Draft: ドラフト状態で過ごした時間
- Time in Label: 特定のラベルが付与されていた時間(レビューステージごとの計測など)
| ワークフロー | 実行頻度 | 用途 |
|---|---|---|
leadtime-metrics.yml |
10分ごと | リアルタイムでリードタイムを追跡 |
daily-summary.yml |
毎日午前0時 | 前日のサマリーレポート |
weekly-report.yml |
毎週月曜日 | 先週の週次レポート |
review-process-metrics.yml |
毎日 | レビュープロセスをラベルで追跡 |
full-leadtime-analysis.yml |
毎週 | ドラフトからマージまでの完全分析 |
support-metrics.yml |
毎日 | カスタマーサポート応答時間 |
このリポジトリをGitHubにプッシュします:
cd /Users/hotake/Documents/cicd-leadtime
git init
git add .
git commit -m "Initial commit: Setup lead time metrics"
git remote add origin YOUR_GITHUB_REPO_URL
git push -u origin main.github/workflows/leadtime-metrics.yml ファイルを編集して、以下の設定をカスタマイズしてください:
ファイルの SEARCH_QUERY 行を、計測したいリポジトリに変更します:
# 現在の設定(例)
SEARCH_QUERY: 'repo:github/issue-metrics is:pr merged:${{ env.time_range }}'
# 自分のリポジトリに変更
SEARCH_QUERY: 'repo:あなたのユーザー名/あなたのリポジトリ名 is:pr merged:${{ env.time_range }}'# 特定のリポジトリのマージされたPR
SEARCH_QUERY: 'repo:owner/repo is:pr merged:${{ env.time_range }}'
# 特定のリポジトリで作成されたPR(マージされていないものも含む)
SEARCH_QUERY: 'repo:owner/repo is:pr created:${{ env.time_range }}'
# 複数のリポジトリ
SEARCH_QUERY: 'repo:owner/repo1 repo:owner/repo2 is:pr merged:${{ env.time_range }}'
# 特定のラベルを持つPR
SEARCH_QUERY: 'repo:owner/repo is:pr merged:${{ env.time_range }} label:production'
# 組織全体のPR
SEARCH_QUERY: 'org:your-org is:pr merged:${{ env.time_range }}'デフォルトでは10分ごとに実行されますが、変更できます:
schedule:
# 10分ごと
- cron: '*/10 * * * *'
# 15分ごと
- cron: '*/15 * * * *'
# 30分ごと
- cron: '*/30 * * * *'
# 1時間ごと
- cron: '0 * * * *'
# 毎日午前9時(UTC)
- cron: '0 9 * * *'環境変数を変更して、レポートの内容をカスタマイズできます:
env:
# 表示/非表示の設定(true = 非表示、false = 表示)
HIDE_AUTHOR: false # 作成者を表示
HIDE_TIME_TO_FIRST_RESPONSE: false # 初回応答時間を表示
HIDE_TIME_TO_CLOSE: false # クローズまでの時間を表示
HIDE_TIME_TO_ANSWER: true # 回答までの時間を非表示(Discussion用)
HIDE_LABEL_METRICS: true # ラベルメトリクスを非表示
HIDE_ITEMS_CLOSED_COUNT: false # クローズされた項目数を表示
DRAFT_PR_TRACKING: true # ドラフトPRを追跡するGitHub UIから手動でワークフローを実行できます:
- GitHubリポジトリの「Actions」タブに移動
- 「Lead Time Metrics (Every 10 minutes)」を選択
- 「Run workflow」ボタンをクリック
メトリクスは、リポジトリのIssuesに自動的に投稿されます。各レポートには以下の情報が含まれます:
- 計測期間
- 各PRのメトリクス(表形式)
- 統計情報(平均、中央値、90パーセンタイルなど)
- リポジトリの「Actions」タブでワークフローが有効になっていることを確認
- GitHub Actionsのパーミッションを確認:Settings → Actions → General → Workflow permissions
ワークフローのパーミッションを確認してください:
permissions:
issues: write # Issueを作成するために必要
pull-requests: read # PRを読み取るために必要別のリポジトリを計測する場合は、Personal Access Token (PAT) が必要です:
- GitHub Settings → Developer settings → Personal access tokens → Generate new token
repoスコープを選択- リポジトリの Settings → Secrets and variables → Actions → New repository secret
- 名前:
GH_TOKEN、値: 生成したトークン - ワークフローファイルは既に
${{ secrets.GITHUB_TOKEN }}を使用しているので変更不要- 別のリポジトリの場合は
${{ secrets.GH_TOKEN }}に変更
- 別のリポジトリの場合は
- AVAILABLE_METRICS.md ⭐ - 計測可能な全7種類のメトリクスの完全ガイド
- METRICS_GUIDE.md - 実践的な活用例とワークフロー設定
- QUICKSTART.md - 最速で始めるためのクイックスタートガイド
このプロジェクトは、github/issue-metricsを使用しています(MIT License)。