Integration Permissions

Integrations are created with a fixed set of permissions. These define what resources the integration can access via the API. The permissions cannot be modified after they are created.

In order to access the API with your Integration, you must provide a custom media type in the Accept Header for your requests.

application/vnd.github.machine-man-preview+json

Metadata Contents Single file Administration Issues Pull requests Commit statuses Deployments Pages Organization members

Metadata permissions

These permissions are enabled for every integration. It's a collection of read only endpoints for accessing metadata for various resources that do not leak sensitive private repository information.

  • GET /search/repositories
  • GET /repositories/:repository_id/collaborators
  • POST /installations/:installation_id/access_tokens
  • GET /repositories/:repository_id
  • GET /repositories/:repository_id/collaborators/:collab
  • GET /repositories/:repository_id/comments
  • GET /repositories/:repository_id/commits/*/comments
  • GET /repositories/:repository_id/comments/:id
  • GET /repositories/:repository_id/commits
  • GET /repositories/:repository_id/commits/*
  • GET /repositories/:repository_id/contributors
  • GET /repositories/:repository_id/forks
  • GET /repositories/:repository_id/subscribers
  • GET /repositories/:repository_id/stargazers
  • GET /repositories/:repository_id/watchers
  • GET /repositories/:repository_id/license
  • GET /repositories/:repository_id/stats/contributors
  • GET /repositories/:repository_id/stats/commit_activity
  • GET /repositories/:repository_id/stats/code_frequency
  • GET /repositories/:repository_id/stats/punch_card
  • GET /repositories/:repository_id/stats/participation
  • GET /repositories/:repository_id/tags
  • GET /repositories/:repository_id/languages
  • GET /rate_limit
  • GET /hooks
  • GET /hooks/:name
  • GET /search/users
  • GET /search/code
  • GET /repositories
  • GET /licenses
  • GET /licenses/:license
  • GET /user/:user_id/orgs
  • GET /organizations
  • GET /users
  • GET /user/:user_id
  • GET /user/:user_id/keys
  • GET /user/:user_id/received_events
  • GET /user/:user_id/events
  • GET /events
  • GET /organizations/:organization_id/events
  • GET /user/:user_id/received_events/public
  • GET /user/:user_id/events/public

Permission on "contents"

  • GET /repositories/:repository_id/branches/* (:read)
  • GET /repositories/:repository_id/compare/* (:read)
  • GET /repositories/:repository_id/branches (:read)
  • PATCH /repositories/:repository_id/branches/* (:write)
  • PUT /repositories/:repository_id/pulls/:id/merge (:write)
  • POST /repositories/:repository_id/merges (:write)
  • GET /repositories/:repository_id/readme (:read)
  • GET /repositories/:repository_id/contents/?* (:read)
  • PUT /repositories/:repository_id/contents/(.+) (:write)
  • DELETE /repositories/:repository_id/contents/(.+) (:write)
  • GET /repositories/:repository_id/tarball/?*? (:read)
  • GET /repositories/:repository_id/zipball/?*? (:read)

releases

  • GET /repositories/:repository_id/releases (:read)
  • GET /repositories/:repository_id/releases/latest (:read)
  • GET /repositories/:repository_id/releases/tags/* (:read)
  • GET /repositories/:repository_id/releases/:id (:read)
  • GET /repositories/:repository_id/releases/:id/assets (:read)
  • GET /repositories/:repository_id/releases/assets/:id (:read)
  • DELETE /repositories/:repository_id/releases/:id (:write)
  • PATCH /repositories/:repository_id/releases/:id (:write)
  • POST /repositories/:repository_id/releases/:id (:write)
  • POST /repositories/:repository_id/releases (:write)
  • PATCH /repositories/:repository_id/releases/assets/:id (:write)
  • POST /repositories/:repository_id/releases/assets/:id (:write)
  • DELETE /repositories/:repository_id/releases/assets/:id (:write)

RepoCommitComments

  • POST /repositories/:repository_id/commits/*/comments (:write)
  • PATCH /repositories/:repository_id/comments/:id (:write)
  • POST /repositories/:repository_id/comments/:id (:write)

