Skip to content

test(forge): live-oracle GitHub legs authenticate as Apps, not PATs (RIG-3096) - #837

Open
rigel-mintaka wants to merge 3 commits into
mainfrom
compass-forge/rig-3096-live-oracle-apps
Open

test(forge): live-oracle GitHub legs authenticate as Apps, not PATs (RIG-3096)#837
rigel-mintaka wants to merge 3 commits into
mainfrom
compass-forge/rig-3096-live-oracle-apps

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

Swap the forge live-contract oracle's author + reviewer identities from
fine-grained bot PATs to GitHub App installation-token sources, exercising
the production mint path (RS256 App JWT -> installation access token) the
deployed server uses after the RIG-3090 credential cutover.

The Linear legs stay on the app-actor token (client_credentials mint); the
retained-Linear-user-cred plan from the frozen record is dropped per Matt
(agent delegation only, moving off the user model).

Refs RIG-3096
Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Sep 2, 2026

Copy link
Copy Markdown

RIG-3096

@trunk-io

trunk-io Bot commented Sep 2, 2026

Copy link
Copy Markdown

❌ This pull request was removed from the merge queue because it failed tests. PR #891 was used for testing. See more details here.

Failed Required Status Conclusion
rollup Failure
  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-forge-rig-3096-live.compass-eng-docs.pages.dev

Deployed from compass-forge/rig-3096-live-oracle-apps at f4280cd.

rigel-mintaka added a commit that referenced this pull request Sep 2, 2026
…docs (RIG-3096)

Review low-severity doc-precision fixes on PR #837:
- Note requireLive eagerly builds BOTH App identities regardless of which
  the caller uses, so a reviewer-only misconfig still fails an author-only
  test loud (the intended all-creds-or-skip gate).
- Clarify a malformed PEM is caught at first mint on a live leg (lazy key
  resolution), not at liveAppSource setup \u2014 still red, never silent-green.

Comment-only; no behavior change.

Refs RIG-3096
Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka

Copy link
Copy Markdown
Contributor Author

Status: review-clean; held draft on purpose; unblock is RIG-3151.

Swaps the forge live-oracle's GitHub author+reviewer identities from bot PATs to GitHub App installation-token sources (RIG-3096, frozen design section T5). Linear legs stay app-actor (no user credential, per the pivot off the user model).

Why the forge check is red and that's expected: the forge-oracle assert-ran guard (ci.yml:1071-1124) turns a credential-unset t.Skip into a hard red, so a required check never passes vacuously. The six App Actions secrets do not exist yet, so the oracle legs skip and the guard reds. Every other check is green (e2e, pgtest, microvm, all moon lanes, deploy).

Unblock chain:

  1. RIG-3151 (human-action, Matt): register the two compass-forge-testbed Apps (author + reviewer) and stage the six App-cred values into the orion orion-platform-secrets stack.
  2. Orion IaC PR (compass-forge lane): create the six LIVEGITHUB_*_APP_* Actions secrets on this repo, retire the two PAT rows.
  3. forge goes green, then this PR is promoted out of draft.

Held draft precisely so it cannot land before step 2: landing with the secrets unset would red main's forge gate for every forge-touching PR.

rigel-mintaka and others added 2 commits September 5, 2026 11:35
…RIG-3096)

Swap the forge live-contract oracle's author + reviewer identities from
fine-grained bot PATs to GitHub App installation-token sources, exercising
the production mint path (RS256 App JWT -> installation access token) the
deployed server uses after the RIG-3090 credential cutover.

The Linear legs stay on the app-actor token (client_credentials mint); the
retained-Linear-user-cred plan from the frozen record is dropped per Matt
(agent delegation only, moving off the user model).

Refs RIG-3096
Co-authored-by: Matt Wilkinson <matt@rigel.build>
…docs (RIG-3096)

Review low-severity doc-precision fixes on PR #837:
- Note requireLive eagerly builds BOTH App identities regardless of which
  the caller uses, so a reviewer-only misconfig still fails an author-only
  test loud (the intended all-creds-or-skip gate).
- Clarify a malformed PEM is caught at first mint on a live leg (lazy key
  resolution), not at liveAppSource setup \u2014 still red, never silent-green.

Comment-only; no behavior change.

Refs RIG-3096
Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass-forge/rig-3096-live-oracle-apps branch from fd83ead to 82cee54 Compare September 5, 2026 15:37
…ards (RIG-3096)

Address the review of record on the App-credential swap (0 high, 1 medium,
3 low): the medium is a secret-in-error-message gap on the credential path
this PR introduces, the lows are same-path doc/hygiene fixes.

- medium: liveAppSource echoed the raw env VALUE via %q on a malformed id or
  installation id — exactly the mis-paste case the manual six-secret rollout
  invites (a PEM pasted into *_APP_ID). %q re-renders newlines/quotes so the
  Actions substring mask no longer matches, and locally there is no mask at
  all. Report env name + observed byte length + parse error only; the length
  disambiguates a stray newline from a whole PEM without printing bytes.
- low: reword requireLive doc — an unset reviewer trio SKIPS (CI assert-ran
  guard turns that red), only a malformed one fails loud; the code lives in
  the workflow, not Go.
- low: auth-failure fake uses a ghs_ (post-cutover installation-token) prefix,
  not the retired ghp_ PAT shape the file header disclaims.
- low: state the recorder-isolation invariant on githubUpdateSpecs — the App
  source builds its own client so the mint is never captured into committed
  testdata or the bot PR this lane opens.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka marked this pull request as ready for review September 5, 2026 16:27
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