shyim / danger-php
Port of danger to PHP
Installs: 14 064
Dependents: 0
Suggesters: 0
Security: 0
Stars: 79
Watchers: 5
Forks: 7
Open Issues: 1
Type:project
Requires
- php: ^8.2
- ext-ctype: *
- ext-intl: *
- ext-mbstring: *
- knplabs/github-api: ^3.14
- m4tthumphrey/php-gitlab-api: ^11.14
- nyholm/psr7: ^1.8
- symfony/config: ^7.1
- symfony/console: ^7.1
- symfony/dependency-injection: ^7.1
- symfony/filesystem: ^7.1
- symfony/finder: ^7.1
- symfony/http-client: ^7.1
- symfony/process: ^7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
- infection/infection: ^0.29.6
- phpstan/extension-installer: ^1.4.1
- phpstan/phpstan: ^1.11.9
- phpstan/phpstan-deprecation-rules: ^1.2.0
- phpstan/phpstan-phpunit: ^1.4.0
- phpstan/phpstan-strict-rules: ^1.6.0
- phpunit/phpunit: ^11.3
README
Danger runs during your CI process, and gives teams the chance to automate common code review chores. This project ports Danger to PHP.
Currently only GitHub and Gitlab are supported as Platform
Badges
Installation
Composer
Install danger-php using Composer
composer global require shyim/danger-php
Phar Archive
Every release has a phar archive attached
Docker
Use the prebuilt Docker image
Documentation
Disallow multiple commits with same message
<?php declare(strict_types=1); use Danger\Config; use Danger\Rule\DisallowRepeatedCommits; return (new Config()) ->useRule(new DisallowRepeatedCommits) // Disallows multiple commits with the same message ;
Only allow one commit in Pull Request
<?php declare(strict_types=1); use Danger\Config; use Danger\Rule\MaxCommit; return (new Config()) ->useRule(new MaxCommit(1)) ;
Check for modification on CHANGELOG.md
<?php declare(strict_types=1); use Danger\Config; use Danger\Context; return (new Config()) ->useRule(function (Context $context): void { if (!$context->platform->pullRequest->getFiles()->has('CHANGELOG.md')) { $context->failure('Please edit also the CHANGELOG.md'); } }) ;
Check for Assignee in PR
<?php declare(strict_types=1); use Danger\Config; use Danger\Context; return (new Config()) ->useRule(function (Context $context): void { if (count($context->platform->pullRequest->assignees) === 0) { $context->warning('This PR currently doesn\'t have an assignee'); } }) ;