polishdeveloper / stark
版本控制存储库钩子框架
dev-master
2014-11-21 20:44 UTC
Requires
- php: >=5.3.0
- phpunit/phpunit: 4.1.0
- pimple/pimple: 2.1.1
- satooshi/php-coveralls: ~0.6@stable
- squizlabs/php_codesniffer: 1.5.5
This package is not auto-updated.
Last update: 2024-09-24 02:37:13 UTC
README
Stark是一个执行VCS钩子和在出现错误时停止操作并向用户报告的项目。Stark使用简单的XML钩子文件和可扩展的PHP任务类,使其成为易于使用且高度灵活的VCS钩子框架。
Stark的编写方式类似于Phing管理构建系统 - 一个简单的XML规则控制所有任务。此外,属性系统与Phing中使用的系统非常相似,如果您知道如何使用Phing,您就可以开始使用Stark了。
- 支持每个钩子多个动作
- 支持多个VCS系统
- 在单个可移植XML文件中定义所有内容
- 插件架构允许超简单的扩展
Stark解决了所有与创建VCS相关脚本相关的问题。通过一个干净的XML,您可以管理所有存储库中的所有钩子。通过预定义任务的大集合,您可以在几秒钟内开始检查提交的完整性。
用法
stark vcs_type action arg1, arg2, arg3, ... argN
示例XML定义
<stark> <hooks> <pre-commit> <comment minLength="10" notEmpty="true" /> <!-- comment has to be at least 10 chars long --> <comment regex="/[a-zA-Z0-9 ]+/"/> <!-- allow only comment with given regex --> <file_filter extensions="log,ini" asciiFileNames="true" noSpaces="true"/> <!-- don't allow to commit log and ini files, allow only ascii files without spaces --> <php_lint /> <!-- run php syntax check --> <php_cs standard="PSR2" /> <!-- run PHP CodesSniffer check with PSR2 standard --> </pre-commit> <post-commit> <mail to="raynor@dev" subject="Post commit" body="Valid commit by ${author}: ${message}"/> <log file="/tmp/vcs.log" message="Commit was made by ${author} on ${date} ${time}. Commit message : ${message}" /> </post-commit> </hooks> </stark>
可用任务
注释
<comment minLength="10" notEmpty="true" regex="/[a-zA-Z]+/" />
执行外部命令
<external_command command="ls -la" errorMessage="Cannot execute command" />
文件过滤器
<file_filter extensions="ini,log,tmp" regex="^\/tmp\/.*$" />
日志
<log file="/tmp/vcs.log" meesage="User ${author} made a commit on ${date} ${time}" />
邮件
<mail to="admin@dev" subject="Successful commit" body="User ${author} made a commit on ${date} ${time}" />
PHPLint
<php_lint />
PHP代码检查器
<php_cs />
RegisterRepository
<register_repository name="vcs" classname="myTaskClass" />>
为给定钩子注册新存储库。
要使用新存储库,您必须运行Stark并传递新存储库的名称
stark vcs myAction arg1, arg2, arg3
RegisterTask
<register_task name="myTask" classname="myTaskClass" />
作者
Piotr Miazga piotr.miazga@yahoo.com
许可证
GNU