GitHub Actions token
GITHUB_TOKEN is the GitHub App installation access token that GitHub automatically provides to a workflow job, with permissions limited to the repository containing the workflow.
The job receives a credential of its own
GitHub creates a unique token for each workflow job. It is not a developer’s personal access token and does not require someone to paste their password into the workflow. The token expires when the job finishes or reaches its effective maximum lifetime.
The workflow’s permissions matter while that token is valid. GitHub allows the permissions setting at workflow or job level so authors can request the access their work needs. A repository boundary is useful, but write access within that repository can still have significant consequences.
Review code and permissions together
An action can access the token through the github.token context even if the workflow does not explicitly pass it as an input. Set the job’s permissions to the minimum it needs; leaving the token out of one step’s arguments is not an access restriction.
The built-in token also does not describe every credential a workflow might use. A workflow can separately receive stored secrets or tokens for other services. Inventory those independently rather than assuming the job’s entire authority ends at the GITHUB_TOKEN repository boundary.
When approving a workflow run, review the code it executes alongside its trigger and permissions. The pull request description alone cannot tell you what the job will do with its token.