| Index: PRESUBMIT.py
|
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py
|
| index 9a76412e0c57c04276b54ff8ca5a055a9c33adf2..587ec368b80faf373ac0759f57df71bdb53fd0f7 100755
|
| --- a/PRESUBMIT.py
|
| +++ b/PRESUBMIT.py
|
| @@ -423,6 +423,31 @@ def _CheckUnwantedDependencies(input_api, output_api):
|
| warning_descriptions))
|
| return results
|
|
|
| +def _CheckCommitMessageBugEntry(input_api, output_api):
|
| + """Check that bug entries are well-formed in commit message."""
|
| + bogus_bug_msg = (
|
| + 'Bogus BUG entry: %s. Please specify the issue tracker prefix and the '
|
| + 'issue number, separated by a colon, e.g. webrtc:123 or chromium:12345.')
|
| + results = []
|
| + for bug in (input_api.change.BUG or '').split(','):
|
| + bug = bug.strip()
|
| + if bug.lower() == 'none':
|
| + continue
|
| + if ':' not in bug:
|
| + try:
|
| + if int(bug) > 100000:
|
| + # Rough indicator for current chromium bugs.
|
| + prefix_guess = 'chromium'
|
| + else:
|
| + prefix_guess = 'webrtc'
|
| + results.append('BUG entry requires issue tracker prefix, e.g. %s:%s' %
|
| + (prefix_guess, bug))
|
| + except ValueError:
|
| + results.append(bogus_bug_msg % bug)
|
| + elif not re.match(r'\w+:\d+', bug):
|
| + results.append(bogus_bug_msg % bug)
|
| + return [output_api.PresubmitError(r) for r in results]
|
| +
|
| def _CheckChangeHasBugField(input_api, output_api):
|
| """Requires that the changelist have a BUG= field.
|
|
|
| @@ -597,6 +622,7 @@ def CheckChangeOnCommit(input_api, output_api):
|
| results.extend(input_api.canned_checks.CheckChangeHasDescription(
|
| input_api, output_api))
|
| results.extend(_CheckChangeHasBugField(input_api, output_api))
|
| + results.extend(_CheckCommitMessageBugEntry(input_api, output_api))
|
| results.extend(input_api.canned_checks.CheckTreeIsOpen(
|
| input_api, output_api,
|
| json_url='http://webrtc-status.appspot.com/current?format=json'))
|
|
|