pre-upload: link to commit message documentation more
BUG=None
TEST=`repo upload` w/bad CL includes link to docs
Change-Id: Ieb30fe943106c3e2345f6da03c7f07e27e454447
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/repohooks/+/1965401
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/pre-upload.py b/pre-upload.py
index 9dc2527..1ab1ef8 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -51,6 +51,12 @@
PRE_SUBMIT = 'pre-submit'
+
+# Link to commit message documentation for users.
+DOC_COMMIT_MSG_URL = ('https://chromium.googlesource.com/chromiumos/docs/+/HEAD'
+ '/contributing.md#commit-messages')
+
+
COMMON_INCLUDED_PATHS = [
# C++ and friends
r'.*\.c$', r'.*\.cc$', r'.*\.cpp$', r'.*\.h$', r'.*\.m$', r'.*\.mm$',
@@ -612,10 +618,12 @@
def _check_change_has_test_field(_project, commit):
"""Check for a non-empty 'TEST=' field in the commit message."""
+ SEE_ALSO = 'Please review the documentation:\n%s' % (DOC_COMMIT_MSG_URL,)
TEST_RE = r'\nTEST=\S+'
if not re.search(TEST_RE, _get_commit_desc(commit)):
- msg = 'Changelist description needs TEST field (after first line)'
+ msg = ('Changelist description needs TEST field (after first line)\n%s' %
+ (SEE_ALSO,))
return HookFailure(msg)
return None
@@ -659,6 +667,8 @@
def _check_change_has_bug_field(project, commit):
"""Check for a correctly formatted 'BUG=' field in the commit message."""
+ SEE_ALSO = 'Please review the documentation:\n%s' % (DOC_COMMIT_MSG_URL,)
+
OLD_BUG_RE = r'\nBUG=.*chromium-os'
if re.search(OLD_BUG_RE, _get_commit_desc(commit)):
msg = ('The chromium-os bug tracker is now deprecated. Please use\n'
@@ -675,16 +685,18 @@
BUG_RE = r'\nBug: ?([Nn]one|\d+)'
if not re.search(BUG_RE, _get_commit_desc(commit)):
msg = ('Changelist description needs BUG field (after first line):\n'
+ 'Examples:\n'
'Bug: 9999 (for buganizer)\n'
- 'BUG=None')
+ 'BUG=None\n%s' % (SEE_ALSO,))
return HookFailure(msg)
else:
BUG_RE = r'\nBUG=([Nn]one|(chromium|b):\d+)'
if not re.search(BUG_RE, _get_commit_desc(commit)):
msg = ('Changelist description needs BUG field (after first line):\n'
+ 'Examples:\n'
'BUG=chromium:9999 (for public tracker)\n'
'BUG=b:9999 (for buganizer)\n'
- 'BUG=None')
+ 'BUG=None\n%s' % (SEE_ALSO,))
return HookFailure(msg)
return None
@@ -1179,9 +1191,7 @@
We do not check for BUG=/TEST=/etc... lines here as that is handled by other
commit hooks.
"""
- DOC = ('https://chromium.googlesource.com/chromiumos/docs/+/HEAD/'
- 'contributing.md#Commit-messages')
- SEE_ALSO = 'Please review the documentation:\n%s' % (DOC,)
+ SEE_ALSO = 'Please review the documentation:\n%s' % (DOC_COMMIT_MSG_URL,)
desc = _get_commit_desc(commit)