redcode/pre-commit

增加通过git pre-commit钩子操作的能力

dev-master 2015-09-06 10:58 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:36:55 UTC


README

这是一个控制台应用程序,它添加git pre-commit钩子,并允许你在git事件上运行自定义程序。

安装

安装此库最简单的方法是使用以下命令通过Composer

$ composer require --dev redcode/precommit

配置

在你的项目根目录中,你需要添加一个包含自定义程序配置的 .pre-commit.yml 文件。

active:
  - php-code-style # name of active custom program
hooks:
  php-code-style: # key(name) of active custom program
    description: "PHP Code Style" # description, which will be shown on process run
    class: RedCode\GitHook\Process\PhpCsProcess # custom class which extends AbstractGitHookProcess
    script: "bin/php-cs-fixer fix --diff --dry-run %relativeFile%" # custom script to execute
    file_types: "php,phtml" # files types which will be checked by pre commit hook // if empty - all files
    paths: # prjecect paths which will be checked by pre commit hook // if empty - all root directory
        - src/My/Custom/Code
        - src/My/Custom/Lib

你可以添加尽可能多的自定义程序。

Pre-commit已经内置了Php-Cs-Fixer。因此,你可以使用以下行来激活它:

active:
  - php-code-style

如果你需要通过一些选项扩展自定义程序,你可以在配置文件中轻松完成。

active:
  - php-code-style
hooks:
  php-code-style:
    paths:
        - src/My/Custom/Code
        - src/My/Custom/Lib

请注意,descriptionclass|script 字段是必需的。配置节点 class 优先于 script,但必须指定其中一个。

它是如何工作的?

安装此程序并创建配置文件后,您需要在本地git存储库中激活它。Pre-commit钩子可以通过两种方式激活:

  • 手动:使用命令 ./bin/pre-commit install

  • Composer事件 (推荐)

    将以下部分添加到您的composer.json文件中:

    "scripts": {
        "post-update-cmd": "RedCode\\GitHook\\ComposerListener::postUpdate",
        "post-install-cmd": "RedCode\\GitHook\\ComposerListener::postInstall"
    },

    这种方法将在所有开发者在执行composer installupdate命令后添加pre-commit钩子。

接下来是什么?

只需尝试提交一些内容,如果你的自定义脚本说文件不好,你将看到输出,提交过程将被暂停。