ghtier

Scope Reference

What a token can do: classic scopes, and the kinds of token GitHub issues.

41 scopes
Setup
Kind
Plane

Scopes from GitHub's scope table; reach from 174 REST reference pages, fetched 2026-10-12.

Token types

Every token is one of these. "Up to" is the highest tier it can carry; a given token's tier is the tier of the scopes or permissions it was given.

TokenUp toCarriesReachesLifetimeWhat decides it

Classic personal access token

A token the user creates with classic scopes. It works in every organization the user belongs to.

T0Classic scopes (above)Every organization the user belongs to; SAML SSO orgs also need the token authorizedExpiry optional; an enterprise or org can set a maximumIts scopes, and the roles of the user who owns it. repo on an organization owner's token reaches Tier 0.

Disable classic PATs for the organization where you can, and set a maximum lifetime where you cannot.

OAuth App token

A token an OAuth App holds after a user approves it. Uses the same scopes as a classic PAT and usually does not expire.

T0Classic scopes (above)Every organization the user grants it, unless the org restricts OAuth app accessUsually no expiry; lives until revokedThe scopes on the consent screen, and the roles of the user who approved it.

Turn on OAuth App access restrictions so organization data needs an owner's approval.

Fine-grained personal access token

A token for one owner (a user or an organization) and chosen repositories, with permissions from the Permissions tab. Expiry is required.

T0PermissionsOne resource owner (a user or an org) and the repositories picked for the tokenExpiry required; 366 days by default, an enterprise or org can lower itThe permissions picked when it was created, limited by the user's own access.

Require approval for fine-grained PATs and keep the maximum lifetime short.

GitHub App installation token

A 1-hour token an App mints with its private key. It has the App's permissions on the installation's repositories, with no user behind it.

T0PermissionsThe App's permissions, cut down to the installation's repositories (and the user's own access for user tokens)1 hour for installation tokens; 8 hours for user tokens, with a 6-month refresh tokenThe App's permissions and which repositories it is installed on. Whoever holds the private key can mint new ones.

Review installed Apps' permissions and install on selected repositories only.

GitHub App user access token

A token an App holds when a user signs in to it. Capped by both the App's permissions and the user's own access. 8 hours, refreshable for 6 months.

T0PermissionsThe App's permissions, cut down to the installation's repositories (and the user's own access for user tokens)1 hour for installation tokens; 8 hours for user tokens, with a 6-month refresh tokenThe lower of the App's permissions and the user's role.

Treat the refresh token as the long-lived secret it is.

GITHUB_TOKEN

The token every workflow job gets for its own repository, valid for the job. Its permissions come from the workflow's permissions block or the repository default.

T1PermissionsThe one repository the workflow runs inThe job's durationThe permissions block in the workflow, falling back to the organization or repository default.

Set the default to read-only and grant write per job.