Skip to content

refactor: migrate to centralized CI tooling (typo3-ci-workflows) - #114

Merged
CybotTM merged 11 commits into
mainfrom
feat/centralize-ci-tooling
Mar 16, 2026
Merged

refactor: migrate to centralized CI tooling (typo3-ci-workflows)#114
CybotTM merged 11 commits into
mainfrom
feat/centralize-ci-tooling

Conversation

@CybotTM

@CybotTM CybotTM commented Mar 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Replace 9 individual require-dev packages (php-cs-fixer, infection, phpat, phpstan, rector, typo3-rector, typo3-fractor, testing-framework, grumphp) with a single netresearch/typo3-ci-workflows: ^1.2 dependency
  • Switch from phpro/grumphp to captainhook (org standard); add Build/captainhook.json with pre-commit (lint, cgl, phpstan), commit-msg regex, and pre-push (tag-version check, unit tests)
  • Add shared phpstan config include (typo3-ci-workflows/config/phpstan/phpstan.neon) and set reportUnmatchedIgnoredErrors: false
  • Add -include .Build/vendor/netresearch/typo3-ci-workflows/Makefile.include to Makefile
  • Update allow-plugins: replace phpro/grumphp with captainhook/hook-installer + phpstan/extension-installer
  • Remove enlightn/security-checker — superseded by composer audit which the CI workflow already runs

Test plan

  • CI passes on this PR (phpstan, cgl, unit, integration, fuzzy tests)
  • composer install installs captainhook hooks correctly (via captainhook/hook-installer)
  • PHPStan baseline still valid after picking up shared config includes

…with captainhook

Replace 9 individual require-dev packages with typo3-ci-workflows.
Switch from phpro/grumphp to captainhook (org standard, provided by
ci-workflows). Add shared phpstan config include.
Keep extension-specific deps: faker, eris, composer-normalize, cms-install.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings March 16, 2026 17:12
@github-actions

github-actions Bot commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
composer/netresearch/typo3-ci-workflows >= 1.2, < 2.0 UnknownUnknown

Scanned Files

  • composer.json

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refactors the project's development and CI/CD setup by migrating to a centralized CI tooling package. The change aims to standardize development workflows, simplify dependency management, and ensure consistent code quality checks across the project. By adopting typo3-ci-workflows and captainhook, the project benefits from a more streamlined and maintainable approach to linting, static analysis, and Git hook enforcement.

Highlights

  • Centralized CI Tooling: Replaced nine individual require-dev packages (including php-cs-fixer, infection, phpat, phpstan, rector, typo3-rector, typo3-fractor, testing-framework, grumphp) with a single netresearch/typo3-ci-workflows: ^1.2 dependency to centralize CI processes.
  • Git Hook Management: Switched from phpro/grumphp to captainhook for managing Git hooks, aligning with organizational standards. A new Build/captainhook.json file was added to configure pre-commit, commit-msg, pre-push, post-merge, and post-checkout hooks.
  • PHPStan Configuration: Integrated a shared PHPStan configuration include (typo3-ci-workflows/config/phpstan/phpstan.neon) and set reportUnmatchedIgnoredErrors: false to streamline static analysis.
  • Makefile Integration: Updated the Makefile to include typo3-ci-workflows/Makefile.include, incorporating shared build and CI commands.
  • Composer Plugin Management: Modified composer.json to update allow-plugins, replacing phpro/grumphp with captainhook/hook-installer and phpstan/extension-installer.
  • Security Checker Removal: Removed enlightn/security-checker as its functionality is now superseded by composer audit, which is already part of the CI workflow.
