2016-09-29 2 views
4

Ich verwende dieses Skript im Githook commit-msg.Wie bekomme ich die Git Commit Nachricht in 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) 

Das Problem ist, dass Git Turm scheint keine Argumente innerhalb argv aufzunehmen. Wie kann ich das so lösen, dass ich Git sowohl von der Kommandozeile als auch in einer GUI wie Git Tower benutzen kann?

+0

Dies ist ein Problem mit SmartGit und andere zu GUI-Tools. – prabodhprakash

+0

Das hört sich für mich wie ein Käfer im Git Tower an, da Ihr Haken gut aussieht. Da [sie behaupten, dass Hooks funktionieren sollten] (https://www.git-tower.com/help/mac/faq-and-tips/faq/hook-scripts) (Obwohl Nachrichten auf stderr gedruckt werden sollten), ich Kontaktiere [Git Tower Support] (https://www.git-tower.com/support/contact). – Hasturkun

+0

Überprüfen Sie, kontaktierte das Support-Team –

Antwort

2

Das haben wir mit Hilfe des Tower Support Teams herausgefunden.

In meinem Beispiel war ich nicht in der Lage, das Argument zu greifen (dh: #!/usr/bin/python), indem ich dies zu #!/usr/bin/env bash änderte ich konnte es bekommen. Jetzt enthält $1 das Argument.

Komplettes Beispiel:

#!/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 
Verwandte Themen