felipebool/crook

Crook 是一个简化 Git 钩子处理的简单工具

0.0.12 2018-02-14 18:41 UTC

This package is auto-updated.

Last update: 2024-09-25 00:07:40 UTC


README

Build Status Maintainability Codacy Badge Codacy Badge

Crook

首先,Crook 是一个正在开发中的项目。

如果你不熟悉 Git 钩子,你可能需要先阅读 Git 钩子文档

Crook 是定义和管理 Git 钩子的最简单方式。它的目标是允许在触发 Git 钩子动作时运行 composer.json 中的脚本。

用法

这个项目的目标是尽可能简单,因此,你不需要编写任何 PHP 代码,你只需要从 Packagist 安装任何包,然后使它们在特定的 Git 钩子中运行。具体过程将在以下章节中解释。

安装

只需运行

$ composer require felipebool/crook --dev

初始化 Crook

$ vendor/bin/crook init 将在项目的根目录中创建 crook.json 配置文件和 theHook。

添加新钩子

$ vendor/bin/crook add hook-name action-name 将在 .git/hooks/hook-name 到 theHook 之间创建符号链接,启用该钩子。

移除钩子

$ vendor/bin/crook remove hook-name 将移除 .git/hooks/hook-name 的符号链接,禁用该钩子。

将动作添加到 composer.json

当你使用 add 添加新动作时,你需要在 composer.json 中添加在触发该动作时预期运行的代码。为此,你必须在 scripts 部分创建一个新条目,并定义在那里必须运行的代码。

Crook 配置文件

Crook 使用类似于 composer 的 JSON 配置文件,它称为 crook.json。配置基本上是通过将 Git 钩子名称作为键,将 composer.json 中的相应脚本条目作为值来实现的。请参见以下示例

{
  "pre-commit": "code-check",
  "composer": "/home/felipe/bin/composer"
}

尽管你可以自己编辑 crook.json,但你应该使用 $ vendor/bin/crook 来创建符号链接。只有 composer 路径 必须 手动设置。机制将在下一节中解释。

机制

每次你运行 vendor/bin/crook add hook-name action-name 时,Crook 都会从 .git/hooks/hook-name 创建到 /your/project/hook/theHook 的符号链接,就这么简单。

现在,当 Git 触发动作 hook-name 时,它将跟随链接到 /your/project/hook/theHook,然后 Crook 将在项目的 composer.json 中查找名为 action-name 的脚本,并执行那里定义的命令。

在提交前使用 phpcs 添加代码验证

为了检查代码是否符合 PSR2,你必须这样做

在 composer.json 中添加脚本动作

"scripts": {
  "code-check": "phpcs --standard=PSR2 src/",
}

初始化 crook

$ vendor/bin/crook init

将代码检查绑定到 pre-commit 钩子

$ vendor/bin/crook add pre-commit code-check

下次你运行 $ git commit -m 'some message' 时,Crook 将运行 code-check 内部的代码,如果检查失败,将阻止代码提交。