Statistics
- Get contributors list with additions, deletions, and commit counts
- Get the last year of commit activity data
- Get the number of additions and deletions per week
- Get the weekly commit count for the repository owner and everyone else
- Get the number of commits per hour in each day
The Repository Statistics API allows you to fetch the data that GitHub uses for visualizing different types of repository activity.
A word about caching
Computing repository statistics is an expensive operation, so we try to return cached
data whenever possible. If the data hasn’t been cached when you query a repository’s
statistics, you’ll receive a 202
response; a background job is also fired to
start compiling these statistics. Give the job a few moments to complete, and
then submit the request again. If the job has completed, that request will receive a
200
response with the statistics in the response body.
Repository statistics are cached by the SHA of the repository’s default branch, which is usually master; pushing to the default branch resets the statistics cache.
Get contributors list with additions, deletions, and commit counts
GET /repos/:owner/:repo/stats/contributors
Response
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
[
{
"author": {
"login": "octocat",
"id": 1,
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"gravatar_id": "",
"url": "https://api.github.com/users/octocat",
"html_url": "https://github.com/octocat",
"followers_url": "https://api.github.com/users/octocat/followers",
"following_url": "https://api.github.com/users/octocat/following{/other_user}",
"gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
"starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
"organizations_url": "https://api.github.com/users/octocat/orgs",
"repos_url": "https://api.github.com/users/octocat/repos",
"events_url": "https://api.github.com/users/octocat/events{/privacy}",
"received_events_url": "https://api.github.com/users/octocat/received_events",
"type": "User",
"site_admin": false
},
"total": 135,
"weeks": [
{
"w": "1367712000",
"a": 6898,
"d": 77,
"c": 10
}
]
}
]
-
total
- The Total number of commits authored by the contributor.
Weekly Hash
-
w
- Start of the week, given as a Unix timestamp. -
a
- Number of additions -
d
- Number of deletions -
c
- Number of commits
Get the last year of commit activity data
Returns the last year of commit activity grouped by week. The days
array
is a group of commits per day, starting on Sunday
.
GET /repos/:owner/:repo/stats/commit_activity
Response
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
[
{
"days": [
0,
3,
26,
20,
39,
1,
0
],
"total": 89,
"week": 1336280400
}
]
Get the number of additions and deletions per week
GET /repos/:owner/:repo/stats/code_frequency
Response
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
[
[
1302998400,
1124,
-435
]
]
Get the weekly commit count for the repository owner and everyone else
GET /repos/:owner/:repo/stats/participation
Response
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.
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
{
"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 number of commits per hour in each day
GET /repos/:owner/:repo/stats/punch_card
Response
Each array contains the day number, hour number, and number of commits:
-
0-6
: Sunday - Saturday -
0-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.
Status: 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
[
[
0,
0,
5
],
[
0,
1,
43
],
[
0,
2,
21
]
]