#27 upstream: support label filters
Closed 6 years ago by ralph. Opened 6 years ago by jlebon.
jlebon/sync-to-jira develop  into  develop

file modified
+1 -1
@@ -30,7 +30,7 @@ 

              'github': {

                  # Only sync multi-type tickets from bodhi.

                  'fedora-infra/bodhi': { 'state': 'open', 'milestone': 4, },

-                 'projectatomic/rpm-ostree': { 'state': 'open', 'milestone': 2, },

+                 'projectatomic/rpm-ostree': { 'state': 'open', 'label': 'jira', },

              },

          },

          'map': {

file modified
+2
@@ -39,6 +39,8 @@ 

  handlers = {

      # Example: https://apps.fedoraproject.org/datagrepper/id?id=2016-895ed21e-5d53-4fde-86ac-64dab36a14ad&is_raw=true&size=extra-large

      'github.issue.opened': u.handle_github_message,

+     # Example: https://apps.fedoraproject.org/datagrepper/id?id=2017-ef579c6c-c391-449b-8cc2-837c41bd6c85&is_raw=true&size=extra-large

+     'github.issue.reopened': u.handle_github_message,

      # Example: https://apps.fedoraproject.org/datagrepper/id?id=2016-d578d8f6-0c4c-493d-9535-4e138a03e197&is_raw=true&size=extra-large

      'pagure.issue.new': u.handle_pagure_message,

  }

file modified
+11 -3
@@ -49,9 +49,17 @@ 

  

      for key, expected in filter.items():

          actual = msg['msg']['issue'].get(key)

-         if actual != expected:

-             log.info("Actual %r %r != expected %r" % (key, actual, expected))

-             return None

+         # special handling for label: we look for it in the list of msg labels

+         if key == 'label':

+             labels = [label['name'] for label in msg['msg']['issue']['labels']]

+             if actual not in labels:

+                 log.info("Label %s not set on issue" % actual)

+                 return None

+         else:

+             # direct comparison

+             if actual != expected:

+                 log.info("Actual %r %r != expected %r" % (key, actual, expected))

+                 return None

  

      return i.Issue.from_github(upstream, msg['msg']['issue'], config)

  

Allow the config to specify a label to look for in an issue's labels.
Change rpm-ostree config to make use of this. Also listen for
'github.issue.reopened' issues.

Only mildly tested. :)

Pull-Request has been closed by ralph

6 years ago