分享撸一个git branch name校验工具的过程

Git分支校验工具

最近想规范团队的项目分支命名,在github上找了个遍,也没找到合适的。所以花了一天时间本身撸一个,目前已在公司的项目中使用,先奉上项目地址:validate-branch-name 果你喜也喜欢这个项目,欢迎使用和stargit

准备工做

功能需求

  • 校验规则可自定义,且方式必定要便捷
  • Push时触发,且校验失败是要阻止当前提交
  • 须要方便与CI结合

实现思路

实现的思路实际上是比较简单的,参考下面的流程图: github

屏幕快照 2019-08-14 20.41.11.png

  • 分支名校验使用正则进行校验,正则表达式用户可自定义,同时也提供了默认的正则。
  • 配置的定义可经过配置文件和package.json等方式,项目中使用cosmiconfig进行全局配置搜索。
  • Git Hook触发校验操做,所以使用了Husky定义了pre-push hook,在git push前就进行了分支名的校验。

使用方式

在你的项目package.json中定义hook和校验规则,“validate-branch-name" 这个参数是可选的,项目为你提供了默认的配置,固然你也能够自定义正则表达式

// {app_root}/package.json
{
  "husky": {
    "hooks": {
      "pre-push": "validate-branch-name"
    }
  },
  "validate-branch-name": {
    "pattern": "^(master|develop){1}$|^(feature|fix|hotfix|release)\/.+$",
    "errorMsg": "your own error message"
  }
}
复制代码

默认的pattern: ^(master|develop){1}|^(feature|fix|hotfix|release).+ 例如: feature/test/pattern-test这样的分支名就能够经过校验 其它的patterns有:json

  • ^(feature|fix|hotfix|release)/.+ - branch has to start with feature/, fix/, release/ or hotfix/
  • (feature|release|hotfix)/(JIRA-\d+) - it should look like feature/JIRA-1234
  • (feature|release|hotfix)/(JIRA-\d+/)?[a-z-]+ - it should look like feature/branch-name or include JIRA's code like feature/JIRA-1234/branch-name

你也能够经过.validate-branch-namerc, .validate-branch-namerc.json or .validate-branch-name.js 等文件自定义配置.app

总结

这个工具虽然很轻,可是提供了很便捷的自定义及使用途径,对规范化团队的开发流程仍是有很大帮助的。最后,若是你也喜欢这个项目,欢迎Star工具

相关文章
相关标签/搜索