Skip to content

ci: replace GH_AUTH_TOKEN PAT with Octo STS federation in baseline scanner - #195

Merged
jmeridth merged 1 commit into
ossf:mainfrom
jmeridth:baseline-octo-sts
Aug 28, 2026
Merged

ci: replace GH_AUTH_TOKEN PAT with Octo STS federation in baseline scanner#195
jmeridth merged 1 commit into
ossf:mainfrom
jmeridth:baseline-octo-sts

Conversation

@jmeridth

@jmeridth jmeridth commented Aug 18, 2026

Copy link
Copy Markdown
Member

Relates to #162

What/Why

The OSPS Baseline Scanner has broken twice on PAT (Personal Access Token) availability: PVTR_GITHUB_TOKEN expired (#162), and now GH_AUTH_TOKEN is not available to this repo (see #194 for the diagnosis). This swaps the PAT for Octo STS federation: the workflow exchanges its OIDC identity for a short-lived GitHub App token minted against a trust policy checked into this repo, so there is no long-lived secret left to expire, rotate, or leak. Unlike the workflow GITHUB_TOKEN (#194), the federated token carries administration: read, so the OSPS-AC-03 branch protection checks remain fully observable. Mirrors gemaraproj/go-gemara#116.

Proof it works

Structural verification: actionlint passes and the trust policy follows the Octo STS TrustPolicy schema (same shape as the go-gemara policy). The Octo STS App is now installed on the ossf org, so the remaining end-to-end test is a workflow_dispatch run from main after merge (the trust policy subject only matches refs/heads/main).

Risk + AI role

Low. Scheduled scan workflow and a new trust policy file only. AI-generated, mirroring the go-gemara change.

Review focus

  • Trust policy permission set (.github/chainguard/baseline-scanner.sts.yaml), derived from the scanner's actual API calls. May need adjusting after a live run.
  • Whether ossf wants repo-level trust policies or a central org-level policy in ossf/.github instead.

@jmeridth jmeridth self-assigned this Aug 18, 2026
@jmeridth

Copy link
Copy Markdown
Member Author

Have asked in the openssf-operations channel in the OSSF slack to have the octo-sts app installed (to just this repo for now if needed). Awaiting response.

@jmeridth
jmeridth marked this pull request as ready for review August 18, 2026 23:00
@jmeridth
jmeridth requested a review from a team as a code owner August 18, 2026 23:00
@jmeridth
jmeridth marked this pull request as draft August 18, 2026 23:00
@jmeridth
jmeridth marked this pull request as ready for review August 27, 2026 06:10
@jmeridth
jmeridth requested a review from eddie-knight August 27, 2026 06:10
…anner

What/Why

The OSPS Baseline Scanner has now broken twice on PAT availability
(PVTR_GITHUB_TOKEN expiry, then GH_AUTH_TOKEN not reaching this repo).
Octo STS federation exchanges the workflow's OIDC identity for a
short-lived GitHub App token minted against an in-repo trust policy, so
there is no long-lived secret left to expire, rotate, or leak. Unlike
the workflow GITHUB_TOKEN stopgap (ossf#194), the federated token carries
administration read access, keeping branch protection checks
observable. Mirrors gemaraproj/go-gemara#116.

Proof it works

Structural verification: actionlint passes. The Octo STS App is
installed on the ossf org; the end-to-end test is a workflow_dispatch
run from main after merge, since the trust policy subject only matches
refs/heads/main.

Risk + AI role

Low -- scheduled scan workflow and a new trust policy file only. AI-
generated (Claude Fable 5), mirroring the reviewed go-gemara change.

Review focus

Trust policy permission set, derived from the scanner's actual API
calls. May need adjusting after a live run.

Signed-off-by: jmeridth <jmeridth@gmail.com>
@jmeridth
jmeridth merged commit c7c127d into ossf:main Aug 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants