Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Factory checked in at 2023-06-27 23:18:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Tue Jun 27 23:18:12 2023 rev:475 rq:1095653 version:20230627.8db5f62

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
    2023-06-22 23:27:53.878403658 +0200
+++ 
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.15902/openSUSE-release-tools.changes
 2023-06-27 23:18:31.924050277 +0200
@@ -1,0 +2,7 @@
+Tue Jun 27 15:17:04 UTC 2023 - opensuse-releaset...@opensuse.org
+
+- Update to version 20230627.8db5f62:
+  * Don't decline SRs from non-devel project for scmsync packages from the bot
+  * Add type hints to action_ methods of ReviewBot
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20230622.459489f.obscpio

New:
----
  openSUSE-release-tools-20230627.8db5f62.obscpio

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

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.64z1Xj/_old  2023-06-27 23:18:32.768055244 +0200
+++ /var/tmp/diff_new_pack.64z1Xj/_new  2023-06-27 23:18:32.776055291 +0200
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20230622.459489f
+Version:        20230627.8db5f62
 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.64z1Xj/_old  2023-06-27 23:18:32.832055620 +0200
+++ /var/tmp/diff_new_pack.64z1Xj/_new  2023-06-27 23:18:32.836055644 +0200
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
-    <param 
name="changesrevision">459489fa072029ea908996e2015712125a22373e</param>
+    <param 
name="changesrevision">8db5f6242cb5018068a0b9019454ea331a3665e4</param>
   </service>
 </servicedata>
 

++++++ openSUSE-release-tools-20230622.459489f.obscpio -> 
openSUSE-release-tools-20230627.8db5f62.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openSUSE-release-tools-20230622.459489f/ReviewBot.py 
new/openSUSE-release-tools-20230627.8db5f62/ReviewBot.py
--- old/openSUSE-release-tools-20230622.459489f/ReviewBot.py    2023-06-22 
16:42:31.000000000 +0200
+++ new/openSUSE-release-tools-20230627.8db5f62/ReviewBot.py    2023-06-27 
17:14:47.000000000 +0200
@@ -4,6 +4,7 @@
 import sys
 import re
 import logging
+from typing import List
 import cmdln
 from collections import namedtuple
 from collections import OrderedDict
@@ -95,7 +96,7 @@
         self.logger = logger
         self.review_user = user
         self.review_group = group
-        self.requests = []
+        self.requests: List[osc.core.Request] = []
         self.review_messages = ReviewBot.DEFAULT_REVIEW_MESSAGES
         self._review_mode = 'normal'
         self.fallback_user = None
@@ -398,7 +399,7 @@
 
         return True
 
-    def check_one_request(self, req):
+    def check_one_request(self, req: osc.core.Request):
         """
         check all actions in one request.
 
@@ -427,11 +428,12 @@
 
         overall = True
         for a in req.actions:
+            a: osc.core.Action
             if self.multiple_actions:
                 self.review_messages = self.DEFAULT_REVIEW_MESSAGES.copy()
 
             # Store in-case sub-classes need direct access to original values.
-            self.action = a
+            self.action: osc.core.Action = a
             key = request_action_key(a)
 
             override = self.request_override_check()
@@ -462,7 +464,7 @@
 
         return overall
 
-    def action_method(self, action):
+    def action_method(self, action: osc.core.Action):
         method_prefix = 'check_action'
         method_type = action.type
         method_suffix = None
@@ -511,7 +513,7 @@
         return self.check_source_submission(a.src_project, a.src_package, 
a.src_rev,
                                             a.tgt_releaseproject, tgt_package)
 
-    def check_action_maintenance_release(self, req, a):
+    def check_action_maintenance_release(self, req: osc.core.Request, a: 
osc.core.Action):
         pkgname = a.src_package
         if action_is_patchinfo(a):
             self.logger.debug('ignoring patchinfo action')
@@ -530,7 +532,7 @@
             pkgname = linkpkg
         return self.check_source_submission(a.src_project, a.src_package, 
None, a.tgt_project, pkgname)
 
-    def check_action_submit(self, req, a):
+    def check_action_submit(self, req: osc.core.Request, a: osc.core.Action):
         return self.check_source_submission(a.src_project, a.src_package, 
a.src_rev, a.tgt_project, a.tgt_package)
 
     def check_action__default(self, req, a):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20230622.459489f/check_source.py 
new/openSUSE-release-tools-20230627.8db5f62/check_source.py
--- old/openSUSE-release-tools-20230622.459489f/check_source.py 2023-06-22 
16:42:31.000000000 +0200
+++ new/openSUSE-release-tools-20230627.8db5f62/check_source.py 2023-06-27 
17:14:47.000000000 +0200
@@ -21,7 +21,7 @@
 from osclib.core import package_kind
 from osclib.core import create_add_role_request
 from osclib.core import maintainers_get
-from osc.core import show_project_meta
+from osc.core import show_package_meta, show_project_meta
 from osc.core import get_request_list
 from urllib.error import HTTPError
 
@@ -62,6 +62,7 @@
         self.allow_valid_source_origin = 
str2bool(config.get('check-source-allow-valid-source-origin', 'False'))
         self.valid_source_origins = 
set(config.get('check-source-valid-source-origins', '').split(' '))
         self.add_devel_project_review = 
str2bool(config.get('check-source-add-devel-project-review', 'False'))
+        self.allowed_scm_submission_sources = 
set(config.get('allowed-scm-submission-sources', '').split(' '))
 
         if self.action.type == 'maintenance_incident':
             # The workflow effectively enforces the names to match and the
@@ -150,12 +151,25 @@
             self.logger.info('checking if target package exists and has devel 
project')
             devel_project, devel_package = devel_project_get(self.apiurl, 
target_project, target_package)
             if devel_project:
-                if ((source_project != devel_project or source_package != 
devel_package) and
-                   not (source_project == target_project and source_package == 
target_package)):
-                    # Not from proper devel project/package and not 
self-submission.
-                    self.review_messages['declined'] = 'Expected submission 
from devel package %s/%s' % (
-                        devel_project, devel_package)
-                    return False
+                if (
+                        (source_project != devel_project or source_package != 
devel_package)
+                        and not (source_project == target_project and 
source_package == target_package)):
+                    # check if the devel project & package are using scmsync & 
match the allowed prj prefix
+                    # => waive the devel project source submission requirement
+                    meta = ET.fromstringlist(show_package_meta(self.apiurl, 
devel_project, devel_package))
+                    scm_sync = meta.find('scmsync')
+                    if (
+                            not scm_sync or
+                            (
+                                scm_sync and
+                                not 
scm_sync.text.startswith(f"https://src.opensuse.org/pool/{source_package}";)
+                                and all(not 
source_project.startswith(allowed_src) for allowed_src in 
self.allowed_scm_submission_sources)
+                            )
+                    ):
+                        # Not from proper devel project/package and not 
self-submission and not scmsync.
+                        self.review_messages['declined'] = 'Expected 
submission from devel package %s/%s' % (
+                            devel_project, devel_package)
+                        return False
             else:
                 # Check to see if other packages exist with the same source 
project
                 # which indicates that the project has already been used as 
devel.

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.64z1Xj/_old  2023-06-27 23:18:33.552059858 +0200
+++ /var/tmp/diff_new_pack.64z1Xj/_new  2023-06-27 23:18:33.552059858 +0200
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20230622.459489f
-mtime: 1687444951
-commit: 459489fa072029ea908996e2015712125a22373e
+version: 20230627.8db5f62
+mtime: 1687878887
+commit: 8db5f6242cb5018068a0b9019454ea331a3665e4
 

Reply via email to