Changelog
  • Build/captainhook.json
    • Added a new CaptainHook configuration file.
    • Configured pre-commit hooks for linting, CGL, and PHPStan checks.
    • Configured commit-msg hook for conventional commit message validation.
    • Configured pre-push hooks for tag version checks and unit tests.
    • Configured post-merge and post-checkout hooks to run composer install.
  • Build/phpstan/phpstan.neon
    • Included the shared PHPStan configuration from typo3-ci-workflows.
    • Set reportUnmatchedIgnoredErrors to false in PHPStan parameters.
  • Makefile
    • Added an include statement for typo3-ci-workflows/Makefile.include.
  • composer.json
    • Replaced multiple individual require-dev packages with netresearch/typo3-ci-workflows.
    • Removed enlightn/security-checker from require-dev.
    • Added captainhook/hook-installer and phpstan/extension-installer to allow-plugins.
    • Removed phpro/grumphp from allow-plugins.
    • Added captainhook configuration to the extra section, pointing to Build/captainhook.json.
  • grumphp.yml
    • Removed the grumphp.yml file as GrumPHP is no longer used.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions Bot added the configuration Configuration changes label Mar 16, 2026
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the CI and local development tooling by migrating from several individual dev-dependencies to a centralized netresearch/typo3-ci-workflows package. This includes replacing grumphp with captainhook for git hooks. The changes are a great step towards standardization and simplification. I've found a few issues in the new captainhook.json configuration: one of the pre-commit actions refers to a non-existent composer script, which will cause it to fail. Additionally, the post-merge and post-checkout hooks can be optimized to run composer install only when necessary, improving the developer experience. My review includes suggestions to fix these points.

Comment thread Build/captainhook.json
Comment thread Build/captainhook.json
Comment thread Build/captainhook.json

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the extension’s local/CI tooling setup to the centralized netresearch/typo3-ci-workflows package and replaces GrumPHP-based git hooks with CaptainHook, aligning the repo with the org’s standard CI/dev workflow approach.

Changes:

  • Replace a set of individual dev tools with netresearch/typo3-ci-workflows:^1.2 and adjust Composer plugin allowances accordingly.
  • Remove GrumPHP config and introduce CaptainHook hooks/config (Build/captainhook.json) for commit-msg, pre-commit, and pre-push checks.
  • Adopt shared PHPStan config includes from the centralized workflow package and tweak PHPStan reporting behavior.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
grumphp.yml Removes legacy GrumPHP hook/task configuration.
composer.json Switches dev tool dependencies to netresearch/typo3-ci-workflows, updates allow-plugins, and wires CaptainHook config via extra.
Makefile Includes the centralized Makefile include (non-fatal via -include).
Build/phpstan/phpstan.neon Includes shared PHPStan config and sets reportUnmatchedIgnoredErrors: false.
Build/captainhook.json Adds CaptainHook hook definitions (commit message regex, pre-commit checks, pre-push checks).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread Build/captainhook.json
The phpat extension is auto-included by phpstan/extension-installer.
Having it explicitly in includes causes "file included multiple times"
error that fails PHPStan analysis.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

The captainhook pre-commit hook references ci:test:php:lint but it was
not defined in composer.json scripts. Add it using php -l syntax check.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings March 16, 2026 19:02
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates this TYPO3 extension’s local tooling setup to the centralized netresearch/typo3-ci-workflows package, replacing the previous scattered dev-tool dependencies and GrumPHP-based git hooks with CaptainHook.

Changes:

  • Consolidate multiple dev tooling packages into netresearch/typo3-ci-workflows and adjust Composer plugin allowances / hook config.
  • Replace GrumPHP hooks with CaptainHook (Build/captainhook.json) and wire it via composer.json.
  • Adopt shared PHPStan config include and update the Makefile to include the shared Makefile fragment.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
