Merge branch 'main' into test-oauth-client
Reconciles 71 commits of main evolution (labeler report stage + supporting
refactors) with the 62-commit test-oauth-client branch (OAuth client
conformance suite).
Notable merge decisions:
- src/common/report.rs: kept the newtype `Stage(pub &'static str)` from
the OAuth client branch (extensible across commands without a shared
enum) and added the `Stage::REPORT` constant for the labeler report
stage. Dropped main's enum-form Stage and the `report_stage_ordering`
test that depended on it.
- src/common.rs, src/common/CLAUDE.md: union of both branches' modules —
`diagnostics`, `identity`, `jwt` (main), `oauth` (this branch), and
`report` all live side-by-side. The hand-rolled `common::jwt`
(labeler report service-auth) and the `jsonwebtoken`-backed
`common::oauth::jws` (OAuth client RP) are separate surfaces and do
not share code.
- tests/common/mod.rs: adopted main's rewritten `normalize_timing`
(emits `XXms`, advances past each match) alongside this branch's
`FakeJwksFetcher` / `FakeClock`. All 68 snapshots carrying
`elapsed: Xms` updated to `elapsed: XXms` to match.
- src/commands/test/labeler/pipeline.rs, crypto.rs, create_report.rs,
identity.rs: updated the report-stage additions from main to import
`Stage` / `CheckResult` / `CheckStatus` from `crate::common::report`
(this branch promoted that module out of the labeler tree) and to
reference the stage consts `Stage::IDENTITY` / `Stage::REPORT`
instead of enum variants.
- tests/labeler_identity.rs: dropped the local `normalize_timing`
helper in favour of `common::normalize_timing`. The
`local_http_override_mismatch_is_advisory` test added by main was
adapted to the `&Url` seam this branch introduced on
`FakeHttpClient::add_response`.
- Labeler snapshots: accepted new output where main's report-stage work
and this branch's `blocked_by(..., check_id)` helper combine — the
upstream-failure messages now consistently render as
`blocked by identity::<check>` rather than the older
`blocked by identity stage failures` phrasing.
Verified with `cargo test`, `cargo clippy --all-targets -- -D warnings`,
and `cargo fmt --check`.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This is a binary file and will not be displayed.