2016-09-29 3 views
4

Я использую этот скрипт в githook commit-msg.Как получить сообщение Git Commit в Git Tower?

#!/usr/bin/python 
import sys 
import re 
ret = 1 
try: 
    with open(sys.argv[1]) as msg: 
     res = re.match("^fix gh-[0-9]+.*$", msg.readline()) 
     if res != None: 
      ret = 0 
except: 
    pass 
if (ret != 0): 
    print("Wrong commit message. Example: 'fix gh-1234 foo bar'") 
sys.exit(ret) 

Проблема заключается в том, что Git Tower, кажется, не включают в себя какие-либо аргументы в argv. Как решить это так, чтобы я мог использовать git как из командной строки, так и в графическом интерфейсе, таком как Git Tower?

+0

Это проблема с SmartGit и других инструментов GUI тоже. – prabodhprakash

+0

Это звучит для меня как ошибка в Git Tower, так как ваш крючок выглядит хорошо. Поскольку [они утверждают, что крючки должны работать] (https://www.git-tower.com/help/mac/faq-and-tips/faq/hook-scripts) (хотя сообщения должны быть напечатаны на stderr), я 'd контакт [Поддержка Git Tower] (https://www.git-tower.com/support/contact) об этом. – Hasturkun

+0

Проверьте, связался с группой поддержки –

ответ

2

Выяснено это с помощью команды поддержки Tower.

В моем примере я не смог захватить аргумент (то есть: #!/usr/bin/python), изменив это на #!/usr/bin/env bash. Я смог его получить. Теперь $1 содержит аргумент.

Полный пример:

#!/usr/bin/env bash 

# regex to validate in commit msg 

    commit_regex='(gh-\d+|merge)' 
    error_msg="Aborting commit. Your commit message is missing either a Github Issue ('GH-xxxx') or 'Merge'" 

    if ! grep -iqE "$commit_regex" "$1"; then 
     echo "$error_msg" >&2 
     exit 1 
    fi 
Смежные вопросы