Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(719)

Unified Diff: presubmit_canned_checks.py

Issue 11421050: Add presubmit check for dcommitted / CQed CLs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Tweaked regex to match real world result Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/presubmit_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: presubmit_canned_checks.py
diff --git a/presubmit_canned_checks.py b/presubmit_canned_checks.py
index af88a39b1e8b35099655b3ac1688edfb33c6171e..0994df4cfd86647d2fd8f37503c4744eefe23b26 100644
--- a/presubmit_canned_checks.py
+++ b/presubmit_canned_checks.py
@@ -46,9 +46,9 @@ def CheckChangeHasQaField(input_api, output_api):
def CheckDoNotSubmitInDescription(input_api, output_api):
- """Checks that the user didn't add 'DO NOT ' + 'SUBMIT' to the CL description.
+ """Checks that the user didn't add 'DO NOT ''SUBMIT' to the CL description.
"""
- keyword = 'DO NOT ' + 'SUBMIT'
+ keyword = 'DO NOT ''SUBMIT'
if keyword in input_api.change.DescriptionText():
return [output_api.PresubmitError(
keyword + ' is present in the changelist description.')]
@@ -67,6 +67,17 @@ def CheckChangeHasDescription(input_api, output_api):
return []
+def CheckChangeDescriptionNotCommitted(input_api, output_api):
+ """Checks that the CL does not end with a Committed link."""
+ description = input_api.change.DescriptionText()
+ if input_api.re.search('\nCommitted: \S+\s*$', description):
+ return [output_api.PresubmitError(
+ 'The CL description appears to end with a committed link. If this issue\n'
+ 'has been previously used for a commit, please make a new issue number\n'
+ 'by typing "git cl issue 0" and reuploading your CL.')]
+ return []
+
+
def CheckChangeWasUploaded(input_api, output_api):
"""Checks that the issue was uploaded before committing."""
if input_api.is_committing and not input_api.change.issue:
@@ -78,10 +89,10 @@ def CheckChangeWasUploaded(input_api, output_api):
### Content checks
def CheckDoNotSubmitInFiles(input_api, output_api):
- """Checks that the user didn't add 'DO NOT ' + 'SUBMIT' to any files."""
+ """Checks that the user didn't add 'DO NOT ''SUBMIT' to any files."""
# We want to check every text file, not just source files.
file_filter = lambda x : x
- keyword = 'DO NOT ' + 'SUBMIT'
+ keyword = 'DO NOT ''SUBMIT'
errors = _FindNewViolationsOfRule(lambda _, line : keyword not in line,
input_api, file_filter)
text = '\n'.join('Found %s in %s' % (keyword, loc) for loc in errors)
@@ -291,10 +302,10 @@ def CheckChangeHasNoTabs(input_api, output_api, source_file_filter=None):
def CheckChangeTodoHasOwner(input_api, output_api, source_file_filter=None):
"""Checks that the user didn't add TODO(name) without an owner."""
- unowned_todo = input_api.re.compile('TO' + 'DO[^(]')
+ unowned_todo = input_api.re.compile('TO''DO[^(]')
errors = _FindNewViolationsOfRule(lambda _, x : not unowned_todo.search(x),
input_api, source_file_filter)
- errors = ['Found TO' + 'DO with no owner in ' + x for x in errors]
+ errors = ['Found TO''DO with no owner in ' + x for x in errors]
if errors:
return [output_api.PresubmitPromptWarning('\n'.join(errors))]
return []
@@ -971,5 +982,15 @@ def PanProjectChecks(input_api, output_api,
snapshot("checking was uploaded")
results.extend(input_api.canned_checks.CheckChangeWasUploaded(
input_api, output_api))
+ snapshot("checking description")
+ results.extend(input_api.canned_checks.CheckChangeHasDescription(
+ input_api, output_api))
+ results.extend(input_api.canned_checks.CheckDoNotSubmitInDescription(
+ input_api, output_api))
+ results.extend(input_api.canned_checks.CheckChangeDescriptionNotCommitted(
+ input_api, output_api))
+ snapshot("checking do not submit in files")
+ results.extend(input_api.canned_checks.CheckDoNotSubmitInFiles(
+ input_api, output_api))
snapshot("done")
return results
« no previous file with comments | « no previous file | tests/presubmit_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698