Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
731a5e7
chore: fix release automation failures on the first run (#10610)
paulbalandan Oct 9, 2026
7822cde
docs: add changelog and upgrade for v4.7.6 (#10611)
paulbalandan Oct 9, 2026
9c62323
chore: normalize Actions cache keys (#10614)
paulbalandan Oct 9, 2026
8fd3fdf
docs: document CSRF in JSON request body limitations (#10619)
gr8man Oct 12, 2026
0361d92
fix: preserve JSON request body when CSRF token is not in it (#10620)
gr8man Oct 12, 2026
fceba62
docs: clarify hostname route matching includes the port (#10568)
gr8man Oct 12, 2026
b7e115b
fix: sort generator imports in templates with CRLF line endings (#10622)
paulbalandan Oct 13, 2026
e0e262a
refactor: remove `@see` test annotations in source (#10624)
paulbalandan Oct 13, 2026
8e2db88
chore: Bump StructArmed version to ^0.19 (#10630)
samsonasik Oct 13, 2026
df73374
chore: clarify the compatibility and static-analysis rules for agent …
paulbalandan Oct 14, 2026
899c52c
chore(deps): bump NexusPHP/carson in / (#10639)
dependabot[bot] Oct 16, 2026
afe293c
chore(deps): bump shivammathur/setup-php in / (#10631)
dependabot[bot] Oct 18, 2026
38c73d2
chore(deps): bump actions/upload-artifact in / (#10632)
dependabot[bot] Oct 18, 2026
9bd153c
chore(deps): bump actions/download-artifact in / (#10633)
dependabot[bot] Oct 18, 2026
a245d00
chore(deps): bump actions/setup-node in / (#10634)
dependabot[bot] Oct 18, 2026
1c0920d
fix: handle invalid values and empty tag names in `XMLFormatter` (#10…
gr8man Oct 18, 2026
da4e508
fix: detect `X-Forwarded-Proto` case-insensitively in `isSecure()` (#…
gr8man Oct 18, 2026
b74fff9
chore: fix the composer normalize check and remove PhpMetrics (#10640)
paulbalandan Oct 19, 2026
df8b96b
test: accept MariaDB version strings in `GetVersionTest` (#10642)
paulbalandan Oct 21, 2026
5b08e88
fix: refresh `$_REQUEST` after URI GET normalization (#10606)
rahul05ranjan Oct 23, 2026
6ddf104
fix: widen accepted values in `set_value()`'s `$default` (#10641)
paulbalandan Oct 23, 2026
85e6e80
fix: fix array handling in `ContentSecurityPolicy::setDefaultSrc()` a…
gr8man Oct 25, 2026
62f5420
fix: reject missing keys in `CLI::promptByMultipleKeys()` (#10654)
paulbalandan Oct 25, 2026
7e9295e
fix: normalize string values and keys in `ContentSecurityPolicy::addO…
gr8man Oct 26, 2026
345262a
fix(HTTP): read request body when post_max_size is unlimited (#10646)
gr8man Oct 26, 2026
699fc2f
docs: convert the remaining user guide tables to pipe-table-friendly …
paulbalandan Oct 26, 2026
45454ff
chore: Bump Rector to 2.8.1 and clean up deprecated rules registratio…
samsonasik Oct 26, 2026
823b1c0
chore(deps): bump actions/setup-python in / (#10667)
dependabot[bot] Oct 26, 2026
7913c65
docs: point the version switcher's in-progress option at the develop …
paulbalandan Oct 27, 2026
1e3f74d
fix: apply `ContentSecurityPolicy::reportOnly()` to config sources af…
paulbalandan Oct 27, 2026
9031536
fix: stop prompts from asking forever when the input ends (#10658)
paulbalandan Oct 27, 2026
71519bf
fix: ignore media ranges without a subtype in `Negotiate::media()` (#…
wleeaf Oct 27, 2026
e3806de
refactor: fix `null` checks that are always `false` (#10670)
paulbalandan Oct 27, 2026
f992c27
docs: fix RST markup errors in the user guide (#10668)
paulbalandan Oct 28, 2026
8ab9933
fix: clear transaction state when `reconnect()` replaces the socket (…
KevinBlakeLopez Oct 28, 2026
50fd750
fix: do not let wildcards select values excluded with q=0 in `Negotia…
wleeaf Oct 28, 2026
ef9f864
chore: automate the GitHub release notes and credit all contributors …
paulbalandan Oct 28, 2026
688bdb3
fix: keep writes transactional after MySQL deadlock 1213 (#10651)
KevinBlakeLopez Oct 28, 2026
1eed7d9
chore: Bump PHPStan to ^2.3.4 and Rector to 2.8.3 (#10672)
samsonasik Oct 29, 2026
9361461
fix(Cache): isolate the factories cache files used by the tests (#10647)
gr8man Oct 29, 2026
bf13e17
chore: Bump StructArmed to ^0.20 (#10686)
samsonasik Oct 29, 2026
4791433
fix: restore the timezone, locale and string format when unserializin…
paulbalandan Oct 30, 2026
3de11a0
fix: preserve subclass types in route group callbacks (#10644)
maniaba Oct 30, 2026
609d458
test: keep `FileHandlerTest::testSaveMode` inside its own cache direc…
paulbalandan Oct 30, 2026
8aa8ea0
Merge commit from fork
michalsn Nov 1, 2026
05c3daa
Merge commit from fork
michalsn Nov 1, 2026
6942f3a
test: skip the `ReplaceModelTest` cases that SQLSRV's `replace()` can…
paulbalandan Nov 1, 2026
8cf6fad
Merge commit from fork
michalsn Nov 1, 2026
da1a0c7
Merge commit from fork
michalsn Nov 1, 2026
2ce90cf
fix(HTTP): remove invalid `CURLOPT_HTTPHEADER` string assignment in `…
gr8man Nov 1, 2026
1cd7a4e
test: allow deletion of the SQLite3 database (#10696)
neznaika0 Nov 1, 2026
e1e17f2
Prep for 4.7.6 release (#10698)
paulbalandan Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ utils/ export-ignore
.php-cs-fixer.user-guide.php export-ignore
structarmed-baseline.php export-ignore
structarmed.php export-ignore
phpmetrics.json export-ignore
phpstan-baseline.php export-ignore
phpstan-bootstrap.php export-ignore
phpstan.dist.neon export-ignore
Expand Down
11 changes: 9 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ Prioritize actionable findings involving:
## Review behavior

- Determine the PR base branch and apply the compatibility policy from
`AGENTS.md`. If the base branch cannot be determined, assume `develop`
and state that assumption.
`AGENTS.md`. When it is not visible, read it from the title prefix and
the labels as `AGENTS.md` describes, and otherwise assume `develop` and
state that assumption.
- Before reporting a compatibility break, confirm the symbol exists in the
latest tagged release. A symbol introduced on the base branch since that
release is unreleased and may change freely, as `AGENTS.md` describes.
- Do not report a PHPStan suppression or baseline entry covered by the
exceptions in `AGENTS.md`, or a missing reset of state that
`CIUnitTestCase::tearDown()` already restores.
- Do not report formatting-only issues already enforced by PHP-CS-Fixer.
- Every finding should identify a concrete failure scenario and the
affected code.
2 changes: 2 additions & 0 deletions .github/instructions/tests.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ applyTo: "tests/**/*.php"
Avoid testing private implementation details.
- Restore services, factories, environment variables, superglobals, handlers,
locale, time-related state, and other global state modified by a test.
Check `CIUnitTestCase::tearDown()` first: a test need not repeat the
resets it already performs.
- Tests must not depend on execution order or state left by another test.
- Do not replace a meaningful assertion with a weaker assertion to make a test
pass.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-apidocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
persist-credentials: false

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: '8.2'
tools: phive
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-distributables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ jobs:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: '3.12'

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy-userguide-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ jobs:
persist-credentials: false

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: '8.2'
coverage: none

- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: '3.12'

Expand All @@ -59,7 +59,7 @@ jobs:

# Create an artifact of the html output
- name: Upload artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: HTML Documentation
path: user_guide_src/build/html/
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/reusable-coveralls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
persist-credentials: false

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: ${{ inputs.php-version }}
tools: composer
coverage: xdebug

- name: Download coverage files
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
path: build/cov

Expand All @@ -46,10 +46,10 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.composer-cache.outputs.COMPOSER_CACHE_FILES_DIR }}
key: ${{ github.job }}-php-${{ inputs.php-version }}-${{ hashFiles('**/composer.*') }}
key: composer-php-${{ inputs.php-version }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ github.job }}-php-${{ inputs.php-version }}-
${{ github.job }}-
composer-php-${{ inputs.php-version }}-
composer-
- name: Cache PHPUnit's static analysis cache
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/reusable-phpunit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ jobs:
persist-credentials: false

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: ${{ inputs.php-version }}
tools: composer
Expand All @@ -195,11 +195,10 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.setup-env.outputs.COMPOSER_CACHE_FILES_DIR }}
key: ${{ inputs.job-id || github.job }}-php-${{ inputs.php-version }}-db-${{ inputs.db-platform || 'none' }}-${{ hashFiles('**/composer.*') }}
key: composer-php-${{ inputs.php-version }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ inputs.job-id || github.job }}-php-${{ inputs.php-version }}-db-${{ inputs.db-platform || 'none' }}-
${{ inputs.job-id || github.job }}-php-${{ inputs.php-version }}-
${{ inputs.job-id || github.job }}-
composer-php-${{ inputs.php-version }}-
composer-
- name: Cache PHPUnit's static analysis cache
if: ${{ inputs.enable-artifact-upload }}
Expand Down Expand Up @@ -233,7 +232,7 @@ jobs:

- name: Upload coverage results as artifact
if: ${{ inputs.enable-artifact-upload }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: ${{ steps.setup-env.outputs.ARTIFACT_NAME }}
path: build/cov/coverage-${{ steps.setup-env.outputs.ARTIFACT_NAME }}.cov
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/reusable-serviceless-phpunit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
fetch-depth: 0

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: ${{ inputs.php-version }}
tools: composer
Expand All @@ -92,10 +92,10 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.setup-env.outputs.COMPOSER_CACHE_FILES_DIR }}
key: ${{ inputs.job-id || github.job }}-php-${{ inputs.php-version }}-${{ hashFiles('**/composer.*') }}
key: composer-php-${{ inputs.php-version }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ inputs.job-id || github.job }}-php-${{ inputs.php-version }}-
${{ inputs.job-id || github.job }}-
composer-php-${{ inputs.php-version }}-
composer-
- name: Cache PHPUnit's static analysis cache
if: ${{ inputs.enable-artifact-upload }}
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:

- name: Upload coverage results as artifact
if: ${{ inputs.enable-artifact-upload }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: ${{ steps.setup-env.outputs.ARTIFACT_NAME }}
path: build/cov/coverage-${{ steps.setup-env.outputs.ARTIFACT_NAME }}.cov
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-carson.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Run Carson
uses: NexusPHP/carson@cb35604ab330c2e44dba673fcef712c78e75f858 # v1.7.0
uses: NexusPHP/carson@53c45cf25e2303bc503209f8b5dd9107f27b2e8f # v1.8.0
with:
app_id: ${{ secrets.CARSON_APP_ID }}
private_key: ${{ secrets.CARSON_PRIVATE_KEY }}
Expand Down
76 changes: 0 additions & 76 deletions .github/workflows/test-autoreview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,79 +30,3 @@ jobs:
php-version: '8.2'
job-id: auto-review-tests
group-name: AutoReview

composer-normalize-tests:
name: Check normalized composer.json
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
with:
php-version: '8.2'

- name: Install dependencies
run: composer update

- name: Run on root composer.json
id: normalize-root-composer
if: ${{ always() }}
run: |
echo "ROOT_COMPOSER_RESULT<<RCR" >> $GITHUB_OUTPUT
echo "$(composer normalize)" >> $GITHUB_OUTPUT
echo "RCR" >> $GITHUB_OUTPUT
- name: Run on framework composer.json
id: normalize-framework-composer
if: ${{ always() }}
working-directory: admin/framework
run: |
echo "FRAMEWORK_COMPOSER_RESULT<<FCR" >> $GITHUB_OUTPUT
echo "$(composer normalize)" >> $GITHUB_OUTPUT
echo "FCR" >> $GITHUB_OUTPUT
- name: Run on starter composer.json
id: normalize-starter-composer
if: ${{ always() }}
working-directory: admin/starter
run: |
echo "STARTER_COMPOSER_RESULT<<SCR" >> $GITHUB_OUTPUT
echo "$(composer normalize)" >> $GITHUB_OUTPUT
echo "SCR" >> $GITHUB_OUTPUT
- name: Analyse normalization results
run: |
if [[ '${{ steps.normalize-root-composer.conclusion }}' == 'failure' ]]; then
echo 'Normalization of root composer.json encountered a problem.';
echo 'Please run it locally: `composer normalize`';
exit 1;
fi
if [[ ${{ contains(steps.normalize-root-composer.outputs.ROOT_COMPOSER_RESULT, 'Successfully normalized') }} == true ]]; then
echo 'Root composer.json is not yet normalized.';
exit 1;
fi
if [[ '${{ steps.normalize-framework-composer.conclusion }}' == 'failure' ]]; then
echo 'Normalization of framework composer.json encountered a problem.';
echo 'Please run it locally: `composer normalize -d admin/framework`';
exit 1;
fi
if [[ ${{ contains(steps.normalize-framework-composer.outputs.FRAMEWORK_COMPOSER_RESULT, 'Successfully normalized') }} == true ]]; then
echo 'Framework composer.json is not yet normalized.';
exit 1;
fi
if [[ '${{ steps.normalize-starter-composer.conclusion }}' == 'failure' ]]; then
echo 'Normalization of starter composer.json encountered a problem.';
echo 'Please run it locally: `composer normalize -d admin/starter`';
exit 1;
fi
if [[ ${{ contains(steps.normalize-starter-composer.outputs.STARTER_COMPOSER_RESULT, 'Successfully normalized') }} == true ]]; then
echo 'Starter composer.json is not yet normalized.';
exit 1;
fi
8 changes: 4 additions & 4 deletions .github/workflows/test-coding-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: ${{ matrix.php-version }}
extensions: tokenizer
Expand All @@ -52,10 +52,10 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.composer-cache.outputs.COMPOSER_CACHE_FILES_DIR }}
key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
key: composer-php-${{ matrix.php-version }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ runner.os }}-${{ matrix.php-version }}-
${{ runner.os }}-
composer-php-${{ matrix.php-version }}-
composer-
- name: Install dependencies
run: composer update --ansi --no-interaction ${{ matrix.composer-option }}
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/test-composer-normalize.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Composer Normalize

on:
pull_request:
paths:
- '**/composer.json'
- '.github/workflows/test-composer-normalize.yml'
push:
paths:
- '**/composer.json'
- '.github/workflows/test-composer-normalize.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

permissions:
contents: read

jobs:
composer-normalize:
name: Check normalized composer.json
runs-on: ubuntu-24.04

steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup PHP
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: '8.2'
coverage: none

- name: Install dependencies
run: composer update --ansi --no-interaction --working-dir=utils

- name: Run on root composer.json
if: ${{ !cancelled() }}
run: composer normalize --ansi --dry-run --working-dir=utils "$GITHUB_WORKSPACE/composer.json"

- name: Run on framework composer.json
if: ${{ !cancelled() }}
run: composer normalize --ansi --dry-run --working-dir=utils "$GITHUB_WORKSPACE/admin/framework/composer.json"

- name: Run on starter composer.json
if: ${{ !cancelled() }}
run: composer normalize --ansi --dry-run --working-dir=utils "$GITHUB_WORKSPACE/admin/starter/composer.json"

- name: Run on utils composer.json
if: ${{ !cancelled() }}
run: composer normalize --ansi --dry-run --working-dir=utils
12 changes: 7 additions & 5 deletions .github/workflows/test-phpstan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0
with:
php-version: '8.2'
extensions: intl
Expand All @@ -69,8 +69,10 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.composer-cache.outputs.COMPOSER_CACHE_FILES_DIR }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
key: composer-php-8.2-${{ hashFiles('**/composer.json') }}
restore-keys: |
composer-php-8.2-
composer-
- name: Create PHPStan result cache directory
run: mkdir -p build/phpstan
Expand All @@ -79,8 +81,8 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: build/phpstan
key: ${{ runner.os }}-phpstan-${{ github.sha }}
restore-keys: ${{ runner.os }}-phpstan-
key: phpstan-${{ hashFiles('**/*.php', '**/*.neon', 'composer.json') }}
restore-keys: phpstan-

- name: Install dependencies
run: composer update --ansi --no-interaction
Expand Down
Loading
Loading