This API is only available to authenticated members of the team's organization. OAuth access tokens require the read:org scope. GitHub generates the team's slug from the team name.
List teams
Lists all teams in an organization that are visible to the authenticated user.
get /orgs/{org}/teamsParameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
per_page | integer | query | Results per page (max 100) Default: |
page | integer | query | Page number of the results to fetch. Default: |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams await octokit.request('GET /orgs/{org}/teams', {
org: 'org'
})Response
Status: 200 OK [
{
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos",
"parent": null
}
]Forbidden
Status: 403 ForbiddenNotes
Create a team
To create a team, the authenticated user must be a member or owner of {org}. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "Setting team creation permissions."
When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of maintainers. For more information, see "About teams".
post /orgs/{org}/teamsParameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
name | string | body | Required. The name of the team. |
description | string | body | The description of the team. |
maintainers | array of strings | body | List GitHub IDs for organization members who will become team maintainers. |
repo_names | array of strings | body | The full name (e.g., "organization-name/repository-name") of repositories to add the team to. |
privacy | string | body | The level of privacy this team should have. The options are: |
permission | string | body | Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of: Default: |
parent_team_id | integer | body | The ID of a team to set as the parent team. |
Code samples
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams \
-d '{"name":"name"}' await octokit.request('POST /orgs/{org}/teams', {
org: 'org',
name: 'name'
})Response
Status: 201 Created {
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos",
"parent": null,
"members_count": 3,
"repos_count": 10,
"created_at": "2017-07-14T16:53:42Z",
"updated_at": "2017-08-17T12:37:15Z",
"organization": {
"login": "github",
"id": 1,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"repos_url": "https://api.github.com/orgs/github/repos",
"events_url": "https://api.github.com/orgs/github/events",
"hooks_url": "https://api.github.com/orgs/github/hooks",
"issues_url": "https://api.github.com/orgs/github/issues",
"members_url": "https://api.github.com/orgs/github/members{/member}",
"public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"description": "A great organization",
"name": "github",
"company": "GitHub",
"blog": "https://github.com/blog",
"location": "San Francisco",
"email": "octocat@github.com",
"is_verified": true,
"has_organization_projects": true,
"has_repository_projects": true,
"public_repos": 2,
"public_gists": 1,
"followers": 20,
"following": 0,
"html_url": "https://github.com/octocat",
"created_at": "2008-01-14T04:33:35Z",
"updated_at": "2017-08-17T12:37:15Z",
"type": "Organization"
}
}Forbidden
Status: 403 ForbiddenValidation failed
Status: 422 Unprocessable EntityNotes
Get a team by name
Gets a team using the team's slug. GitHub generates the slug from the team name.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}.
get /orgs/{org}/teams/{team_slug}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG await octokit.request('GET /orgs/{org}/teams/{team_slug}', {
org: 'org',
team_slug: 'team_slug'
})Response
Status: 200 OK {
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos",
"parent": null,
"members_count": 3,
"repos_count": 10,
"created_at": "2017-07-14T16:53:42Z",
"updated_at": "2017-08-17T12:37:15Z",
"organization": {
"login": "github",
"id": 1,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"repos_url": "https://api.github.com/orgs/github/repos",
"events_url": "https://api.github.com/orgs/github/events",
"hooks_url": "https://api.github.com/orgs/github/hooks",
"issues_url": "https://api.github.com/orgs/github/issues",
"members_url": "https://api.github.com/orgs/github/members{/member}",
"public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"description": "A great organization",
"name": "github",
"company": "GitHub",
"blog": "https://github.com/blog",
"location": "San Francisco",
"email": "octocat@github.com",
"is_verified": true,
"has_organization_projects": true,
"has_repository_projects": true,
"public_repos": 2,
"public_gists": 1,
"followers": 20,
"following": 0,
"html_url": "https://github.com/octocat",
"created_at": "2008-01-14T04:33:35Z",
"updated_at": "2017-08-17T12:37:15Z",
"type": "Organization"
}
}Resource not found
Status: 404 Not FoundNotes
Update a team
To edit a team, the authenticated user must either be an organization owner or a team maintainer.
Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}.
patch /orgs/{org}/teams/{team_slug}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
name | string | body | The name of the team. |
description | string | body | The description of the team. |
privacy | string | body | The level of privacy this team should have. Editing teams without specifying this parameter leaves |
permission | string | body | Deprecated. The permission that new repositories will be added to the team with when none is specified. Can be one of: Default: |
parent_team_id | integer or null | body | The ID of a team to set as the parent team. |
Code samples
curl \
-X PATCH \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG \
-d '{"name":"name"}' await octokit.request('PATCH /orgs/{org}/teams/{team_slug}', {
org: 'org',
team_slug: 'team_slug',
name: 'name'
})Response
Status: 201 Created {
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos",
"parent": null,
"members_count": 3,
"repos_count": 10,
"created_at": "2017-07-14T16:53:42Z",
"updated_at": "2017-08-17T12:37:15Z",
"organization": {
"login": "github",
"id": 1,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"repos_url": "https://api.github.com/orgs/github/repos",
"events_url": "https://api.github.com/orgs/github/events",
"hooks_url": "https://api.github.com/orgs/github/hooks",
"issues_url": "https://api.github.com/orgs/github/issues",
"members_url": "https://api.github.com/orgs/github/members{/member}",
"public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"description": "A great organization",
"name": "github",
"company": "GitHub",
"blog": "https://github.com/blog",
"location": "San Francisco",
"email": "octocat@github.com",
"is_verified": true,
"has_organization_projects": true,
"has_repository_projects": true,
"public_repos": 2,
"public_gists": 1,
"followers": 20,
"following": 0,
"html_url": "https://github.com/octocat",
"created_at": "2008-01-14T04:33:35Z",
"updated_at": "2017-08-17T12:37:15Z",
"type": "Organization"
}
}Notes
Delete a team
To delete a team, the authenticated user must be an organization owner or team maintainer.
If you are an organization owner, deleting a parent team will delete all of its child teams as well.
Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}.
delete /orgs/{org}/teams/{team_slug}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
Code samples
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG await octokit.request('DELETE /orgs/{org}/teams/{team_slug}', {
org: 'org',
team_slug: 'team_slug'
})Response
Status: 204 No ContentNotes
List team projects
Lists the organization projects for a team.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects.
get /orgs/{org}/teams/{team_slug}/projectsParameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
per_page | integer | query | Results per page (max 100) Default: |
page | integer | query | Page number of the results to fetch. Default: |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/projects await octokit.request('GET /orgs/{org}/teams/{team_slug}/projects', {
org: 'org',
team_slug: 'team_slug'
})Response
Status: 200 OK [
{
"owner_url": "https://api.github.com/orgs/octocat",
"url": "https://api.github.com/projects/1002605",
"html_url": "https://github.com/orgs/api-playground/projects/1",
"columns_url": "https://api.github.com/projects/1002605/columns",
"id": 1002605,
"node_id": "MDc6UHJvamVjdDEwMDI2MDU=",
"name": "Organization Roadmap",
"body": "High-level roadmap for the upcoming year.",
"number": 1,
"state": "open",
"creator": {
"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
},
"created_at": "2011-04-11T20:09:31Z",
"updated_at": "2014-03-04T18:58:10Z",
"organization_permission": "write",
"private": false,
"permissions": {
"read": true,
"write": true,
"admin": false
}
}
]Notes
Check team permissions for a project
Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects/{project_id}.
get /orgs/{org}/teams/{team_slug}/projects/{project_id}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
project_id | integer | path |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/projects/42 await octokit.request('GET /orgs/{org}/teams/{team_slug}/projects/{project_id}', {
org: 'org',
team_slug: 'team_slug',
project_id: 42
})Response
Status: 200 OK {
"owner_url": "https://api.github.com/orgs/octocat",
"url": "https://api.github.com/projects/1002605",
"html_url": "https://github.com/orgs/api-playground/projects/1",
"columns_url": "https://api.github.com/projects/1002605/columns",
"id": 1002605,
"node_id": "MDc6UHJvamVjdDEwMDI2MDU=",
"name": "Organization Roadmap",
"body": "High-level roadmap for the upcoming year.",
"number": 1,
"state": "open",
"creator": {
"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
},
"created_at": "2011-04-11T20:09:31Z",
"updated_at": "2014-03-04T18:58:10Z",
"organization_permission": "write",
"private": false,
"permissions": {
"read": true,
"write": true,
"admin": false
}
}Not Found if project is not managed by this team
Status: 404 Not FoundNotes
Add or update team project permissions
Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin permissions for the project. The project and team must be part of the same organization.
Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}.
put /orgs/{org}/teams/{team_slug}/projects/{project_id}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
project_id | integer | path | |
permission | string | body | The permission to grant to the team for this project. Can be one of: |
Code samples
curl \
-X PUT \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/projects/42 \
-d '{"permission":"permission"}' await octokit.request('PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}', {
org: 'org',
team_slug: 'team_slug',
project_id: 42,
permission: 'permission'
})Response
Status: 204 No ContentForbidden if the project is not owned by the organization
Status: 403 Forbidden {
"message": "Must have admin rights to Repository.",
"documentation_url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions"
}Notes
Remove a project from a team
Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read access to both the team and project, or admin access to the team or project. This endpoint removes the project from the team, but does not delete the project.
Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}.
delete /orgs/{org}/teams/{team_slug}/projects/{project_id}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
project_id | integer | path |
Code samples
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/projects/42 await octokit.request('DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}', {
org: 'org',
team_slug: 'team_slug',
project_id: 42
})Response
Status: 204 No ContentNotes
List team repositories
Lists a team's repositories visible to the authenticated user.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos.
get /orgs/{org}/teams/{team_slug}/reposParameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
per_page | integer | query | Results per page (max 100) Default: |
page | integer | query | Page number of the results to fetch. Default: |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/repos await octokit.request('GET /orgs/{org}/teams/{team_slug}/repos', {
org: 'org',
team_slug: 'team_slug'
})Response
Status: 200 OK [
{
"id": 1296269,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"owner": {
"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
},
"private": false,
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"fork": false,
"url": "https://api.github.com/repos/octocat/Hello-World",
"archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
"blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
"collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
"commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
"compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
"contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
"deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
"downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
"events_url": "https://api.github.com/repos/octocat/Hello-World/events",
"forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
"git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
"git_url": "git:github.com/octocat/Hello-World.git",
"issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
"issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
"keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
"labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
"languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
"merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
"milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
"notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
"pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
"releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
"ssh_url": "git@github.com:octocat/Hello-World.git",
"stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
"subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
"tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
"teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
"trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
"clone_url": "https://github.com/octocat/Hello-World.git",
"mirror_url": "git:git.example.com/octocat/Hello-World",
"hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
"svn_url": "https://svn.github.com/octocat/Hello-World",
"homepage": "https://github.com",
"language": null,
"forks_count": 9,
"stargazers_count": 80,
"watchers_count": 80,
"size": 108,
"default_branch": "master",
"open_issues_count": 0,
"is_template": false,
"topics": [
"octocat",
"atom",
"electron",
"api"
],
"has_issues": true,
"has_projects": true,
"has_wiki": true,
"has_pages": false,
"has_downloads": true,
"archived": false,
"disabled": false,
"visibility": "public",
"pushed_at": "2011-01-26T19:06:43Z",
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"push": false,
"pull": true
},
"template_repository": null
}
]Notes
Check team permissions for a repository
Checks whether a team has admin, push, maintain, triage, or pull permission for a repository. Repositories inherited through a parent team will also be checked.
You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the application/vnd.github.v3.repository+json accept header.
If a team doesn't have permission for the repository, you will receive a 404 Not Found response status.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.
get /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
owner | string | path | |
repo | string | path |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/repos/octocat/hello-world await octokit.request('GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}', {
org: 'org',
team_slug: 'team_slug',
owner: 'octocat',
repo: 'hello-world'
})Alternative response with repository permissions
Status: 200 OK {
"id": 1296269,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"owner": {
"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
},
"private": false,
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"fork": false,
"url": "https://api.github.com/repos/octocat/Hello-World",
"archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}",
"blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}",
"collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}",
"commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}",
"compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}",
"contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors",
"deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments",
"downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads",
"events_url": "https://api.github.com/repos/octocat/Hello-World/events",
"forks_url": "https://api.github.com/repos/octocat/Hello-World/forks",
"git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}",
"git_url": "git:github.com/octocat/Hello-World.git",
"issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}",
"issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}",
"keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}",
"labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}",
"languages_url": "https://api.github.com/repos/octocat/Hello-World/languages",
"merges_url": "https://api.github.com/repos/octocat/Hello-World/merges",
"milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}",
"notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}",
"pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}",
"releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}",
"ssh_url": "git@github.com:octocat/Hello-World.git",
"stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers",
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers",
"subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription",
"tags_url": "https://api.github.com/repos/octocat/Hello-World/tags",
"teams_url": "https://api.github.com/repos/octocat/Hello-World/teams",
"trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}",
"clone_url": "https://github.com/octocat/Hello-World.git",
"mirror_url": "git:git.example.com/octocat/Hello-World",
"hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks",
"svn_url": "https://svn.github.com/octocat/Hello-World",
"homepage": "https://github.com",
"language": null,
"forks_count": 9,
"stargazers_count": 80,
"watchers_count": 80,
"size": 108,
"default_branch": "master",
"open_issues_count": 0,
"is_template": false,
"topics": [
"octocat",
"atom",
"electron",
"api"
],
"has_issues": true,
"has_projects": true,
"has_wiki": true,
"has_pages": false,
"has_downloads": true,
"archived": false,
"disabled": false,
"visibility": "public",
"pushed_at": "2011-01-26T19:06:43Z",
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"admin": false,
"maintain": false,
"push": false,
"triage": false,
"pull": true
},
"role_name": "read",
"allow_rebase_merge": true,
"template_repository": {
"id": 1296269,
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name": "Hello-World-Template",
"full_name": "octocat/Hello-World-Template",
"owner": {
"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
},
"private": false,
"html_url": "https://github.com/octocat/Hello-World-Template",
"description": "This your first repo!",
"fork": false,
"url": "https://api.github.com/repos/octocat/Hello-World-Template",
"archive_url": "https://api.github.com/repos/octocat/Hello-World-Template/{archive_format}{/ref}",
"assignees_url": "https://api.github.com/repos/octocat/Hello-World-Template/assignees{/user}",
"blobs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/octocat/Hello-World-Template/branches{/branch}",
"collaborators_url": "https://api.github.com/repos/octocat/Hello-World-Template/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/octocat/Hello-World-Template/comments{/number}",
"commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/commits{/sha}",
"compare_url": "https://api.github.com/repos/octocat/Hello-World-Template/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/octocat/Hello-World-Template/contents/{+path}",
"contributors_url": "https://api.github.com/repos/octocat/Hello-World-Template/contributors",
"deployments_url": "https://api.github.com/repos/octocat/Hello-World-Template/deployments",
"downloads_url": "https://api.github.com/repos/octocat/Hello-World-Template/downloads",
"events_url": "https://api.github.com/repos/octocat/Hello-World-Template/events",
"forks_url": "https://api.github.com/repos/octocat/Hello-World-Template/forks",
"git_commits_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/tags{/sha}",
"git_url": "git:github.com/octocat/Hello-World-Template.git",
"issue_comment_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues/events{/number}",
"issues_url": "https://api.github.com/repos/octocat/Hello-World-Template/issues{/number}",
"keys_url": "https://api.github.com/repos/octocat/Hello-World-Template/keys{/key_id}",
"labels_url": "https://api.github.com/repos/octocat/Hello-World-Template/labels{/name}",
"languages_url": "https://api.github.com/repos/octocat/Hello-World-Template/languages",
"merges_url": "https://api.github.com/repos/octocat/Hello-World-Template/merges",
"milestones_url": "https://api.github.com/repos/octocat/Hello-World-Template/milestones{/number}",
"notifications_url": "https://api.github.com/repos/octocat/Hello-World-Template/notifications{?since,all,participating}",
"pulls_url": "https://api.github.com/repos/octocat/Hello-World-Template/pulls{/number}",
"releases_url": "https://api.github.com/repos/octocat/Hello-World-Template/releases{/id}",
"ssh_url": "git@github.com:octocat/Hello-World-Template.git",
"stargazers_url": "https://api.github.com/repos/octocat/Hello-World-Template/stargazers",
"statuses_url": "https://api.github.com/repos/octocat/Hello-World-Template/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscribers",
"subscription_url": "https://api.github.com/repos/octocat/Hello-World-Template/subscription",
"tags_url": "https://api.github.com/repos/octocat/Hello-World-Template/tags",
"teams_url": "https://api.github.com/repos/octocat/Hello-World-Template/teams",
"trees_url": "https://api.github.com/repos/octocat/Hello-World-Template/git/trees{/sha}",
"clone_url": "https://github.com/octocat/Hello-World-Template.git",
"mirror_url": "git:git.example.com/octocat/Hello-World-Template",
"hooks_url": "https://api.github.com/repos/octocat/Hello-World-Template/hooks",
"svn_url": "https://svn.github.com/octocat/Hello-World-Template",
"homepage": "https://github.com",
"language": null,
"forks": 9,
"forks_count": 9,
"stargazers_count": 80,
"watchers_count": 80,
"watchers": 80,
"size": 108,
"default_branch": "master",
"open_issues": 0,
"open_issues_count": 0,
"is_template": true,
"license": {
"key": "mit",
"name": "MIT License",
"url": "https://api.github.com/licenses/mit",
"spdx_id": "MIT",
"node_id": "MDc6TGljZW5zZW1pdA==",
"html_url": "https://api.github.com/licenses/mit"
},
"topics": [
"octocat",
"atom",
"electron",
"api"
],
"has_issues": true,
"has_projects": true,
"has_wiki": true,
"has_pages": false,
"has_downloads": true,
"archived": false,
"disabled": false,
"visibility": "public",
"pushed_at": "2011-01-26T19:06:43Z",
"created_at": "2011-01-26T19:01:12Z",
"updated_at": "2011-01-26T19:14:43Z",
"permissions": {
"pull": true,
"triage": false,
"push": false,
"maintain": false,
"admin": false
},
"allow_rebase_merge": true,
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
"allow_squash_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": true,
"allow_merge_commit": true,
"subscribers_count": 42,
"network_count": 0
},
"temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
"allow_squash_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": true,
"allow_merge_commit": true,
"subscribers_count": 42,
"network_count": 0,
"license": {
"key": "mit",
"name": "MIT License",
"url": "https://api.github.com/licenses/mit",
"spdx_id": "MIT",
"node_id": "MDc6TGljZW5zZW1pdA==",
"html_url": "https://api.github.com/licenses/mit"
},
"forks": 1,
"open_issues": 1,
"watchers": 1
}Response if team has permission for the repository. This is the response when the repository media type hasn't been provded in the Accept header.
Status: 204 No ContentNot Found if team does not have permission for the repository
Status: 404 Not FoundNotes
Add or update team repository permissions
To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "HTTP verbs."
Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.
For more information about the permission levels, see "Repository permission levels for an organization".
put /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
owner | string | path | |
repo | string | path | |
permission | string | body | The permission to grant the team on this repository. Can be one of: If no permission is specified, the team's Default: |
Code samples
curl \
-X PUT \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/repos/octocat/hello-world \
-d '{"permission":"permission"}' await octokit.request('PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}', {
org: 'org',
team_slug: 'team_slug',
owner: 'octocat',
repo: 'hello-world',
permission: 'permission'
})Response
Status: 204 No ContentNotes
Remove a repository from a team
If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.
Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.
delete /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
owner | string | path | |
repo | string | path |
Code samples
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/repos/octocat/hello-world await octokit.request('DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}', {
org: 'org',
team_slug: 'team_slug',
owner: 'octocat',
repo: 'hello-world'
})Response
Status: 204 No ContentNotes
List child teams
Lists the child teams of the team specified by {team_slug}.
Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/teams.
get /orgs/{org}/teams/{team_slug}/teamsParameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
org | string | path | |
team_slug | string | path | team_slug parameter |
per_page | integer | query | Results per page (max 100) Default: |
page | integer | query | Page number of the results to fetch. Default: |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/teams/TEAM_SLUG/teams await octokit.request('GET /orgs/{org}/teams/{team_slug}/teams', {
org: 'org',
team_slug: 'team_slug'
})if child teams exist
Status: 200 OK [
{
"id": 2,
"node_id": "MDQ6VGVhbTI=",
"url": "https://api.github.com/teams/2",
"name": "Original Roster",
"slug": "original-roster",
"description": "Started it all.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/2/members{/member}",
"repositories_url": "https://api.github.com/teams/2/repos",
"parent": {
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos"
},
"html_url": "https://github.com/orgs/rails/teams/core"
}
]Notes
Get a team (Legacy)
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the Get a team by name endpoint.
get /teams/{team_id}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
team_id | integer | path |
Code samples
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/teams/42 await octokit.request('GET /teams/{team_id}', {
team_id: 42
})Response
Status: 200 OK {
"id": 1,
"node_id": "MDQ6VGVhbTE=",
"url": "https://api.github.com/teams/1",
"html_url": "https://github.com/orgs/github/teams/justice-league",
"name": "Justice League",
"slug": "justice-league",
"description": "A great team.",
"privacy": "closed",
"permission": "admin",
"members_url": "https://api.github.com/teams/1/members{/member}",
"repositories_url": "https://api.github.com/teams/1/repos",
"parent": null,
"members_count": 3,
"repos_count": 10,
"created_at": "2017-07-14T16:53:42Z",
"updated_at": "2017-08-17T12:37:15Z",
"organization": {
"login": "github",
"id": 1,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"url": "https://api.github.com/orgs/github",
"repos_url": "https://api.github.com/orgs/github/repos",
"events_url": "https://api.github.com/orgs/github/events",
"hooks_url": "https://api.github.com/orgs/github/hooks",
"issues_url": "https://api.github.com/orgs/github/issues",
"members_url": "https://api.github.com/orgs/github/members{/member}",
"public_members_url": "https://api.github.com/orgs/github/public_members{/member}",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"description": "A great organization",
"name": "github",
"company": "GitHub",
"blog": "https://github.com/blog",
"location": "San Francisco",
"email": "octocat@github.com",
"is_verified": true,
"has_organization_projects": true,
"has_repository_projects": true,
"public_repos": 2,
"public_gists": 1,
"followers": 20,
"following": 0,
"html_url": "https://github.com/octocat",
"created_at": "2008-01-14T04:33:35Z",
"updated_at": "2017-08-17T12:37:15Z",
"type": "Organization"
}
}Resource not found
Status: 404 Not FoundNotes
Update a team (Legacy)
Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a team endpoint.
To edit a team, the authenticated user must either be an organization owner or a team maintainer.
Note: With nested teams, the privacy for parent teams cannot be secret.
patch /teams/{team_id}Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept | string | header | Setting to |
team_id | integer | path | |
name | string | body | Required. The name of the team. |
description | string | body | The |