changeset c17cb927fc6b in tryton-tools:default
details: https://hg.tryton.org/tryton-tools?cmd=changeset;node=c17cb927fc6b
description:
Manage backport keyword
issue8438
review271591002
diffstat:
hgroundup.py | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diffs (49 lines):
diff -r eb75bb0a5498 -r c17cb927fc6b hgroundup.py
--- a/hgroundup.py Tue May 07 11:15:09 2019 +0200
+++ b/hgroundup.py Mon Jul 08 16:48:26 2019 +0200
@@ -119,7 +119,10 @@
'changeset_url': posixpath.join(repourl, str(ctx)),
'commit_msg': description.splitlines()[0],
})
- add_comment(issues, data, comment, status)
+ keywords = []
+ if ctx.branch() != 'default':
+ keywords.append('-backport')
+ add_comment(issues, data, comment, status, keywords)
if issues:
try:
send_comments(mailrelay, fromaddr, toaddr, issues, classname)
@@ -134,7 +137,7 @@
return False
-def add_comment(issues, data, comment, status='resolved'):
+def add_comment(issues, data, comment, status='resolved', keywords=None):
"""Process a comment made in a commit message."""
key = data['issue_id']
if key in issues:
@@ -143,6 +146,15 @@
issues[key] = {'comments': [comment], 'properties': {
'status': status,
}}
+ if keywords:
+ issues[key]['properties'].setdefault(
+ 'keywords', set()).update(keywords)
+
+
+def _format_properties(value):
+ if isinstance(value, (list, tuple, set)):
+ return ','.join(value)
+ return value
def send_comments(mailrelay, fromaddr, toaddr, issues, classname='issue'):
@@ -152,7 +164,7 @@
for issue_id, data in issues.iteritems():
props = ''
if data['properties']:
- props = ' [%s]' % ';'.join('%s=%s' % x
+ props = ' [%s]' % ';'.join('%s=%s' % _format_properties(x)
for x in
data['properties'].iteritems())
msg = MIMEText('\n\n'.join(data['comments']),
_subtype='plain', _charset='utf8')