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

Unified Diff: presubmit_support.py

Issue 1915153003: Add basic Gerrit support for presubmit_support. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@P500
Patch Set: fix test Created 4 years, 8 months 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_support.py
diff --git a/presubmit_support.py b/presubmit_support.py
index 2b01bc356401cea34d7634b6ab87d3ba120a893b..5d80cc5512f3408769b5b15e59ec36b50248429c 100755
--- a/presubmit_support.py
+++ b/presubmit_support.py
@@ -36,12 +36,14 @@ import traceback # Exposed through the API.
import types
import unittest # Exposed through the API.
import urllib2 # Exposed through the API.
+import urlparse
from warnings import warn
# Local imports.
import auth
import fix_encoding
import gclient_utils
+import gerrit_util
import owners
import presubmit_canned_checks
import rietveld
@@ -1642,6 +1644,8 @@ def main(argv=None):
help="A list of checks to skip which appear in "
"presubmit_canned_checks. Can be provided multiple times "
"to skip multiple canned checks.")
+ parser.add_option("--gerrit_url", help=optparse.SUPPRESS_HELP)
+ parser.add_option("--gerrit_fetch", help=optparse.SUPPRESS_HELP)
parser.add_option("--rietveld_url", help=optparse.SUPPRESS_HELP)
parser.add_option("--rietveld_email", help=optparse.SUPPRESS_HELP)
parser.add_option("--rietveld_fetch", action='store_true', default=False,
@@ -1664,10 +1668,15 @@ def main(argv=None):
else:
logging.basicConfig(level=logging.ERROR)
+ if (any((options.rietveld_url, options.rietveld_email_file,
+ options.rietveld_fetch, options.rietveld_private_key_file))
+ and any((options.gerrit_url, options.gerrit_fetch))):
+ parser.error('Options for only codereview --rietveld_* or --gerrit_* '
+ 'allowed')
+
if options.rietveld_email and options.rietveld_email_file:
parser.error("Only one of --rietveld_email or --rietveld_email_file "
"can be passed to this program.")
-
if options.rietveld_email_file:
with open(options.rietveld_email_file, "rb") as f:
options.rietveld_email = f.read().strip()
@@ -1697,6 +1706,26 @@ def main(argv=None):
options.description = props['description']
logging.info('Got author: "%s"', options.author)
logging.info('Got description: """\n%s\n"""', options.description)
+
+ if options.gerrit_url and options.gerrit_fetch:
+ rietveld_obj = None
+ assert options.issue and options.patchset
+ props = gerrit_util.GetChangeDetail(
+ urlparse.urlparse(options.gerrit_url).netloc, str(options.issue),
+ ['ALL_REVISIONS'])
+ options.author = props['owner']['email']
+ for rev, rev_info in props['revisions'].iteritems():
+ if str(rev_info['_number']) == str(options.patchset):
+ options.description = gerrit_util.GetChangeDescriptionFromGitiles(
+ rev_info['fetch']['http']['url'], rev)
+ break
+ else:
+ print >> sys.stderr, ('Patchset %d was not found in Gerrit issue %d' %
+ options.patchset, options.issue)
+ return 2
+ logging.info('Got author: "%s"', options.author)
+ logging.info('Got description: """\n%s\n"""', options.description)
+
try:
with canned_check_filter(options.skip_canned):
results = DoPresubmitChecks(
« 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