Permission on "single file"

  • GET /repos/:owner/:repo/contents/:path (:read)
  • PUT /repos/:owner/:repo/contents/:path (:write)
  • DELETE /repos/:owner/:repo/contents/:path (:write)

Permission on "administration"

  • GET /repositories/:repository_id/teams (:read)
  • PUT /repositories/:repository_id/collaborators/:collab (:write)
  • DELETE /repositories/:repository_id/collaborators/:collab (:write)
  • PATCH /repositories/:repository_id (:write)
  • DELETE /repositories/:repository_id (:write)
  • GET /repositories/:repository_id/branches/:branch/protection/required_status_checks (:read)
  • GET /repositories/:repository_id/branches/:branch/protection/required_status_checks/contexts (:read)

Permission on "issues"

  • GET /repositories/:repository_id/issues/:id/comments (:read) [A]
  • POST /repositories/:repository_id/issues (:write)
  • GET /repositories/:repository_id/milestones (:read)
  • POST /repositories/:repository_id/issues/:id/comments (:write) [A]
  • PATCH /repositories/:repository_id/issues/:id (:write) [A]
  • GET /repositories/:repository_id/issues (:read) [B]
  • GET /repositories/:repository_id/issues/:id (:read) [A]
  • GET /search/issues

manage issues

  • POST /repositories/:repository_id/issues/:id (:write)

events

  • GET /repositories/:repository_id/issues/:id/events (:read) [A]
  • GET /repositories/:repository_id/issues/events (:read) [B]
  • GET /repositories/:repository_id/issues/events/:id (:read) [B]

assignees

  • GET /repositories/:repository_id/assignees (:read)
  • GET /repositories/:repository_id/assignees/:assignee (:read)