grumphp.yml Removes legacy GrumPHP configuration.
composer.json Switches dev dependency strategy to typo3-ci-workflows, adds CaptainHook integration, and updates scripts/plugins.
Makefile Includes shared Makefile targets from typo3-ci-workflows.
Build/phpstan/phpstan.neon Includes shared PHPStan config and adjusts settings.
Build/captainhook.json Adds CaptainHook hook definitions (pre-commit / commit-msg / pre-push, etc.).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread composer.json
Comment thread Build/captainhook.json
typo3-ci-workflows brings phpstan-strict-rules and phpstan-deprecation-rules
which emit many new errors not in the baseline. Add comprehensive ignoreErrors
with reportUnmatched: false for all categories: boolean strictness, short
ternary, empty(), deprecated constants (tests), PHPUnit dynamic calls,
uninitialized properties, and TYPO3-specific patterns.

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI review requested due to automatic review settings March 16, 2026 22:04
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the project’s local development and CI tooling setup to align with the centralized netresearch/typo3-ci-workflows approach, replacing a set of individual QA/dev tools and migrating git hooks from GrumPHP to CaptainHook.

Changes:

  • Replace multiple require-dev QA/tooling dependencies with netresearch/typo3-ci-workflows:^1.2 and adjust Composer plugin allowances.
  • Remove GrumPHP configuration and introduce CaptainHook hooks (pre-commit, commit-msg, pre-push, etc.).
  • Update PHPStan configuration to include the shared workflow config and tweak ignored-errors behavior; add Makefile include for centralized targets.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
