Используйте git-hooks для определенных веток (с Husky и git-branch-is) - PullRequest
0 голосов
/ 22 декабря 2018

Я использую husky и git-branch-is для git-хуков.Ниже моего package.json

{
"scripts": {
    "test": "jest",
     ...
},
"husky": {
  "hooks": {
    "pre-commit": "git-branch-is master && npm test",
    "pre-push": "git-branch-is master && npm test"
 }
}

С этими параметрами при коммите из ветви функция / 802 я устраняю следующую ошибку

Error: Current branch is "feature/802", not "master". 

Вопрос

  1. Как я могу отключить Git-хуки для веток, которые начинаются с "feature"
  2. Применять хуки только для master и разработать ветвей.
  3. Можно ли это реализовать без использования скриптов bash?

Ответы [ 2 ]

0 голосов
/ 21 августа 2019

Я проверяю, является ли ответвление не ведущим, или ответвление является основным, и тесты выполнены успешно.

"pre-push": "git-branch-is -r \"^((?!master).)*$\" || (git-branch-is master && npm test)"
0 голосов
/ 03 января 2019

Используйте if [ git-branch-is master]; then npm test; fi.Тогда тест git-branch-is master, возвращающий ошибочное (ненулевое) значение выхода, не будет рассматриваться как сбой терминала хука.

Это может вызвать проблемы, если хук должен работать вне POSIX-совместимой оболочки.

...