Skip to content

ci: verify Composer trust before CLI builds - #63

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/237-composer-trust
Oct 23, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/237-composer-trust

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Changes

Continues durable-workflow/.github#237. The CLI test, PHAR and reproducibility
jobs select the reviewed public CA bundle, pin Composer 2.10.3, and verify its
actual version and effective file/directory immediately before Composer runs.
The release PHAR builder does the same. Central preflight uses the current
reviewed bootstrap. Product source, lock, version and release-channel rules
are unchanged.

Native launcher qualification restores the exact PHAR builder's locked vendor
artifact by artifact ID with digest mismatch refusal and one-day retention.
It no longer performs a separate unguarded Composer installation on each
native runner. The existing macOS Homebrew PHP workaround remains; Composer
is no longer needed there. This does not qualify a new native binary or move
an immutable release.

Verification

Current central policy with the stricter CLI Composer requirement enabled
refuses the preceding workflow and accepts the complete candidate. That flag
is changed only in the temporary validation input; central main policy is
unchanged. Intermediate local candidates were correctly refused for a stale
verification and the previously missed native launcher installation; neither
is presented as qualified.

The six existing/extended release metadata controls pass; the preceding release
workflow fails the new dependency-artifact control while its five old controls
pass. Parsing uses the normal PyYAML 6.0.2 wheel after independently checking
its published SHA-256; local execution is offline. git diff --check passes.

Exact candidate 4dc51f62d76c1bf4694cf7ae882b8636dc1ab7be / whole
4e377a3eefa6e13a0ec91d495ecd222515904569 passes all 15 applicable checks,
including PHP 8.2–8.5, PHAR, bit-identical rebuilds, central policy and Sonar.
The Sonar issue API has zero OPEN/CONFIRMED findings.

The CodeQL summary is NEUTRAL with a missing-actions-configuration warning;
it is not called green. The actual default-setup records independently show
all three analyses on this exact head at refs/pull/63/head: actions
2010766807, JavaScript/TypeScript 2010766747 and Python 2010766677. Each has
an empty error and zero results. All three Analyze jobs pass. No configuration
is disabled or reset to hide the summary warning; its aggregation cause is
not established.

Actual protected native release execution remains a separate #237 acceptance
step. No CI-only change establishes a rebuilt public artifact or completes the
organization-wide security follow-through.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 23, 2026 05:30
@rmcdaniel
rmcdaniel merged commit 535cb6e into main Oct 23, 2026
16 checks passed
@rmcdaniel
rmcdaniel deleted the fix/237-composer-trust branch October 23, 2026 05:30
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.

1 participant