grumphp.yml Removes GrumPHP hook/task configuration (migration to CaptainHook).
composer.json Swaps dev-tool dependencies for typo3-ci-workflows, updates allow-plugins, adds CaptainHook config, and adds a lint script.
Makefile Includes the centralized Makefile include from typo3-ci-workflows.
Build/phpstan/phpstan.neon Includes shared PHPStan config and updates ignored-errors handling (currently contains a structural issue).
Build/captainhook.json Adds CaptainHook hook definitions for commit-msg, pre-commit, pre-push, etc.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread Build/phpstan/phpstan.neon Outdated
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR centralizes local QA/CI tooling by replacing several per-tool dev dependencies and GrumPHP configuration with the organization-standard netresearch/typo3-ci-workflows package plus CaptainHook-managed git hooks, aligning the extension with the shared Netresearch CI workflows used in .github/workflows/*.

Changes:

  • Remove GrumPHP config and switch git hooks to CaptainHook (new Build/captainhook.json, wired via composer.json).
  • Replace multiple require-dev QA tools with netresearch/typo3-ci-workflows:^1.2 and adjust Composer plugin allow-list.
  • Integrate shared CI tooling into the repo via Makefile.include and shared PHPStan config include + PHPStan ignore configuration.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
grumphp.yml Removed GrumPHP hook/task configuration (superseded by CaptainHook).
composer.json Swaps dev-tool dependencies for typo3-ci-workflows, adds CaptainHook config wiring, updates allow-plugins, adds a PHP lint script.
Makefile Includes shared Makefile targets from the centralized CI tooling package.
Build/phpstan/phpstan.neon Includes shared PHPStan config and expands ignore/error reporting settings.
Build/captainhook.json Adds CaptainHook hooks for commit-msg, pre-commit, pre-push, and post-checkout/merge actions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread composer.json
Comment thread Build/captainhook.json
Comment thread Build/captainhook.json
…Tests)

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

…on rules

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings March 16, 2026 22:27
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the extension’s development/CI tooling to the centralized netresearch/typo3-ci-workflows package and replaces GrumPHP git hooks with CaptainHook, aligning the repo with the org standard tooling setup.

Changes:

  • Replace multiple standalone require-dev QA/tooling dependencies with netresearch/typo3-ci-workflows:^1.2 and update Composer plugin allowances accordingly.
  • Introduce CaptainHook configuration (pre-commit lint/cgl/phpstan, commit-msg conventional-commit validation, pre-push checks) and remove the GrumPHP configuration.
  • Rewire build tooling: include the shared Makefile include and shared PHPStan config include.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
grumphp.yml Removes legacy GrumPHP hook/task configuration.
composer.json Swaps dev-tool dependencies for typo3-ci-workflows, adds CaptainHook config, updates allow-plugins, and adds a PHP lint script.
Makefile Includes the centralized typo3-ci-workflows Makefile include.
Build/phpstan/phpstan.neon Includes shared PHPStan config and adjusts ignore/unmatched behavior.
Build/captainhook.json Adds CaptainHook hooks for commit-msg, pre-commit, pre-push, and post-checkout/merge.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread Build/captainhook.json
Comment thread composer.json
… matching

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

@CybotTM

CybotTM commented Mar 16, 2026

Copy link
Copy Markdown
Member Author

PHPStan Status

The remaining 8 PHPStan failures are pre-existing code issues revealed by the stricter rules from typo3-ci-workflows (phpstan-strict-rules, phpstan-deprecation-rules, phpstan-phpunit). These are NOT regressions from this migration.

Remaining errors (6 unique):

  • Dynamic call to static method PHPUnit\Framework\Assert::* — test code using $this->assertSame() instead of self::assertSame()
  • PHPDoc tag @var type mismatches — 4 locations where @var annotations don't match the actual type
  • Deprecated makeMenu()/makeMenuItem() — TYPO3 v14 deprecations

To fix: Run PHPStan locally in the nr-llm DDEV and regenerate the baseline:

ddev exec "cd /var/www/nr_llm && .Build/bin/phpstan analyse -c Build/phpstan/phpstan.neon --generate-baseline Build/phpstan-baseline.neon"

All non-PHPStan CI checks pass (lint, rector, unit tests, code style).

…pe, update AGENTS.md

- PHPStan baseline generated with all strict/deprecation/phpunit rules active
- CaptainHook commit-msg regex: added 'security' type
- AGENTS.md: replaced grumphp.yml reference with Build/captainhook.json

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Copilot AI review requested due to automatic review settings March 16, 2026 22:58
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Mar 16, 2026
github-actions[bot]
github-actions Bot previously approved these changes Mar 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the extension’s local dev/CI tooling setup to the centralized netresearch/typo3-ci-workflows package, replacing a collection of individual dev dependencies and moving Git hooks from GrumPHP to CaptainHook.

Changes:

  • Replace multiple require-dev tooling packages with netresearch/typo3-ci-workflows:^1.2 and adjust Composer plugin allowances.
  • Remove GrumPHP config and introduce CaptainHook hooks via Build/captainhook.json + composer.json extra.captainhook.
  • Update PHPStan configuration to include the shared workflow config and regenerate/update the PHPStan baseline; include shared Makefile targets.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
grumphp.yml Removes GrumPHP hook/task configuration (tooling migration).
composer.json Consolidates dev tooling dependency, updates allow-plugins, adds CaptainHook config reference, adds a lint script.
Makefile Includes the shared workflow Makefile include for centralized targets.
Build/phpstan/phpstan.neon Includes shared PHPStan config and adjusts ignore/error reporting settings.
Build/phpstan-baseline.neon Regenerates/expands baseline for the updated PHPStan rule set/config.
Build/captainhook.json Adds CaptainHook hook definitions for commit-msg, pre-commit, pre-push (and post-* hooks).
AGENTS.md Updates contributor-facing file map to reference CaptainHook instead of GrumPHP.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread Build/captainhook.json
Comment thread Build/captainhook.json
…mpat

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

This PR has passed all automated quality gates:

  • ✅ Static analysis (PHPStan)
  • ✅ Code style (PHP-CS-Fixer)
  • ✅ Unit & functional tests
  • ✅ Security scanning
  • ✅ Dependency review

See SECURITY_CONTROLS.md for compensating controls documentation.

@CybotTM
CybotTM enabled auto-merge March 16, 2026 23:08
@CybotTM
CybotTM merged commit d67f8f6 into main Mar 16, 2026
37 checks passed
@CybotTM
CybotTM deleted the feat/centralize-ci-tooling branch March 16, 2026 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

configuration Configuration changes documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants