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