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')

Reply via email to