ec-europa/oe-code-review

此包已被废弃,不再维护。作者建议使用openeuropa/code-review包。

OpenEuropa代码审查组件。


README

Build Status Packagist

通过GrumPHP在每个提交中自动检查约定

安装

通过Composer安装代码审查组件

composer require --dev openeuropa/code-review

在项目根目录创建以下grumphp.yml.dist

imports:
  - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml }

对于Drupal项目,应导入drupal-conventions.yml

使用Docker Compose

或者,您可以使用提供的配置使用DockerDocker Compose构建开发环境。

Docker提供了必要的服务,例如Web服务器和数据库服务器,以使站点运行,而不管您的本地主机配置如何。

要求

配置

默认情况下,Docker Compose读取两个文件,一个docker-compose.yml和一个可选的docker-compose.override.yml文件。按照惯例,docker-compose.yml包含您的基配置,并且默认提供。重写文件,如其名称所示,可以包含现有服务的配置重写或全新的服务。如果服务在两个文件中都有定义,Docker Compose将合并配置。

有关Docker Compose扩展机制的更多信息,请参阅官方Docker Compose文档

使用方法

要开始,运行

docker-compose up

建议不要将docker-compose守护进程化,这样您可以在完成工作后快速关闭它(CTRL+C)。但是,如果您想守护进程化它,您必须添加标志-d

docker-compose up -d

然后

docker-compose exec web composer install

运行测试

要运行grumphp检查

docker-compose exec web ./vendor/bin/grumphp run

要运行phpunit测试

docker-compose exec web ./vendor/bin/phpunit

逐步调试

要从命令行启用逐步调试,将任何值传递给容器的XDEBUG_SESSION环境变量

docker-compose exec -e XDEBUG_SESSION=1 web <your command>

请注意,从XDebug 3开始,如果设置了变量但您的客户端没有监听调试连接,控制台将输出连接错误消息。此错误消息将导致PHPUnit测试出现假阴性。

要从浏览器中启动逐步调试,请使用浏览器扩展或书签工具设置正确的cookie,例如在https://www.jetbrains.com/phpstorm/marklets/生成的那些。

自定义

此组件提供了一系列预定义的约定,所有项目都必须遵循。默认约定的列表可以在CONVENTIONS.md中找到。

由于GrumPHP使用Symfony依赖注入组件,您可以在项目的grumphp.yml.dist文件中重写特定参数,如下所示

imports:
  - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml }

parameters:
  tasks.git_commit_message.matchers: ['/^JIRA-\d+: [A-Z].+\./']

以下任务参数列表可以在每个项目的基础上进行重写

  • tasks.phpcs.standard
  • tasks.phpcs.ignore_patterns
  • tasks.phpcs.triggered_by
  • tasks.phpcs.whitelist_patterns
  • tasks.phpcs.warning_severity
  • tasks.phpmd.exclude
  • tasks.phpmd.ruleset
  • tasks.phpmd.triggered_by
  • tasks.git_commit_message.matchers

更多关于如何导入和覆盖配置文件的信息,请访问此处

还可以通过加载额外的任务扩展,并在以下参数下添加任务来扩展要运行的任务列表,如下所示

imports:
  - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml }

parameters:
  extra_tasks:
    phpparser: ~
  extensions:
    - OpenEuropa\CodeReview\ExtraTasksExtension

GrumPHP 已经提供了一系列开箱即用的任务,您可以在GrumPHP 任务页面中找到完整的列表。

您还可以在GrumPHP 扩展页面中了解如何创建自己的任务。

使用方法

GrumPHP 任务将在每次提交时运行,如果您想在未执行提交的情况下运行它们,请使用以下命令

./vendor/bin/grumphp run

如果您想模拟创建新提交时将运行的任务

./vendor/bin/grumphp git:pre-commit

有关更多信息,请参阅GrumPHP 文档

变更日志

变更日志是通过使用本地 Docker 安装生成的,该安装安装了 muccg/docker-github-changelog-generator

它读取所需的存储库的 Github API,并将 CHANGELOG.md 写入存储库的根目录。

先决条件

  • 本地 Docker 机器正在运行。
  • 应生成并导出(或写入 ~/.gitconfig)Github 访问令牌,格式为 CHANGELOG_GITHUB_TOKEN=<YOUR TOKEN HERE>

在标记新版本之前,请导出以下内容

export CHANGELOG_GITHUB_TOKEN=<YOUR TOKEN HERE>
export CHANGELOG_FUTURE_RELEASE=0.1.0

然后可以通过运行以下命令生成变更日志

composer run-script changelog

故障排除

GrumPHP 在新提交上未触发

从 Git 2.9+(2016 年 6 月)开始,您有一个新的选项用于集中化钩子:core.hooksPath。如果 GrumPHP 在新提交上未触发,请通过运行以下命令检查全局选项 core.hooksPath

git config --global --list

要取消该选项,请运行

git config --global --unset core.hooksPath 

在 Mac 上生成变更日志

  • 使用 Docker 应用可以获得最佳结果
  • 本地存储库文件夹应在 Docker -> Preferences -> File sharing 下共享,以启用将文件写入本地。