changeset 9a1931fd5673 in tryton-tools:default
details: https://hg.tryton.org/tryton-tools?cmd=changeset&node=9a1931fd5673
description:
        Send message to roundup only if already in reviews

        issue10293
        review357821006
diffstat:

 reviewbot.py |  26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diffs (63 lines):

diff -r 16e59109a00d -r 9a1931fd5673 reviewbot.py
--- a/reviewbot.py      Tue Dec 29 11:27:49 2020 +0100
+++ b/reviewbot.py      Fri Apr 16 18:57:58 2021 +0200
@@ -132,7 +132,7 @@
     s.quit()
 
 
-def process_issue(session, roundup, issue_id, fromaddr, force=False):
+def process_issue(session, roundup, issue_id, fromaddr, username, force=False):
     issue_info = session.get(CODEREVIEW_URL
         + '/'.join(['', 'api', str(issue_id)]))
     issue_info.raise_for_status()
@@ -154,7 +154,7 @@
 
     description = issue_info.get('description', '')
     link_roundup(
-        roundup, issue_id, patchset, description, fromaddr)
+        roundup, issue_id, patchset, description, fromaddr, username)
 
     match = TITLE_FORMAT.match(issue_info['subject'])
     if not match:
@@ -204,24 +204,24 @@
     s.quit()
 
 
-def link_roundup(roundup, review_id, patchset, description, fromaddr):
+def link_roundup(
+        roundup, review_id, patchset, description, fromaddr, username):
     matches = ISSUE_FORMAT.finditer(description)
     for match in matches:
         issue_id = match.groupdict()['issue_id']
         try:
-            reviews = roundup.display(
-                'issue%s' % issue_id, 'reviews')['reviews']
+            values = roundup.display(
+                'issue%s' % issue_id, 'reviews', 'nosy')
         except xmlrpc.client.Fault:
             continue
+        nosy = values['nosy']
+        reviews = values['reviews']
         if reviews is None:
             reviews = ''
         reviews = list(filter(None, map(str.strip, reviews.split(','))))
-        new = review_id not in reviews
-        if new:
-            reviews.append(review_id)
-            roundup.set(
-                'issue%s' % issue_id, "reviews=%s" % ', '.join(reviews))
-        send_msg(fromaddr, issue_id, patchset, review_id, new)
+        if review_id in reviews:
+            new = username in nosy
+            send_msg(fromaddr, issue_id, patchset, review_id, new)
 
 
 def fetch_issues(url, session):
@@ -259,4 +259,6 @@
     else:
         issues = args.issues
     for issue in reversed(issues):
-        process_issue(session, roundup, issue, args.email, force=args.force)
+        process_issue(
+            session, roundup, issue, args.email, args.username,
+            force=args.force)

Reply via email to