Estadísticas
La API de Estadísticas del Repositorio te permite recuperar los datos que GitHub Enterprise Server utiliza para visualizar los diferentes tipos de actividad del repositorio.
Unas palabras sobre el almacenamiento en caché
El calcular las estadísitcas del repositorio es una operación costosa, así que intentamos devolver los datos almacenados en caché cuando nos es posible. Si los datos no se han almacenado en caché cuando consultas la estadística de un repositorio, recibirás una respuesta 202
; también se dispara un job en segundo plano para comenzar a compilar estas estadísticas. Permite que el job se complete, y luego emite la solicitud nuevamente. Si el job ya terminó, esa solicitud recibirá una respuesta 200
con la estadística en el cuerpo de la respuesta.
El SHA de la rama predeterminada del repositorio guarda en caché las estadísticas del repositorio; el subir información a la rama predeterminada restablece el caché de de las estadísticas.
Las estadísticas excluyen algunos tipos de confirmaciones
Las estadísticas que expone la API empatan con aquellas que muestran diversas gráficas del repositorio.
Para resumir:
-
Todas las estadísticas excluyen las confirmaciones de fusión.
-
Las estadísticas del colaborador también excluyen a las confirmaciones vacías.
Get the weekly commit activity
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
get /repos/{owner}/{repo}/stats/code_frequency
Parámetros
Name Type In Description accept
string header Setting to
application/vnd.github.v3+json
is recommended.owner
string path repo
string path Ejemplos de código
Shell
curl \ -H "Accept: application/vnd.github.v3+json" \ http(s)://{hostname}/api/v3/repos/octocat/hello-world/stats/code_frequency
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/stats/code_frequency', { owner: 'octocat', repo: 'hello-world' })
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
Status: 200 OK
[ [ 1302998400, 1124, -435 ] ]
Accepted
Status: 202 Accepted
A header with no content is returned.
Status: 204 No Content
Notes
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 onSunday
.get /repos/{owner}/{repo}/stats/commit_activity
Parámetros
Name Type In Description accept
string header Setting to
application/vnd.github.v3+json
is recommended.owner
string path repo
string path Ejemplos de código
Shell
curl \ -H "Accept: application/vnd.github.v3+json" \ http(s)://{hostname}/api/v3/repos/octocat/hello-world/stats/commit_activity
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/stats/commit_activity', { owner: 'octocat', repo: 'hello-world' })
Response
Status: 200 OK
[ { "days": [ 0, 3, 26, 20, 39, 1, 0 ], "total": 89, "week": 1336280400 } ]
Accepted
Status: 202 Accepted
A header with no content is returned.
Status: 204 No Content
Notes
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
get /repos/{owner}/{repo}/stats/contributors
Parámetros
Name Type In Description accept
string header Setting to
application/vnd.github.v3+json
is recommended.owner
string path repo
string path Ejemplos de código
Shell
curl \ -H "Accept: application/vnd.github.v3+json" \ http(s)://{hostname}/api/v3/repos/octocat/hello-world/stats/contributors
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/stats/contributors', { owner: 'octocat', repo: 'hello-world' })
w
- Start of the week, given as a Unix timestamp.a
- Number of additionsd
- Number of deletionsc
- Number of commits
Status: 200 OK
[ { "author": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "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 } ] } ]
Accepted
Status: 202 Accepted
A header with no content is returned.
Status: 204 No Content
Notes
Get the weekly commit count
Returns the total commit counts for the
owner
and total commit counts inall
.all
is everyone combined, including theowner
in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtractowner
fromall
.The array order is oldest week (index 0) to most recent week.
get /repos/{owner}/{repo}/stats/participation
Parámetros
Name Type In Description accept
string header Setting to
application/vnd.github.v3+json
is recommended.owner
string path repo
string path Ejemplos de código
Shell
curl \ -H "Accept: application/vnd.github.v3+json" \ http(s)://{hostname}/api/v3/repos/octocat/hello-world/stats/participation
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/stats/participation', { owner: 'octocat', repo: 'hello-world' })
The array order is oldest week (index 0) to most recent week.
Status: 200 OK
{ "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 ] }
Resource not found
Status: 404 Not Found
Notes
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.get /repos/{owner}/{repo}/stats/punch_card
Parámetros
Name Type In Description accept
string header Setting to
application/vnd.github.v3+json
is recommended.owner
string path repo
string path Ejemplos de código
Shell
curl \ -H "Accept: application/vnd.github.v3+json" \ http(s)://{hostname}/api/v3/repos/octocat/hello-world/stats/punch_card
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/stats/punch_card', { owner: 'octocat', repo: 'hello-world' })
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
[ [ 0, 0, 5 ], [ 0, 1, 43 ], [ 0, 2, 21 ] ]
A header with no content is returned.
Status: 204 No Content
Notes