Skip to content

Everyone whose commits are on a repository's default branch, most commits first: each with kind (user, matched to an account by an address they confirmed or their noreply address; g1t, g1t itself; author, anyone else, by the name on their commits), name, username and avatar for a user, commits, first_at, last_at, and weeks (commits per week, for the 100 most active). total is how many there are (at most 500 are listed), commits how many were read (the newest 3,000), and weeks the repository's commits by week, oldest first.

GET/repos/{owner}/{name}/contributors

Worked out in the background and kept by commit, as for get_languages.

Read from the newest 3,000 commits of the default branch. A person’s addresses count as one when they confirmed them on their account; their noreply address counts too.

  • Authentication: Optional. Public data can be read without a token; send one to see what is private.
  • MCP tool: repository with action contributors, and the same inputs
  • Scope: An access token needs repo:read.
Name Type Required Description
owner string Yes The workspace that owns the repository.
name string Yes The repository’s name.
curl https://api.g1t.sh/repos/flagon-io/hello/contributors \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

{
"head": "9f3c2a1b7e5d4c3b2a19f8e7d6c5b4a39281706f",
"commit": "9f3c2a1b7e5d4c3b2a19f8e7d6c5b4a39281706f",
"computed_at": "2026-10-07T09:14:03.000Z",
"pending": false,
"partial": false,
"total": 3,
"commits": 126,
"contributors": [
{
"kind": "g1t",
"name": "g1t",
"username": null,
"avatar": null,
"commits": 71,
"first_at": "2026-09-29T08:00:00.000Z",
"last_at": "2026-10-07T08:41:00.000Z",
"weeks": [
{
"week": "2026-09-28",
"commits": 40
},
{
"week": "2026-10-05",
"commits": 31
}
]
},
{
"kind": "user",
"name": "ada",
"username": "ada",
"display_username": "Ada",
"avatar": "5f2b8c1d9e7a3f6b4c0d2e8a1b9c7d5e3f1a0b2c4d6e8f0a1b3c5d7e9f0a2b4c",
"commits": 52,
"first_at": "2026-09-28T14:11:52.000Z",
"last_at": "2026-10-06T16:02:11.000Z",
"weeks": [
{
"week": "2026-09-28",
"commits": 30
},
{
"week": "2026-10-05",
"commits": 22
}
]
},
{
"kind": "author",
"name": "Sam Okafor",
"username": null,
"avatar": null,
"commits": 3,
"first_at": "2026-10-02T11:20:00.000Z",
"last_at": "2026-10-03T09:05:00.000Z",
"weeks": [
{
"week": "2026-09-28",
"commits": 3
}
]
}
],
"weeks": [
{
"week": "2026-09-28",
"commits": 73
},
{
"week": "2026-10-05",
"commits": 53
}
]
}

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository.
404 not_found It does not exist, or you cannot see it.
422 invalid The input is not valid. message says which field and why.