Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2018-04-16 12:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Mon Apr 16 12:47:46 2018 rev:80 rq:595658 version:20180411.820d103

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2018-04-07 20:55:30.689746959 +0200
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes
       2018-04-16 12:48:01.755207226 +0200
@@ -1,0 +2,9 @@
+Wed Apr 11 12:36:59 UTC 2018 - opensuse-releaset...@opensuse.org
+
+- Update to version 20180411.820d103:
+  * issue-diff: utilize entity_mail() as adapted into osclib.core.
+  * devel-project: provide notify sub-command.
+  * osclib/util: provide mail_send(), modified from announcer.py.
+  * osclib/core: provide entity_email(), modified from issue-diff.py.
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20180406.ace73fe.obscpio

New:
----
  openSUSE-release-tools-20180411.820d103.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.LzjGEx/_old  2018-04-16 12:48:05.739062300 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new  2018-04-16 12:48:05.739062300 +0200
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20180406.ace73fe
+Version:        20180411.820d103
 Release:        0
 Summary:        Tools to aid in staging and release work for openSUSE/SUSE
 License:        GPL-2.0-or-later AND MIT

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.LzjGEx/_old  2018-04-16 12:48:05.783060700 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new  2018-04-16 12:48:05.783060700 +0200
@@ -1,6 +1,6 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
-    <param 
name="changesrevision">ace73fecaf4995fb8714639901ece1b6d276f570</param>
+    <param 
name="changesrevision">1102e3cebcce638d3f2a241f6a9131482140619d</param>
   </service>
 </servicedata>

++++++ openSUSE-release-tools-20180406.ace73fe.obscpio -> 
openSUSE-release-tools-20180411.820d103.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20180406.ace73fe/devel-project.py 
new/openSUSE-release-tools-20180411.820d103/devel-project.py
--- old/openSUSE-release-tools-20180406.ace73fe/devel-project.py        
2018-04-06 15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/devel-project.py        
2018-04-11 14:30:51.000000000 +0200
@@ -12,12 +12,16 @@
 from osc.core import get_review_list
 from osc.core import http_GET
 from osc.core import makeurl
+from osc.core import meta_get_packagelist
 from osc.core import show_package_meta
 from osc.core import show_project_meta
 from osclib.comments import CommentAPI
 from osclib.conf import Config
+from osclib.core import devel_project_fallback
+from osclib.core import entity_email
 from osclib.core import request_age
 from osclib.stagingapi import StagingAPI
+from osclib.util import mail_send
 
 
 BOT_NAME = 'devel-project'
@@ -96,6 +100,32 @@
         if len(intersection) != len(desired):
             print('{} missing {}'.format(devel_project, ', '.join(desired - 
intersection)))
 
+def notify(args):
+    apiurl = osc.conf.config['apiurl']
+
+    # devel_projects_get() only works for Factory as such
+    # devel_project_fallback() must be used on a per package basis.
+    packages = meta_get_packagelist(apiurl, args.project)
+    maintainer_map = {}
+    for package in packages:
+        devel_project, devel_package = devel_project_fallback(apiurl, 
args.project, package)
+        if devel_project and devel_package:
+            devel_package_identifier = '/'.join([devel_project, devel_package])
+            userids = maintainers_get(apiurl, devel_project, devel_package)
+            for userid in userids:
+                maintainer_map.setdefault(userid, set())
+                maintainer_map[userid].add(devel_package_identifier)
+
+    Config(args.project) # Ensure mail-* options are loaded for mail_send().
+    subject = 'Packages you maintain are present in {}'.format(args.project)
+    for userid, package_identifiers in maintainer_map.items():
+        email = entity_email(apiurl, userid)
+        message = 'The following packages you maintain are in {}:\n\n- 
{}'.format(
+            args.project, '\n- '.join(sorted(package_identifiers)))
+
+        mail_send(args.project, email, subject, message, dry=args.dry)
+        print('notified {} of {} packages'.format(userid, 
len(package_identifiers)))
+
 def requests(args):
     apiurl = osc.conf.config['apiurl']
     devel_projects = devel_projects_load(args)
@@ -227,6 +257,10 @@
     parser_maintainer.set_defaults(func=maintainer)
     parser_maintainer.add_argument('-g', '--group', action='append', 
help='group for which to check')
 
