From d9978e94dcd591c2512484102f145361cad159cb Mon Sep 17 00:00:00 2001 From: Michael Achenbach Date: Tue, 14 Mar 2017 15:46:13 +0100 Subject: [PATCH] [test] Enforce correct BUG numbers in commit messages NOTRY=true Change-Id: Idfcc2481ae65f8098ecc94c20f992f3f3b874b8c Reviewed-on: https://chromium-review.googlesource.com/454716 Reviewed-by: Jochen Eisinger Commit-Queue: Michael Achenbach Cr-Commit-Position: refs/heads/master@{#43790} --- PRESUBMIT.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 4cacf81133..4490f95282 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -250,6 +250,7 @@ def _CheckMissingFiles(input_api, output_api): def _CommonChecks(input_api, output_api): """Checks common to both upload and commit.""" results = [] + results.extend(_CheckCommitMessageBugEntry(input_api, output_api)) results.extend(input_api.canned_checks.CheckOwners( input_api, output_api, source_file_filter=None)) results.extend(input_api.canned_checks.CheckPatchFormatted( @@ -276,6 +277,25 @@ def _SkipTreeCheck(input_api, output_api): return input_api.environ.get('PRESUBMIT_TREE_CHECK') == 'skip' +def _CheckCommitMessageBugEntry(input_api, output_api): + """Check that bug entries are well-formed in commit message.""" + results = [] + for bug in (input_api.change.BUG or '').split(','): + bug = bug.strip() + if 'none'.startswith(bug.lower()): + continue + if ':' not in bug: + try: + if int(bug) > 100000: + # Rough indicator for current chromium bugs. + results.append( + 'BUG=%s is probably not from V8 tracker. ' + 'Please add correct prefix, e.g. "chromium:%s"' % (bug, bug)) + except ValueError: + results.append('Bogus BUG entry: %s' % bug) + return [output_api.PresubmitError(r) for r in results] + + def CheckChangeOnUpload(input_api, output_api): results = [] results.extend(_CommonChecks(input_api, output_api))