2016-09-29 9 views
4

私はgithook commit-msgでこのスクリプトを使用しています。Git TowerでGit Commitメッセージを取得するには?

#!/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のタワーがargv内の任意の引数を含めるようには見えないということです。 Git TowerのようなGUIのようにコマンドラインからgitを両方使うことができるようにこれを解決するには?

+0

これはあまりにもSmartGitや他のGUIツールでの問題です。 – prabodhprakash

+0

これはGit Towerのバグのように聞こえます。 [彼らはフックがうまくいくと主張している](https://www.git-tower.com/help/mac/faq-and-tips/faq/hook-scripts)(メッセージは標準エラー出力に出力されるはずだが)、私はこれについて[Git Tower Support](https://www.git-tower.com/support/contact)に連絡してください。 – Hasturkun

+0

確認し、サポートチームに連絡してください –

答えて

2

タワーサポートチームの助けを借りてこれを見つけました。

私の例では、これを#!/usr/bin/env bashに変更することで、議論を得ることができませんでした(つまり、#!/usr/bin/python)私はそれを得ることができました。今すぐ$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 
関連する問題