You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Verification rules/setup is moved to construction now instead of ->verify() params
// beforeprivateconstATTESTATION_CERTIFICATE_EXPECTED_EXTENSION_VALUES = [
FulcioSigstoreOidExtensions::ISSUER_V2 => 'https://token.actions.githubusercontent.com',
FulcioSigstoreOidExtensions::SOURCE_REPOSITORY_URI => 'https://github.com/php/pie',
FulcioSigstoreOidExtensions::SOURCE_REPOSITORY_OWNER_URI => 'https://github.com/php',
];
// ...$expectedExtensions[self::BUILD_SIGNER_URI] = '...@refs/heads/...'; // or SOURCE_REPOSITORY_REF for tags// afterprivateconstATTESTATION_CERTIFICATE_EXPECTED_EXTENSION_VALUES = [
FulcioSigstoreOidExtensions::SOURCE_REPOSITORY_URI => 'https://github.com/php/pie',
FulcioSigstoreOidExtensions::SOURCE_REPOSITORY_OWNER_URI => 'https://github.com/php',
];
privateconstOIDC_ISSUER = 'https://token.actions.githubusercontent.com'; // used to be `ISSUER_V2` extension, now is first class citizen// ...$expectedCertificateIdentity = '.../build-assets.yml@refs/heads/...'; // or @refs/tags/<tag>VerifyBundleWithOpenSsl::factory(
self::ATTESTATION_CERTIFICATE_EXPECTED_EXTENSION_VALUES,
$expectedCertificateIdentity,
self::OIDC_ISSUER,
);
Note: the verifier now therefore varies per release (as identity is ingrained) so construction should be inline not injected (although, a factory could be injected, and release-specific params can be passed to that factory fn?)
Check if exceptions have moved/updated
Some exceptions might've moved, check them. There is also new exceptions (e.g. NoSodium, NoGmpOrBcmath etc) to potentially handle (if we don't globally handle them, can't remember off my head)
Activity
asgrim commentedon Sep 4, 2026
Fetching/verifying are separate now:
Verification rules/setup is moved to construction now instead of
->verify()paramsNote: the verifier now therefore varies per release (as identity is ingrained) so construction should be inline not injected (although, a factory could be injected, and release-specific params can be passed to that factory fn?)
Check if exceptions have moved/updated
Some exceptions might've moved, check them. There is also new exceptions (e.g.
NoSodium,NoGmpOrBcmathetc) to potentially handle (if we don't globally handle them, can't remember off my head)