リポジトリインサイト
GitHubには、リポジトリのアクティビティやデータを可視化するための強力なインサイト機能が搭載されています。本記事では、これらの機能を体系的に解説し、チーム開発やOSSプロジェクトの運営に活用する方法を紹介します。
目次
- ネットワークグラフとフォーク管理
- デプロイメントアクティビティ
- Pulse:リポジトリ活動の概要
- トラフィック分析
- コントリビューター分析
- コミット分析とコード頻度
- アクティビティビュー
1. ネットワークグラフとフォーク管理
1.1. ネットワークグラフの仕組み
ネットワークグラフは、リポジトリ全体のフォークネットワークを含むブランチ履歴を時系列で表示します。最新100件のプッシュされたブランチが対象となり、最初の行が日付、最初の列がブランチオーナーを示します。
アクセス方法:
- リポジトリのメインページへ移動
- 「Insights」タブをクリック
- 左サイドバーから「Network」を選択
キーボードショートカットを使用して、グラフ内を効率的にナビゲートできます。古いブランチを表示したい場合は、グラフ内をクリック&ドラッグしてください。
1.2. フォークリストの活用
フォークページでは、各フォークについて以下の情報を確認できます:
- スター数
- 直接フォークの数
- オープンイシュー数
- オープンプルリクエスト数
- 最終更新日時(任意のブランチへの最後のプッシュ)
- フォーク作成日時
フィルタリングオプション:
- アクティビティ状態:アクティブ、非アクティブ、スター付き、アーカイブ済み
- 期間:最大5年間の範囲で更新日時をフィルタリング
- ソート:スター数、最終更新日時、オープンイシュー数、オープンプルリクエスト数
フィルタとソート設定をデフォルトとして保存すれば、任意のリポジトリのフォークページで同じ条件が適用されます。これは複数のプロジェクトを管理する際に特に便利です。
2. デプロイメントアクティビティ
デプロイメントダッシュボード(現在パブリックプレビュー中)を使用すると、リポジトリ全体または特定のプルリクエストのデプロイメント情報を確認できます。
必要な条件:
- リポジトリへの読み取りアクセス権
- Deployments APIまたはGitHub Marketplaceアプリとの統合
アクセス方法:
- リポジトリのメインページへ移動
- 右サイドバーの「Environments」をクリック
デプロイメント情報は、プルリクエストの「Conversation」タブでも確認可能です。この機能により、コードレビューとデプロイメント状況を一元的に把握できます。
3. Pulse:リポジトリ活動の概要
Pulseは、リポジトリのアクティビティを一目で把握できる機能です。デフォルトでは過去7日間の活動を表示しますが、期間は変更可能です。
3.1. 表示される情報と特徴
- オープンおよびマージされたプルリクエスト
- オープンおよびクローズされたイシュー
- デフォルトブランチへのコミット上位15名のグラフ
コミットの共同作成者も、デフォルトブランチへのマージ済みコミットがあり、上位15名に入っている場合はサマリーに含まれます。
3.2. より詳細な履歴が必要な場合
Pulseは概要表示に特化していますが、より詳細な変更履歴を追跡したい場合は、後述のアクティビティビューを使用してください。アクティビティビューでは、すべてのプッシュ、マージ、フォースプッシュ、ブランチ変更を認証済みユーザーと関連付けて表示します。
4. トラフィック分析
トラフィックグラフでは、過去14日間のリポジトリへのアクセス状況を詳細に把握できます。
4.1. 確認できるデータ
- 完全クローン数(フェッチは含まない)
- 訪問者数
- 参照元サイト(検索エンジンとGitHub自体を除く)
- 人気コンテンツ
4.2. データの特徴
- 完全クローンと訪問者情報は1時間ごとに更新
- 参照元サイトと人気コンテンツは毎日更新
- すべてのデータはUTC+0タイムゾーンで記録
グラフ上の特定の日にカーソルを合わせると、その日の正確なデータを確認できます。参照元サイトや人気コンテンツのリンクをクリックすると、具体的なパスやコンテンツへ直接移動できます。
4.3. 活用例
- ドキュメントページへのトラフィックを分析し、改善箇所を特定
- 外部サイトからの流入を把握し、コミュニティの広がりを測定
- クローン数の急増を検知し、プロジェクトへの関心の高まりを確認
5. コントリビューター分析
5.1. 基本情報
コントリビューターグラフでは、リポジトリへの上位100名のコントリビューターを確認できます。マージコミットと空のコミットはカウントされません。
制限事項:コミット数が10,000未満のリポジトリのみが対象です。大規模プロジェクトでは、別途APIを使用する必要があります。
5.2. アクセス方法
- リポジトリのメインページへ移動
- 「Insights」タブをクリック
- 左サイドバーから「Contributors」を選択
- 期間を指定する場合は「Period: All」から選択
- グラフをテーブル表示に切り替える場合は右上の設定から「View as table」を選択
- CSVまたはPNG形式でダウンロード可能
5.3. Python依存関係のコントリビューター
プロジェクトのPython依存関係に貢献している人々のリストも確認できます。アクセスするには以下のURLを使用します:
https://github.com/REPO-OWNER/REPO-NAME/graphs/contributors
5.4. トラブルシューティング
コントリビューターグラフに自分が表示されない場合、以下の原因が考えられます:
- 上位100名に入っていない
- コミットがデフォルトブランチにマージされていない
- コミットに使用したメールアドレスがGitHubアカウントに接続されていない
特に3番目のケースでは、コミットがGitHubアカウントにリンクされず、グラフに表示されません。設定を確認してください。
すべてのコミットが非デフォルトブランチ(例:gh-pagesブランチ)にある場合、コントリビューターグラフには表示されません。デフォルトブランチにコミットをマージするには、プルリクエストを作成してください。
6. コミット分析とコード頻度
6.1. コミットグラフ
コミットグラフでは、過去1年間のすべてのコミット(マージコミットを除く)を確認できます。
グラフの構成:
- 上部グラフ:年間全体の週単位コミット数
- 下部グラフ:選択した週の曜日別平均コミット数
これにより、チームの開発リズムやピーク時期を把握できます。
6.2. コード頻度グラフ
コード頻度グラフは、リポジトリ履歴における週単位のコンテンツ追加・削除を表示します。
確認できる情報:
- 週ごとのコード追加量(行数)
- 週ごとのコード削除量(行数)
- 純増減のトレンド
グラフはテーブル表示に切り替え可能で、CSVまたはPNG形式でのダウンロードもサポートしています。
6.3. 活用例
- リファクタリング期間の特定(削除量が多い週)
- 機能開発の活発な期間の把握(追加量が多い週)
- コードベースの成長率の可視化
より詳細な変更履歴が必要な場合は、アクティビティビューを使用してください。
7. アクティビティビュー
アクティビティビューは、リポジトリへの変更の詳細な履歴を提供する最も強力なツールです。
7.1. 表示される情報
- プッシュ
- マージ
- フォースプッシュ
- ブランチ変更
これらの変更は、コミットおよび認証済みユーザーと関連付けられて表示されます。
7.2. アクセス方法
方法1:メインページから
- リポジトリのメインページへ移動
- ファイルリストの右側にある「Activity」をクリック
方法2:ブランチページから
- 「Branches」をクリック
- 任意のブランチの右側にあるメニューアイコンをクリック
7.3. フィルタリング機能
アクティビティビューでは、以下の条件でフィルタリングが可能です:
| フィルタ項目 | オプション |
|---|---|
| ブランチ | 特定のブランチ、または全ブランチ |
| アクティビティタイプ | 直接プッシュ、PRマージ、フォースプッシュ、ブランチ作成、ブランチ削除 |
| ユーザー | 特定のユーザー、または全ユーザー |
| 期間 | カスタム期間、または全期間 |
7.4. 詳細情報の確認
各アクティビティについて、以下の操作が可能です:
- 埋め込みリンクにカーソルを合わせる:プルリクエストの incoming ブランチ名などの追加情報を表示
- 「Compare changes」をクリック:そのアクティビティで導入された正確な変更内容を確認
7.5. 実用例
フォースプッシュの追跡手順:
- アクティビティタイプを「フォースプッシュ」でフィルタリング
- 該当するフォースプッシュを特定
- 「Compare changes」で詳細確認
- 影響範囲を評価
特定ユーザーのマージ履歴確認手順:
- ユーザーフィルタで対象者を選択
- アクティビティタイプを「Pull request merges」に設定
- 期間を「Past month」に設定
- 各マージの詳細を「Compare changes」で確認
8. プラン別の機能制限
これらのインサイト機能は、GitHubプランによって利用可能範囲が異なります。
8.1. GitHub FreeおよびGitHub Free for organizations(パブリックリポジトリのみ)
以下の機能が利用可能です:
- Pulse
- Contributors
- Traffic
- Commits
- Code frequency
- Network
8.2. GitHub Pro、GitHub Team、GitHub Enterprise Cloud
すべてのインサイト機能が、パブリックリポジトリとプライベートリポジトリの両方で利用可能です。
9. まとめ
GitHubのリポジトリインサイト機能は、データに基づいた意思決定を支援する実用的なツールセットです。各機能は以下のような用途に適しています:
- ネットワークグラフ/フォーク管理:OSSプロジェクトのエコシステム把握
- デプロイメントアクティビティ:リリース管理との統合
- Pulse:週次レビューでの活動概要確認
- トラフィック分析:ドキュメントやコンテンツの効果測定
- コントリビューター分析:コミュニティ貢献の可視化
- コミット分析/コード頻度:開発リズムと成長率の把握
- アクティビティビュー:詳細な変更履歴の追跡とトラブルシューティング
これらの機能を組み合わせることで、プロジェクトの健全性を多角的に評価し、改善につなげることができます。まずは自分のプロジェクトで各機能を試してみて、チーム運営に活かしてみてください。