Bug 1357238 - Allow apostrophes in try commit messages r=dustin

This copies the behavior of mozilla-taskcluster when it
submits try pushes. This will allow us to eventually stop
using mozilla-taskcluster.

MozReview-Commit-ID: J9zC92AE7HZ
This commit is contained in:
Brian Stack
2017-06-01 17:49:02 -07:00
parent 3cc032e760
commit bc76d94a6a
2 changed files with 15 additions and 13 deletions

View File

@@ -194,20 +194,18 @@ def escape_whitespace_in_brackets(input_str):
return result
def find_try_idx(message):
def split_try_msg(message):
try:
try_idx = message.index('try:')
except ValueError:
return []
message = message[try_idx:].split('\n')[0]
# shlex used to ensure we split correctly when giving values to argparse.
parts = shlex.split(escape_whitespace_in_brackets(message))
try_idx = None
for idx, part in enumerate(parts):
if part == TRY_DELIMITER:
try_idx = idx
break
return try_idx, parts
return shlex.split(escape_whitespace_in_brackets(message))
def parse_message(message):
try_idx, parts = find_try_idx(message)
parts = split_try_msg(message)
# Argument parser based on try flag flags
parser = argparse.ArgumentParser()
@@ -240,7 +238,6 @@ def parse_message(message):
# In order to run test jobs multiple times
parser.add_argument('--rebuild', dest='trigger_tests', type=int, default=1)
parts = parts[try_idx:] if try_idx is not None else []
args, _ = parser.parse_known_args(parts)
return args
@@ -290,8 +287,8 @@ class TryOptionSyntax(object):
self.tag = None
self.no_retry = False
try_idx, _ = find_try_idx(message)
if try_idx is None:
parts = split_try_msg(message)
if not parts:
return None
args = parse_message(message)