polishdeveloper/stark

版本控制存储库钩子框架

dev-master 2014-11-21 20:44 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:37:13 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

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