| Index: presubmit_support.py
|
| diff --git a/presubmit_support.py b/presubmit_support.py
|
| index ae56b068b3494e78c44289a571b5eabb270ed230..f39d8212e9729e71f215e8f3e5fb68aad10f9e73 100755
|
| --- a/presubmit_support.py
|
| +++ b/presubmit_support.py
|
| @@ -833,7 +833,7 @@ class Change(object):
|
|
|
| def SetDescriptionText(self, description):
|
| """Sets the full description text (including tags) to |description|.
|
| -
|
| +
|
| Also updates the list of tags."""
|
| self._full_description = description
|
|
|
| @@ -1018,7 +1018,7 @@ class GetTrySlavesExecuter(object):
|
| @staticmethod
|
| def ExecPresubmitScript(script_text, presubmit_path, project, change):
|
| """Executes GetPreferredTrySlaves() from a single presubmit script.
|
| -
|
| +
|
| This will soon be deprecated and replaced by GetPreferredTryMasters().
|
|
|
| Args:
|
| @@ -1541,25 +1541,52 @@ def Main(argv):
|
| parser.add_option("--rietveld_password", help=optparse.SUPPRESS_HELP)
|
| parser.add_option("--rietveld_fetch", action='store_true', default=False,
|
| help=optparse.SUPPRESS_HELP)
|
| + # These are for OAuth2 authentication for bots. See also apply_issue.py
|
| + parser.add_option("--rietveld_email_file", help=optparse.SUPPRESS_HELP)
|
| + parser.add_option("--rietveld_private_key_file", help=optparse.SUPPRESS_HELP)
|
| +
|
| parser.add_option("--trybot-json",
|
| help="Output trybot information to the file specified.")
|
| options, args = parser.parse_args(argv)
|
| +
|
| if options.verbose >= 2:
|
| logging.basicConfig(level=logging.DEBUG)
|
| elif options.verbose:
|
| logging.basicConfig(level=logging.INFO)
|
| else:
|
| logging.basicConfig(level=logging.ERROR)
|
| +
|
| + 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_private_key_file and options.rietveld_password:
|
| + parser.error("Only one of --rietveld_private_key_file or "
|
| + "--rietveld_password 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()
|
| +
|
| change_class, files = load_files(options, args)
|
| if not change_class:
|
| parser.error('For unversioned directory, <files> is not optional.')
|
| logging.info('Found %d file(s).' % len(files))
|
| +
|
| rietveld_obj = None
|
| if options.rietveld_url:
|
| - rietveld_obj = rietveld.CachingRietveld(
|
| + # The empty password is permitted: '' is not None.
|
| + if options.rietveld_password is not None:
|
| + rietveld_obj = rietveld.CachingRietveld(
|
| options.rietveld_url,
|
| options.rietveld_email,
|
| options.rietveld_password)
|
| + elif options.rietveld_private_key_file:
|
| + rietveld_obj = rietveld.JwtOAuth2Rietveld(
|
| + options.rietveld_url,
|
| + options.rietveld_email,
|
| + options.rietveld_private_key_file)
|
| + else:
|
| + parser.error("No password or secret key has been provided for "
|
| + "Rietveld. Unable to connect.")
|
| if options.rietveld_fetch:
|
| assert options.issue
|
| props = rietveld_obj.get_issue_properties(options.issue, False)
|
|
|