labels

  • GET /repositories/:repository_id/labels (:read)
  • GET /repositories/:repository_id/labels/* (:read)
  • GET /repositories/:repository_id/issues/:id/labels (:read) [A]
  • POST /repositories/:repository_id/labels (:write)
  • PATCH /repositories/:repository_id/labels/* (:write)
  • POST /repositories/:repository_id/labels/* (:write)
  • DELETE /repositories/:repository_id/labels/* (:write)
  • POST /repositories/:repository_id/issues/:id/labels (:write) [A]
  • DELETE /repositories/:repository_id/issues/:id/labels/* (:write) [A]
  • PUT /repositories/:repository_id/issues/:id/labels (:write) [A]
  • DELETE /repositories/:repository_id/issues/:id/labels (:write) [A]

milestones

  • GET /repositories/:repository_id/milestones (:read)
  • GET /repositories/:repository_id/milestones/:id (:read)
  • GET /repositories/:repository_id/milestones/:id/labels (:read)
  • POST /repositories/:repository_id/milestones (:write)
  • PATCH /repositories/:repository_id/milestones/:id (:write)
  • POST /repositories/:repository_id/milestones/:id (:write)
  • DELETE /repositories/:repository_id/milestones/:id (:write)

issue comments

  • GET /repositories/:repository_id/issues/comments (:read) [B]
  • POST /repositories/:repository_id/issues/comments (:write) [B]
  • GET /repositories/:repository_id/issues/comments/:id (:read) [B]
  • PATCH /repositories/:repository_id/issues/comments/:id (:write) [B]
  • POST /repositories/:repository_id/issues/comments/:id (:write) [B]
  • DELETE /repositories/:repository_id/issues/comments/:id (:write) [B]

Permission on "pull requests"

  • GET /repositories/:repository_id/pulls (:read)
  • GET /repositories/:repository_id/pulls/:id (:read)
  • GET /repositories/:repository_id/pulls/:id/files (:read)
  • GET /repositories/:repository_id/issues/:id/comments (:read) [A]
  • GET /repositories/:repository_id/milestones (:read)
  • POST /repositories/:repository_id/issues/:id/comments (:write) [A]
  • GET /repositories/:repository_id/pulls/:id/merge (:read)
  • GET /repositories/:repository_id/pulls/:id/commits (:read)

PR comments

  • GET /repositories/:repository_id/pulls/comments (:read)
  • POST /repositories/:repository_id/pulls/comments (:write) [B]
  • GET /repositories/:repository_id/pulls/:id/comments (:read)
  • GET /repositories/:repository_id/pulls/comments/:id (:read)
  • POST /repositories/:repository_id/pulls/:id/comments (:write)
  • PATCH /repositories/:repository_id/pulls/comments/:id (:write)
  • POST /repositories/:repository_id/pulls/comments/:id (:write)
  • DELETE /repositories/:repository_id/pulls/comments/:id (:write)

manage PRs

  • POST /repositories/:repository_id/pulls (:write)
  • PATCH /repositories/:repository_id/pulls/:id (:write)

events

  • GET /repositories/:repository_id/issues/:id/events (:read) [A]
  • GET /repositories/:repository_id/issues/events (:read) [B]
  • GET /repositories/:repository_id/issues/events/:id (:read) [B]

assignees

  • GET /repositories/:repository_id/assignees (:read)
  • GET /repositories/:repository_id/assignees/:assignee (:read)

labels

  • GET /repositories/:repository_id/labels (:read)
  • GET /repositories/:repository_id/labels/* (:read)
  • GET /repositories/:repository_id/issues/:id/labels (:read) [A]
  • POST /repositories/:repository_id/labels (:write)
  • PATCH /repositories/:repository_id/labels/* (:write)
  • POST /repositories/:repository_id/labels/* (:write)
  • DELETE /repositories/:repository_id/labels/* (:write)
  • POST /repositories/:repository_id/issues/:id/labels (:write) [A]
  • DELETE /repositories/:repository_id/issues/:id/labels/* (:write) [A]
  • PUT /repositories/:repository_id/issues/:id/labels (:write) [A]
  • DELETE /repositories/:repository_id/issues/:id/labels (:write) [A]

milestones

  • GET /repositories/:repository_id/milestones (:read)
  • GET /repositories/:repository_id/milestones/:id (:read)
  • GET /repositories/:repository_id/milestones/:id/labels (:read)
  • POST /repositories/:repository_id/milestones (:write)
  • PATCH /repositories/:repository_id/milestones/:id (:write)
  • POST /repositories/:repository_id/milestones/:id (:write)
  • DELETE /repositories/:repository_id/milestones/:id (:write)

issue comments

  • GET /repositories/:repository_id/issues/comments (:read) [B]
  • GET /repositories/:repository_id/issues/comments/:id (:read) [B]
  • PATCH /repositories/:repository_id/issues/comments/:id (:write) [B]
  • POST /repositories/:repository_id/issues/comments/:id (:write) [B]
  • DELETE /repositories/:repository_id/issues/comments/:id (:write) [B]

Permission on "statuses"

  • POST /repositories/:repository_id/statuses/:sha (:write)
  • GET /repositories/:repository_id/statuses/* (:read)
  • GET /repositories/:repository_id/status/* (:read)

Permission on "deployments"

  • GET /repositories/:repository_id/deployments/:id (:read)
  • POST /repositories/:repository_id/deployments/:deployment_id/statuses (:write)
  • POST /repositories/:repository_id/deployments (:write)
  • GET /repositories/:repository_id/deployments/:deployment_id/statuses (:read)
  • GET /repositories/:repository_id/deployments (:read)

Permission on "pages"

  • GET /repositories/:repository_id/pages (:read)
  • GET /repositories/:repository_id/pages/builds (:read)
  • GET /repositories/:repository_id/pages/builds/latest (:read)
  • GET /repositories/:repository_id/pages/builds/:id (:read)
  • POST /repositories/:repository_id/pages/builds (:write)

Permission on "organization members"

  • GET /organizations/:organization_id/teams (:read)
  • GET /teams/:id (:read)
  • GET /teams/:id/members (:read)
  • GET /teams/:id/memberships/:user (:read)
  • GET /teams/:id/repos (:read)
  • GET /organizations/:organization_id/members (:read)
  • PUT /organizations/:organization_id/memberships/:user (:read)
  • GET /organizations/:organization_id/memberships/:user (:read)

Issues and pull requests are closely related. Endpoints for issues or pull requests are marked as either:

[A] Restricted to only allow access to a PR, if permissions are only on PRs. Restricted to only allow access to an issue, if permissions are only on issues.

[B] Filter for only Issues or PRs, if permissions are only on Issues or PRs.