What is the Chainguard Factory?
Dustin Kirkland explains the concept and purpose of the Chainguard Factory
Octo STS is a GitHub App developed by Chainguard that acts as a Security Token Service (STS) for the GitHub API. It enables workloads running anywhere that can produce OIDC tokens to federate with GitHub, exchanging those tokens for short-lived GitHub access tokens. The primary goal is to eliminate the need for GitHub Personal Access Tokens (PATs), which are long-lived credentials that pose significant security risks.
Long-lived access tokens are a common target in security incidents. When attackers gain access to a PAT, they can exploit it to access repositories, make changes, and pivot to other resources. These tokens often have broad permissions and no expiration date, making them particularly dangerous if compromised.
Octo STS addresses this problem by:
Octo STS operates through a trust policy model. The steps to install and use Octo STS are:
.github/chainguard/{name}.sts.yaml) that specify which identities can access which resourcesThe Octo STS app needs to request a large number of permissions. This set of permissions is reviewed on a quarterly basis to ensure it meets common use cases without being overly broad.
This sequence diagram outlines the token exchange process in Octo STS:

Developing Actions that create Pull Requests (a PAT is required to trigger presubmit GitHub Actions)
Developing Actions that interact across repositories (unsupported by built-in permissions)
Developing Actions that interact with the GitHub organization level
Providing external services (e.g. clouds) with access to repositories
Refer to our Octo STS FAQ for answeres to frequently asked questions and troubleshooting recommendations.
You may also find these resources to be useful:
Last updated: 2025-12-24 15:04