diff -r fe83040400b7 -r 7370f302be71 hgext/bugzilla.py --- a/hgext/bugzilla.py Sun Jan 20 21:49:58 2019 -0800 +++ b/hgext/bugzilla.py Thu Jan 24 13:54:45 2019 -0500 @@ -303,6 +303,7 @@ error, logcmdutil, mail, + pycompat, registrar, url, util, @@ -342,10 +343,10 @@ default='bugs', ) configitem('bugzilla', 'fixregexp', - default=(r'fix(?:es)?\s*(?:bugs?\s*)?,?\s*' - r'(?:nos?\.?|num(?:ber)?s?)?\s*' - r'(?P(?:#?\d+\s*(?:,?\s*(?:and)?)?\s*)+)' - r'\.?\s*(?:h(?:ours?)?\s*(?P\d*(?:\.\d+)?))?') + default=(br'fix(?:es)?\s*(?:bugs?\s*)?,?\s*' + br'(?:nos?\.?|num(?:ber)?s?)?\s*' + br'(?P(?:#?\d+\s*(?:,?\s*(?:and)?)?\s*)+)' + br'\.?\s*(?:h(?:ours?)?\s*(?P\d*(?:\.\d+)?))?') ) configitem('bugzilla', 'fixresolution', default='FIXED', @@ -363,9 +364,9 @@ default=None, ) configitem('bugzilla', 'regexp', - default=(r'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*' - r'(?P(?:\d+\s*(?:,?\s*(?:and)?)?\s*)+)' - r'\.?\s*(?:h(?:ours?)?\s*(?P\d*(?:\.\d+)?))?') + default=(br'bugs?\s*,?\s*(?:#|nos?\.?|num(?:ber)?s?)?\s*' + br'(?P(?:\d+\s*(?:,?\s*(?:and)?)?\s*)+)' + br'\.?\s*(?:h(?:ours?)?\s*(?P\d*(?:\.\d+)?))?') ) configitem('bugzilla', 'strip', default=0, @@ -733,7 +734,7 @@ c = self.bzproxy.Bug.comments({'ids': [id], 'include_fields': ['text'], 'token': self.bztoken}) - return ''.join([t['text'] for t in c['bugs'][str(id)]['comments']]) + return ''.join([t['text'] for t in c['bugs']['%d' % id]['comments']]) def filter_real_bug_ids(self, bugs): probe = self.bzproxy.Bug.get({'ids': sorted(bugs.keys()), @@ -804,11 +805,11 @@ def makecommandline(self, fieldname, value): if self.bzvermajor >= 4: - return "@%s %s" % (fieldname, str(value)) + return "@%s %s" % (fieldname, pycompat.bytestr(value)) else: if fieldname == "id": fieldname = "bug_id" - return "@%s = %s" % (fieldname, str(value)) + return "@%s = %s" % (fieldname, pycompat.bytestr(value)) def send_bug_modify_email(self, bugid, commands, comment, committer): '''send modification message to Bugzilla bug via email. @@ -873,7 +874,7 @@ self.fixresolution = self.ui.config('bugzilla', 'fixresolution') def apiurl(self, targets, include_fields=None): - url = '/'.join([self.bzroot] + [str(t) for t in targets]) + url = '/'.join([self.bzroot] + [pycompat.bytestr(t) for t in targets]) qv = {} if self.apikey: qv['api_key'] = self.apikey @@ -938,7 +939,7 @@ for bugid in bugs.keys(): burl = self.apiurl(('bug', bugid, 'comment'), include_fields='text') result = self._fetch(burl) - comments = result['bugs'][str(bugid)]['comments'] + comments = result['bugs'][pycompat.bytestr(bugid)]['comments'] if any(sn in c['text'] for c in comments): self.ui.status(_('bug %d already knows about changeset %s\n') % (bugid, sn)) @@ -1011,7 +1012,7 @@ self.ui.config('bugzilla', 'regexp'), re.IGNORECASE) self.fix_re = re.compile( self.ui.config('bugzilla', 'fixregexp'), re.IGNORECASE) - self.split_re = re.compile(r'\D+') + self.split_re = re.compile(br'\D+') def find_bugs(self, ctx): '''return bugs dictionary created from commit comment. @@ -1098,7 +1099,7 @@ t = logcmdutil.changesettemplater(self.ui, self.repo, spec) self.ui.pushbuffer() t.show(ctx, changes=ctx.changeset(), - bug=str(bugid), + bug=pycompat.bytestr(bugid), hgweb=self.ui.config('web', 'baseurl'), root=self.repo.root, webroot=webroot(self.repo.root))