+    parser_notify = subparsers.add_parser('notify', help='notify maintainers 
of their packages')
+    parser_notify.set_defaults(func=notify)
+    parser_notify.add_argument('--dry', action='store_true',  help='dry run 
emails')
+
     parser_requests = subparsers.add_parser('requests', help='List open 
requests.')
     parser_requests.set_defaults(func=requests)
     common_args_add(parser_requests)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20180406.ace73fe/issue-diff.py 
new/openSUSE-release-tools-20180411.820d103/issue-diff.py
--- old/openSUSE-release-tools-20180406.ace73fe/issue-diff.py   2018-04-06 
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/issue-diff.py   2018-04-11 
14:30:51.000000000 +0200
@@ -21,6 +21,7 @@
 import osc.core
 
 from osclib.cache import Cache
+from osclib.core import entity_email
 from osclib.core import package_list
 from osclib.git import CACHE_DIR
 from osclib.git import sync
@@ -54,12 +55,6 @@
 
     return newbug.id
 
-def entity_email(apiurl, entity, key):
-    url = osc.core.makeurl(apiurl, (entity, key))
-    root = ET.parse(osc.core.http_GET(url)).getroot()
-    email = root.find('email')
-    return email.text if email is not None else None
-
 def bug_owner(apiurl, package, entity='person'):
     query = {
         'binary': package,
@@ -69,10 +64,10 @@
 
     bugowner = root.find('.//{}[@role="bugowner"]'.format(entity))
     if bugowner is not None:
-        return entity_email(apiurl, entity, bugowner.get('name'))
+        return entity_email(apiurl, bugowner.get('name'), entity)
     maintainer = root.find('.//{}[@role="maintainer"]'.format(entity))
     if maintainer is not None:
-        return entity_email(apiurl, entity, maintainer.get('name'))
+        return entity_email(apiurl, maintainer.get('name'), entity)
     if entity == 'person':
         return bug_owner(apiurl, package, 'group')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20180406.ace73fe/osclib/conf.py 
new/openSUSE-release-tools-20180411.820d103/osclib/conf.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/conf.py  2018-04-06 
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/conf.py  2018-04-11 
14:30:51.000000000 +0200
@@ -54,6 +54,10 @@
         'legal-review-group': 'legal-auto',
         'repo-checker': 'repo-checker',
         'pkglistgen-product-family-include': 'openSUSE:Leap:N',
+        'mail-list': 'opensuse-fact...@opensuse.org',
+        'mail-maintainer': 'Dominique Leuenberger <dims...@suse.de>',
+        'mail-noreply': 'nore...@opensuse.org',
+        'mail-release-list': 'opensuse-releaset...@opensuse.org',
     },
     r'openSUSE:(?P<project>Leap:(?P<version>[\d.]+))': {
         'staging': 'openSUSE:%(project)s:Staging',
@@ -94,6 +98,10 @@
         'pkglistgen-include-suggested': '1',
         'pkglistgen-delete-kiwis-rings': 'openSUSE-ftp-ftp-x86_64.kiwi 
openSUSE-cd-mini-x86_64.kiwi',
         'pkglistgen-delete-kiwis-staging': 'openSUSE-ftp-ftp-x86_64.kiwi 
openSUSE-cd-mini-x86_64.kiwi',
+        'mail-list': 'opensuse-fact...@opensuse.org',
+        'mail-maintainer': 'Ludwig Nussel <ludwig.nus...@suse.de>',
+        'mail-noreply': 'nore...@opensuse.org',
+        'mail-release-list': 'opensuse-releaset...@opensuse.org',
     },
     r'SUSE:(?P<project>SLE-15.*$)': {
         'staging': 'SUSE:%(project)s:Staging',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20180406.ace73fe/osclib/core.py 
new/openSUSE-release-tools-20180411.820d103/osclib/core.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/core.py  2018-04-06 
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/core.py  2018-04-11 
14:30:51.000000000 +0200
@@ -207,3 +207,18 @@
                   ['build', project, repo, arch, package, filename],
                   {'view': 'fileinfo_ext'})
     return ET.parse(http_GET(url)).getroot()
+
+def entity_email(apiurl, key, entity_type='person', include_name=False):
+    url = makeurl(apiurl, [entity_type, key])
+    root = ET.parse(http_GET(url)).getroot()
+
+    email = root.find('email')
+    if email is None:
+        return None
+    email = email.text
+
+    realname = root.find('realname')
+    if include_name and realname is not None:
+        email = '{} <{}>'.format(realname.text, email)
+
+    return email
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20180406.ace73fe/osclib/util.py 
new/openSUSE-release-tools-20180411.820d103/osclib/util.py
--- old/openSUSE-release-tools-20180406.ace73fe/osclib/util.py  2018-04-06 
15:28:16.000000000 +0200
+++ new/openSUSE-release-tools-20180411.820d103/osclib/util.py  2018-04-11 
14:30:51.000000000 +0200
@@ -1,3 +1,4 @@
+from osc import conf
 from osclib.core import project_list_prefix
 
 
@@ -79,3 +80,27 @@
         return version
 
     return None
+
+def mail_send(project, to, subject, body, from_key='maintainer', 
followup_to_key='release-list', dry=False):
+    from email.mime.text import MIMEText
+    import email.utils
+    import smtplib
+
+    config = conf.config[project]
+    msg = MIMEText(body)
+    msg['Message-ID'] = email.utils.make_msgid()
+    msg['Date'] = email.utils.formatdate(localtime=1)
+    msg['From'] = config['mail-{}'.format(from_key)]
+    msg['To'] = to
+    followup_to = config.get('mail-{}'.format(followup_to_key))
+    if followup_to:
+        msg['Mail-Followup-To'] = followup_to
+    msg['Subject'] = subject
+
+    if dry:
+        print(msg.as_string())
+        return
+
+    s = smtplib.SMTP(config.get('mail-relay', 'relay.suse.de'))
+    s.sendmail(msg['From'], [msg['To']], msg.as_string())
+    s.quit()

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.LzjGEx/_old  2018-04-16 12:48:06.479035381 +0200
+++ /var/tmp/diff_new_pack.LzjGEx/_new  2018-04-16 12:48:06.479035381 +0200
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20180406.ace73fe
-mtime: 1523021296
-commit: ace73fecaf4995fb8714639901ece1b6d276f570
+version: 20180411.820d103
+mtime: 1523449851
+commit: 820d1030e54f5c9bbfe9aeb69ca5b3b44a838aaa
 


Reply via email to