Skip to content

ifhito/test-github-issue-metrics

Repository files navigation

CI/CD リードタイム計測

このリポジトリは、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 毎日 カスタマーサポート応答時間

セットアップ方法

1. リポジトリのセットアップ

このリポジトリを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

2. ワークフローのカスタマイズ

.github/workflows/leadtime-metrics.yml ファイルを編集して、以下の設定をカスタマイズしてください:

SEARCH_QUERY の変更

ファイルの 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 }}'

3. 実行頻度の変更

デフォルトでは10分ごとに実行されますが、変更できます:

schedule:
  # 10分ごと
  - cron: '*/10 * * * *'
  
  # 15分ごと
  - cron: '*/15 * * * *'
  
  # 30分ごと
  - cron: '*/30 * * * *'
  
  # 1時間ごと
  - cron: '0 * * * *'
  
  # 毎日午前9時(UTC)
  - cron: '0 9 * * *'

4. 表示内容のカスタマイズ

環境変数を変更して、レポートの内容をカスタマイズできます:

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を追跡する

5. 手動実行

GitHub UIから手動でワークフローを実行できます:

  1. GitHubリポジトリの「Actions」タブに移動
  2. 「Lead Time Metrics (Every 10 minutes)」を選択
  3. 「Run workflow」ボタンをクリック

出力

メトリクスは、リポジトリのIssuesに自動的に投稿されます。各レポートには以下の情報が含まれます:

  • 計測期間
  • 各PRのメトリクス(表形式)
  • 統計情報(平均、中央値、90パーセンタイルなど)

トラブルシューティング

ワークフローが実行されない

  • リポジトリの「Actions」タブでワークフローが有効になっていることを確認
  • GitHub Actionsのパーミッションを確認:Settings → Actions → General → Workflow permissions

「Resource not accessible by integration」エラー

ワークフローのパーミッションを確認してください:

permissions:
  issues: write          # Issueを作成するために必要
  pull-requests: read    # PRを読み取るために必要

他のリポジトリを計測したい場合

別のリポジトリを計測する場合は、Personal Access Token (PAT) が必要です:

  1. GitHub Settings → Developer settings → Personal access tokens → Generate new token
  2. repo スコープを選択
  3. リポジトリの Settings → Secrets and variables → Actions → New repository secret
  4. 名前: GH_TOKEN、値: 生成したトークン
  5. ワークフローファイルは既に ${{ secrets.GITHUB_TOKEN }} を使用しているので変更不要
    • 別のリポジトリの場合は ${{ secrets.GH_TOKEN }} に変更

📖 詳細ガイド

参考資料

ライセンス

このプロジェクトは、github/issue-metricsを使用しています(MIT License)。

test-github-issue-metrics

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published