分享擼一個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工具

相關文章
相關標籤/搜索