リポジトリの統計情報用 REST API エンドポイント
REST API を使って、さまざまな種類のリポジトリ アクティビティを視覚化するために GitHub によって使われるデータをフェッチします。
リポジトリ統計について
REST API を使って、さまざまな種類のリポジトリ アクティビティを視覚化するために GitHub によって使われるデータをフェッチできます。
キャッシュに関するベスト プラクティス
リポジトリの統計情報を計算するのは負荷が高い操作なので、可能な限りキャッシュされたデータを返すようにしています。 リポジトリの統計をクエリした際にデータがキャッシュされていない場合は、202 応答を受け取ります。また、この統計をまとめるため、バックグラウンドでジョブが開始します。 ジョブが完了するまで少し待ち、完了したら要求を再び送ります。 ジョブが完了していた場合、その要求に対する応答として 200 応答が返され、応答の本文に統計情報が含まれている。
リポジトリの統計情報は、リポジトリのデフォルトブランチに SHA でキャッシュされ、デフォルトのブランチにプッシュすると統計情報のキャッシュがリセットされます。
一部のタイプのコミットは統計から除外されます
API によって公開される統計は、異なるリポジトリ グラフによって示される統計と一致します。
まとめると次のようになります。
- すべての統計はマージコミットを除外しています。
- コントリビューター統計では、空のコミットも除外されます。
Get the weekly commit activity
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Metadata" repository permissions (read)
allows_public_read_access
"Get the weekly commit activity" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
owner string 必須The account owner of the repository. The name is not case sensitive. |
repo string 必須The name of the repository without the |
http_status_code
| status_code | 説明 |
|---|---|
200 | Returns a weekly aggregate of the number of additions and deletions pushed to a repository. |
202 | Accepted |
204 | A header with no content is returned. |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/stats/code_frequencyReturns a weekly aggregate of the number of additions and deletions pushed to a repository.
Status: 200[
[
1302998400,
1124,
-435
]
]Get the last year of commit activity
Returns the last year of commit activity grouped by week. The days array is a group of commits per day, starting on Sunday.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Metadata" repository permissions (read)
allows_public_read_access
"Get the last year of commit activity" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
owner string 必須The account owner of the repository. The name is not case sensitive. |
repo string 必須The name of the repository without the |
http_status_code
| status_code | 説明 |
|---|---|
200 | OK |
202 | Accepted |
204 | A header with no content is returned. |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/stats/commit_activityResponse
Status: 200[
{
"days": [
0,
3,
26,
20,
39,
1,
0
],
"total": 89,
"week": 1336280400
}
]Get all contributor commit activity
Returns the total number of commits authored by the contributor. In addition, the response includes a Weekly Hash (weeks array) with the following information:
w- Start of the week, given as a Unix timestamp.a- Number of additionsd- Number of deletionsc- Number of commits
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Metadata" repository permissions (read)
allows_public_read_access
"Get all contributor commit activity" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
owner string 必須The account owner of the repository. The name is not case sensitive. |
repo string 必須The name of the repository without the |
http_status_code
| status_code | 説明 |
|---|---|
200 | OK |
202 | Accepted |
204 | A header with no content is returned. |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/stats/contributorsResponse
Status: 200[
{
"author": {
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://HOSTNAME/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://HOSTNAME/users/octocat/followers",
"following_url": "https://HOSTNAME/users/octocat/following{/other_user}",
"gists_url": "https://HOSTNAME/users/octocat/gists{/gist_id}",
"starred_url": "https://HOSTNAME/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://HOSTNAME/users/octocat/subscriptions",
"organizations_url": "https://HOSTNAME/users/octocat/orgs",
"repos_url": "https://HOSTNAME/users/octocat/repos",
"events_url": "https://HOSTNAME/users/octocat/events{/privacy}",
"received_events_url": "https://HOSTNAME/users/octocat/received_events",
"type": "User",
"site_admin": false
},
"total": 135,
"weeks": [
{
"w": 1367712000,
"a": 6898,
"d": 77,
"c": 10
}
]
}
]Get the weekly commit count
Returns the total commit counts for the owner and total commit counts in all. all is everyone combined, including the owner in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract owner from all.
The array order is oldest week (index 0) to most recent week.
The most recent week is seven days ago at UTC midnight to today at UTC midnight.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Metadata" repository permissions (read)
allows_public_read_access
"Get the weekly commit count" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
owner string 必須The account owner of the repository. The name is not case sensitive. |
repo string 必須The name of the repository without the |
http_status_code
| status_code | 説明 |
|---|---|
200 | The array order is oldest week (index 0) to most recent week. |
404 | Resource not found |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/stats/participationThe array order is oldest week (index 0) to most recent week.
Status: 200{
"all": [
11,
21,
15,
2,
8,
1,
8,
23,
17,
21,
11,
10,
33,
91,
38,
34,
22,
23,
32,
3,
43,
87,
71,
18,
13,
5,
13,
16,
66,
27,
12,
45,
110,
117,
13,
8,
18,
9,
19,
26,
39,
12,
20,
31,
46,
91,
45,
10,
24,
9,
29,
7
],
"owner": [
3,
2,
3,
0,
2,
0,
5,
14,
7,
9,
1,
5,
0,
48,
19,
2,
0,
1,
10,
2,
23,
40,
35,
8,
8,
2,
10,
6,
30,
0,
2,
9,
53,
104,
3,
3,
10,
4,
7,
11,
21,
4,
4,
22,
26,
63,
11,
2,
14,
1,
10,
3
]
}Get the hourly commit count for each day
Each array contains the day number, hour number, and number of commits:
0-6: Sunday - Saturday0-23: Hour of day- Number of commits
For example, [2, 14, 25] indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Metadata" repository permissions (read)
allows_public_read_access
"Get the hourly commit count for each day" のパラメーター
| 名前, タイプ, 説明 |
|---|
accept string Setting to |
| 名前, タイプ, 説明 |
|---|
owner string 必須The account owner of the repository. The name is not case sensitive. |
repo string 必須The name of the repository without the |
http_status_code
| status_code | 説明 |
|---|---|
200 | For example, |
204 | A header with no content is returned. |
code_samples
request_example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/stats/punch_cardFor example, [2, 14, 25] indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.
Status: 200[
[
0,
0,
5
],
[
0,
1,
43
],
[
0,
2,
21
]
]