Skip to content

Preparing 5.0.0

Preparing 5.0.0 #703

Triggered via pull request December 1, 2023 20:45
Status Failure
Total duration 7m 11s
Artifacts
This run and associated checks have been archived and are scheduled for deletion. Learn more about checks retention

integrate.yml

on: pull_request
0️⃣ Byte-level
2s
0️⃣ Byte-level
1️⃣ Syntax errors
43s
1️⃣ Syntax errors
3️⃣ Static Analysis
30s
3️⃣ Static Analysis
4️⃣ Coding Standards
1m 20s
4️⃣ Coding Standards
5️⃣ Mutation Testing
6m 11s
5️⃣ Mutation Testing
6️⃣ Rector Checkstyle
36s
6️⃣ Rector Checkstyle
7️⃣ Exported files
4s
7️⃣ Exported files
Matrix: 2️⃣ JS tests
Matrix: 2️⃣ Unit and functional tests
Fit to window
Zoom out
Zoom in

Annotations

11 errors and 10 warnings
3️⃣ Static Analysis: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L1
Ignored error pattern #^Access to an undefined property Webauthn\\MetadataService\\CertificateChain\\PhpCertificateChainValidator\:\:\$requestFactory\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php was not matched in reported errors.
3️⃣ Static Analysis: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L1
Ignored error pattern #^Call to an undefined method Symfony\\Contracts\\HttpClient\\HttpClientInterface\:\:sendRequest\(\)\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php was not matched in reported errors.
3️⃣ Static Analysis: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L1
Ignored error pattern #^Instanceof between Symfony\\Contracts\\HttpClient\\HttpClientInterface and Symfony\\Contracts\\HttpClient\\HttpClientInterface will always evaluate to true\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionControllerFactory.php#L1
Ignored error pattern #^Parameter \#8 \$publicKeyCredentialSourceRepository of class Webauthn\\Bundle\\Controller\\AssertionResponseController constructor expects Webauthn\\Bundle\\Repository\\PublicKeyCredentialSourceRepositoryInterface\|null, Webauthn\\Bundle\\Repository\\PublicKeyCredentialSourceRepositoryInterface\|Webauthn\\PublicKeyCredentialSourceRepository given\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionControllerFactory.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionControllerFactory.php#L1
Ignored error pattern #^Parameter \$publicKeyCredentialLoader of method Webauthn\\Bundle\\Controller\\AssertionControllerFactory\:\:__construct\(\) has typehint with deprecated class Webauthn\\PublicKeyCredentialLoader\: since 4\.8\.0 and will be removed in 5\.0\.0\. Please use the Symfony serializer instead$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionControllerFactory.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionControllerFactory.php#L1
Ignored error pattern #^Parameter \$publicKeyCredentialSourceRepository of method Webauthn\\Bundle\\Controller\\AssertionControllerFactory\:\:__construct\(\) has typehint with deprecated interface Webauthn\\PublicKeyCredentialSourceRepository\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionControllerFactory.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionResponseController.php#L1
Ignored error pattern #^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getContentType\(\)\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionResponseController.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionResponseController.php#L1
Ignored error pattern #^Call to function method_exists\(\) with Symfony\\Component\\HttpFoundation\\Request and 'getContentTypeFormat' will always evaluate to true\.$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionResponseController.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionResponseController.php#L1
Ignored error pattern #^Parameter \$publicKeyCredentialLoader of method Webauthn\\Bundle\\Controller\\AssertionResponseController\:\:__construct\(\) has typehint with deprecated class Webauthn\\PublicKeyCredentialLoader\: since 4\.8\.0 and will be removed in 5\.0\.0\. Please use the Symfony serializer instead$# in path /home/runner/work/webauthn-framework/webauthn-framework/src/symfony/src/Controller/AssertionResponseController.php was not matched in reported errors.
3️⃣ Static Analysis: src/symfony/src/Controller/AssertionResponseController.php#L64
Parameter #1 $publicKeyCredentialSource of method Webauthn\AuthenticatorAssertionResponseValidator::check() expects Webauthn\PublicKeyCredentialSource, string|Webauthn\PublicKeyCredentialSource given.
5️⃣ Mutation Testing
Process completed with exit code 2.
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/CertificateToolbox.php#L36
Escaped Mutant for Mutator "PublicVisibility": --- Original +++ New @@ @@ $pem .= chunk_split($data, 64, PHP_EOL); return $pem . (self::PEM_FOOTER . $type . '-----' . PHP_EOL); } - public static function convertDERToPEM(string $data, string $type = 'CERTIFICATE') : string + protected static function convertDERToPEM(string $data, string $type = 'CERTIFICATE') : string { if (str_contains($data, self::PEM_HEADER)) { return $data;
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L69
Escaped Mutant for Mutator "MethodCallRemoval": --- Original +++ New @@ @@ $this->dispatcher->dispatch(BeforeCertificateChainValidation::create($untrustedCertificates, $trustedCertificate)); try { if ($this->validateChain($untrustedCertificates, $trustedCertificate)) { - $this->dispatcher->dispatch(CertificateChainValidationSucceeded::create($untrustedCertificates, $trustedCertificate)); + return; } } catch (Throwable $exception) {
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L119
Escaped Mutant for Mutator "SpreadOneItem": --- Original +++ New @@ @@ if (!$this->validateCertificates($trustedCertificate, ...$untrustedCertificates)) { return false; } - $certificates = [$trustedCertificate, ...$untrustedCertificates]; + $certificates = [$trustedCertificate, [...$untrustedCertificates][0]]; $numCerts = count($certificates); for ($i = 1; $i < $numCerts; $i++) { if ($this->isRevoked($certificates[$i])) {
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L119
Escaped Mutant for Mutator "ArrayItemRemoval": --- Original +++ New @@ @@ if (!$this->validateCertificates($trustedCertificate, ...$untrustedCertificates)) { return false; } - $certificates = [$trustedCertificate, ...$untrustedCertificates]; + $certificates = [...$untrustedCertificates]; $numCerts = count($certificates); for ($i = 1; $i < $numCerts; $i++) { if ($this->isRevoked($certificates[$i])) {
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L121
Escaped Mutant for Mutator "IncrementInteger": --- Original +++ New @@ @@ } $certificates = [$trustedCertificate, ...$untrustedCertificates]; $numCerts = count($certificates); - for ($i = 1; $i < $numCerts; $i++) { + for ($i = 2; $i < $numCerts; $i++) { if ($this->isRevoked($certificates[$i])) { throw CertificateChainException::create($untrustedCertificates, [$trustedCertificate], 'Unable to validate the certificate chain. Revoked certificate found.'); }
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L121
Escaped Mutant for Mutator "LessThanNegotiation": --- Original +++ New @@ @@ } $certificates = [$trustedCertificate, ...$untrustedCertificates]; $numCerts = count($certificates); - for ($i = 1; $i < $numCerts; $i++) { + for ($i = 1; $i >= $numCerts; $i++) { if ($this->isRevoked($certificates[$i])) { throw CertificateChainException::create($untrustedCertificates, [$trustedCertificate], 'Unable to validate the certificate chain. Revoked certificate found.'); }
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L121
Escaped Mutant for Mutator "For_": --- Original +++ New @@ @@ } $certificates = [$trustedCertificate, ...$untrustedCertificates]; $numCerts = count($certificates); - for ($i = 1; $i < $numCerts; $i++) { + for ($i = 1; false; $i++) { if ($this->isRevoked($certificates[$i])) { throw CertificateChainException::create($untrustedCertificates, [$trustedCertificate], 'Unable to validate the certificate chain. Revoked certificate found.'); }
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L162
Escaped Mutant for Mutator "Foreach_": --- Original +++ New @@ @@ } throw InvalidCertificateException::create($subject->toPEM()->string(), 'Failed to get CRL distribution points: ' . $e->getMessage(), $e); } - foreach ($urls as $url) { + foreach (array() as $url) { try { $revokedCertificates = $this->retrieveRevokedSerialNumbers($url); if (in_array($csn, $revokedCertificates, true)) {
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L218
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ return $sequence->at(0)->asInteger()->number(); }, $list->elements()); } catch (Throwable $e) { - throw CertificateRevocationListException::create($url, 'Failed to download the CRL', $e); + CertificateRevocationListException::create($url, 'Failed to download the CRL', $e); } } /**
5️⃣ Mutation Testing: src/metadata-service/src/CertificateChain/PhpCertificateChainValidator.php#L232
Escaped Mutant for Mutator "IfNegation": --- Original +++ New @@ @@ try { $urls = []; $extensions = $subject->tbsCertificate()->extensions(); - if ($extensions->hasCRLDistributionPoints()) { + if (!$extensions->hasCRLDistributionPoints()) { $crlDists = $extensions->crlDistributionPoints(); foreach ($crlDists->distributionPoints() as $dist) { $url = $dist->fullName()->names()->firstURI();