Skip to content

Test on PHP 8.4 and 8.5, update Codecov action, add badges #10

Test on PHP 8.4 and 8.5, update Codecov action, add badges

Test on PHP 8.4 and 8.5, update Codecov action, add badges #10

Triggered via push June 30, 2026 09:26
Status Success
Total duration 57s
Artifacts

build.yaml

on: push
Matrix: Code Coverage
Matrix: Coding Standards
Matrix: Dependency Analysis
Matrix: Mutation tests
Matrix: Static Code Analysis
Matrix: Unit tests
Fit to window
Zoom out
Zoom in

Annotations

43 warnings
Unit tests (8.2, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.2, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.2, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.3, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.1, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.3, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Coding Standards (8.1, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.3, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.3, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.3, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.1, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.1, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.2, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.4, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.5, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.2, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.5, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Code Coverage (8.3, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809, actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.5, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.5, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.1, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.4, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.2, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.3, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.4, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.4, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.1, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.1, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Static Code Analysis (8.4, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.4, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Dependency Analysis (8.5, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Unit tests (8.5, lowest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mutation tests (8.3, highest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mutation tests (8.3, highest): src/Callback/Callback.php#L97
Escaped Mutant for Mutator "DecrementInteger": --- Original +++ New @@ @@ /** @var mixed $decoded */ $decoded = json_decode($this->body, true, flags: \JSON_THROW_ON_ERROR); } catch (\JsonException $e) { - throw new InvalidCallbackException('The callback body is not valid JSON: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException('The callback body is not valid JSON: ' . $e->getMessage(), -1, $e); } if (!is_array($decoded)) { throw new InvalidCallbackException(sprintf('Expected the callback body to decode to an object but got %s.', get_debug_type($decoded)));
Mutation tests (8.3, highest): src/Callback/Callback.php#L97
Escaped Mutant for Mutator "ConcatOperandRemoval": --- Original +++ New @@ @@ /** @var mixed $decoded */ $decoded = json_decode($this->body, true, flags: \JSON_THROW_ON_ERROR); } catch (\JsonException $e) { - throw new InvalidCallbackException('The callback body is not valid JSON: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException('The callback body is not valid JSON: ', 0, $e); } if (!is_array($decoded)) { throw new InvalidCallbackException(sprintf('Expected the callback body to decode to an object but got %s.', get_debug_type($decoded)));
Mutation tests (8.3, highest): src/Callback/Callback.php#L97
Escaped Mutant for Mutator "ConcatOperandRemoval": --- Original +++ New @@ @@ /** @var mixed $decoded */ $decoded = json_decode($this->body, true, flags: \JSON_THROW_ON_ERROR); } catch (\JsonException $e) { - throw new InvalidCallbackException('The callback body is not valid JSON: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException($e->getMessage(), 0, $e); } if (!is_array($decoded)) { throw new InvalidCallbackException(sprintf('Expected the callback body to decode to an object but got %s.', get_debug_type($decoded)));
Mutation tests (8.3, highest): src/Callback/Callback.php#L97
Escaped Mutant for Mutator "Concat": --- Original +++ New @@ @@ /** @var mixed $decoded */ $decoded = json_decode($this->body, true, flags: \JSON_THROW_ON_ERROR); } catch (\JsonException $e) { - throw new InvalidCallbackException('The callback body is not valid JSON: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException($e->getMessage() . 'The callback body is not valid JSON: ', 0, $e); } if (!is_array($decoded)) { throw new InvalidCallbackException(sprintf('Expected the callback body to decode to an object but got %s.', get_debug_type($decoded)));
Mutation tests (8.3, highest): src/Callback/Callback.php#L76
Escaped Mutant for Mutator "IncrementInteger": --- Original +++ New @@ @@ try { $payment = $this->mapperBuilder()->mapper()->map(Payment::class, Source::array($decoded)->camelCaseKeys()); } catch (MappingError $e) { - throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 1, $e); } $payment->raw = $decoded; return $payment;
Mutation tests (8.3, highest): src/Callback/Callback.php#L76
Escaped Mutant for Mutator "DecrementInteger": --- Original +++ New @@ @@ try { $payment = $this->mapperBuilder()->mapper()->map(Payment::class, Source::array($decoded)->camelCaseKeys()); } catch (MappingError $e) { - throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), -1, $e); } $payment->raw = $decoded; return $payment;
Mutation tests (8.3, highest): src/Callback/Callback.php#L76
Escaped Mutant for Mutator "ConcatOperandRemoval": --- Original +++ New @@ @@ try { $payment = $this->mapperBuilder()->mapper()->map(Payment::class, Source::array($decoded)->camelCaseKeys()); } catch (MappingError $e) { - throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException('The callback body does not match the expected payment shape: ', 0, $e); } $payment->raw = $decoded; return $payment;
Mutation tests (8.3, highest): src/Callback/Callback.php#L76
Escaped Mutant for Mutator "ConcatOperandRemoval": --- Original +++ New @@ @@ try { $payment = $this->mapperBuilder()->mapper()->map(Payment::class, Source::array($decoded)->camelCaseKeys()); } catch (MappingError $e) { - throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException($e->getMessage(), 0, $e); } $payment->raw = $decoded; return $payment;
Mutation tests (8.3, highest): src/Callback/Callback.php#L76
Escaped Mutant for Mutator "Concat": --- Original +++ New @@ @@ try { $payment = $this->mapperBuilder()->mapper()->map(Payment::class, Source::array($decoded)->camelCaseKeys()); } catch (MappingError $e) { - throw new InvalidCallbackException('The callback body does not match the expected payment shape: ' . $e->getMessage(), 0, $e); + throw new InvalidCallbackException($e->getMessage() . 'The callback body does not match the expected payment shape: ', 0, $e); } $payment->raw = $decoded; return $payment;
Mutation tests (8.3, highest): src/Callback/Callback.php#L65
Escaped Mutant for Mutator "Throw_": --- Original +++ New @@ @@ public function payment() : Payment { if (ResourceType::Payment !== $this->type) { - throw new InvalidCallbackException(sprintf('This callback is a "%s" resource, not a payment — check the type before calling payment().', $this->type->value)); + new InvalidCallbackException(sprintf('This callback is a "%s" resource, not a payment — check the type before calling payment().', $this->type->value)); } $decoded = $this->toArray(); try {