Thanks for considering a contribution to Guard Agent PHP, part of the Guard ecosystem (this repo follows the conventions of the Python baseline: guard-core and fastapi-guard).
Requirements:
- PHP ^8.2 (the library supports 8.2, 8.3, and 8.4)
- Composer 2
- Docker (Redis runs as a CI service locally too, via
docker run -p 6379:6379 redis:7-alpine; hosts without a PHP toolchain run everything through thephp:8.3-cliandcomposer:2images, see the Makefile)
composer install
composer test # the repo's test suite (bin/test_*.php)
composer lint # syntax sweep over src/ and bin/Run before pushing (CI enforces the same checks):
composer lint(php -l sweep over src and bin)- the test suite (
composer test, Redis needed for the guard suites) composer audit(dependency vulnerability check, also on the weekly schedule)
- Every PR closes an open issue ("Delivers issue: #N") or carries the
no-issuelabel (chores and dependency bumps). - Keep the CI green; one clean push per PR is preferred.
- Commit messages: lowercase, imperative, conventional style (
fix(scope): ...,feat(scope): ...,ci(scope): ...). No attribution trailers.
Never open public issues for security vulnerabilities. Follow SECURITY.md and report via GitHub security advisories.
Open a GitHub Discussion in this repository or ask in the Guard Discord (#help).