-
-
Save gortok/b204ac4997e9916ec6c6ef0987251530 to your computer and use it in GitHub Desktop.
| #!/bin/python | |
| import sys | |
| import re | |
| import subprocess | |
| #Format: "oldref newref branch" | |
| line = sys.stdin.read() | |
| (base, commit, ref) = line.strip().split() | |
| new_branch_push = re.match(r'[^1-9]+', base) | |
| branch_deleted = re.match(r'[^1-9]+', commit) | |
| contains_commit_msg = False | |
| if not new_branch_push: | |
| revs = base + "..." + commit | |
| proc = subprocess.Popen(['git', 'rev-list','--oneline','--first-parent', revs], stdout=subprocess.PIPE) | |
| lines = proc.stdout.readlines() | |
| if lines: | |
| for line in lines: | |
| rev = str(line) | |
| match = re.search(r'TICKET-[0-9]{2,5}|#TICKET-[0-9]{2,5}|HOTFIX|FORCE', rev) | |
| if match is not None: | |
| contains_commit_msg = True | |
| if contains_commit_msg or new_branch_push or branch_deleted: | |
| exit(0) | |
| else: | |
| print "Commit does not contain the story associated with the commit in the format: TICKET-123 or #TICKET-123" | |
| exit(1) |
Updated gist to fix bug with new branch pushes with no commits.
I think the latest version works with multiple line commits. The Previous revision did not.
This version did not handle branch deletes; new version does.
@gortok, I'm facing the problem of the new branch at the moment...
Since I need to read which files changed, when a new branch is added I get the list of all files.
if "0000000000" not in base:
(results, code) = GitRepo.git(('git', 'show', base + ".." + commit, '--pretty=format:', '--name-only'))
else:
# All files in the current revision. No way to know which files changed in new branch
(results, code) = GitRepo.git(('git', 'ls-tree', '-r', 'HEAD', '--name-only'))Thank you for sharing this script. However, ignoring the new branch case is not 'handling' it. A user can still incorrectly format the commit message and push it to the repo and get away with it as long as he does it in a new branch. This is in fact what I just tested and observed.
thank's! very helpful script!!!
What is python version required?
Learned so much from this little script, really appreciated.
This has a bug; specifically it fails when creating a new branch off of an existing branch with no new commits. You'll see this error:
To fix this error, do this: