Test on PHP 8.4 and 8.5, update Codecov action, add badges #10
build.yaml
on: push
Matrix: Code Coverage
Matrix: Coding Standards
Matrix: Dependency Analysis
Matrix: Mutation tests
Matrix: Static Code Analysis
Matrix: Unit tests
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 {
|