docs(changelog): Flaky Tests fork PR uploads without sharing org token#153
docs(changelog): Flaky Tests fork PR uploads without sharing org token#153samgutentag wants to merge 1 commit into
Conversation
Per-repo opt-in for uploading test results from fork pull requests via a non-secret 8-character public repo identifier sent on the X-Trunk-Public-Repo-Id header, instead of the org API token. Source eng PR: trunk-io/trunk2#3908 (merged 2026-05-18) Linear: TRUNK-18349 Date basis: source eng PR mergedAt (2026-05-18). Wires all four changelog sites: the entry .mdx, docs.json nav, changelog/index.mdx, and flaky-tests/changelog.mdx. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Verification status (2026-05-29): Eng merged but the customer-facing upload path is not confirmed live in prod. Hold off.
Next: keep in draft. Re-run once the monolith accepts the header in prod and analytics-cli ships the fork-PR send path. (Verdict unchanged from prior run.) |
|
Code verification (2026-05-28): 3 confirmed / 0 contradicted / 0 ambiguous / 0 unverifiable
All three factual claims in the entry are confirmed against trunk2#3908. One scope note (not a contradiction): the Source #1 — Identifier is 8 characters, alphanumeric (confirmed)File: import { customAlphabet } from "nanoid";
const SHORT_ID_ALPHABET =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const SHORT_ID_LENGTH = 8;
export const generateShortId = customAlphabet(
SHORT_ID_ALPHABET,
SHORT_ID_LENGTH,
);Reasoning: The public repo identifier is minted by Source #2 — Header name is X-Trunk-Public-Repo-Id (confirmed)File: A non-secret, opt-in, per-repo public identifier that the analytics-cli sends on fork PR runs.
The customer-facing endpoints (in the legacy `api.trunk.io` monolith) accept the identifier on
`X-Trunk-Public-Repo-Id` and gate uploads + quarantine reads on per-repo opt-in plus run verification.Reasoning: The header name is spelled Source #3 — Toggle is "Fork PR Uploads" on the repo Flaky Tests settings page (confirmed)File: <SettingsSection title="Fork PR Uploads">Reasoning: The setting renders inside a |
|
Verification status (May 30, 2026): Verified: customers can use this. Ready to publish.
Prior verdict was Generated by Claude Code |
|
Verification status (May 31, 2026): All three cross-repo dependencies have merged; this changelog is clear to ship.
Next action: merge this PR. Generated by Claude Code |
|
Docs Verify Sweep · June 1, 2026 · ✅ live Feature is live in production. Ready to merge. Unchanged from previous sweep (May 31, 2026). Generated by Claude Code |
What shipped
A per-repo Fork PR Uploads toggle for Flaky Tests (Settings > Repositories > [repo] > Flaky Tests). Enabling it mints a non-secret 8-character public repo identifier that fork PR workflows send on the
X-Trunk-Public-Repo-Idheader instead of the org API token. Uploads are gated by two independent checks: per-repo opt-in plus GitHub run verification.Source
Date basis
Entry date
2026-05-18= mergedAt of the source eng PR.Wired files (4 sites)
changelog/2026-05-18-flaky-tests-fork-pr-uploads.mdx(entry)docs.json(Changelog 2026 nav group)changelog/index.mdx(May 2026 Update block)flaky-tests/changelog.mdx(product index Update block)Verification notes
Header name
X-Trunk-Public-Repo-Idand the 8-character alphanumeric identifier are both confirmed against trunk2#3908 (TRD +short-id.ts, same alphabet/length as test-collection short IDs). Note: trunk2#3908 ships only the frontend toggle + DB config; the header acceptance on the upload/quarantine endpoints lives in the legacyapi.trunk.iomonolith and analytics-cli, listed as out-of-scope cross-repo TODOs. Kept as a draft pending confirmation those land in production.🤖 Generated with Claude Code