Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package obs-service-tar_scm for 
openSUSE:Factory checked in at 2026-04-29 19:17:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-tar_scm (Old)
 and      /work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "obs-service-tar_scm"

Wed Apr 29 19:17:33 2026 rev:90 rq:1349710 version:0.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-tar_scm/obs-service-tar_scm.changes  
2026-04-11 22:23:00.428110086 +0200
+++ 
/work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.30200/obs-service-tar_scm.changes
       2026-04-29 19:18:13.074000822 +0200
@@ -1,0 +2,8 @@
+Mon Apr 27 15:02:46 UTC 2026 - Frank Schreiner <[email protected]>
+
+- Update to version 0.12.0:
+  * re-add and fix partial clone filter
+  * refactor auth_url
+  * make sure that parameter "match_tag" is used
+
+-------------------------------------------------------------------

Old:
----
  obs-service-tar_scm-0.11.1.tar.gz

New:
----
  obs-service-tar_scm-0.12.0.tar.gz

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

Other differences:
------------------
++++++ obs-service-tar_scm.spec ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old  2026-04-29 19:18:13.990038338 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new  2026-04-29 19:18:13.998038665 +0200
@@ -123,8 +123,8 @@
 
 %define pkg_name obs-service-tar_scm
 Name:           %{pkg_name}%{nsuffix}
-%define version_unconverted 0.11.1
-Version:        0.11.1
+%define version_unconverted 0.12.0
+Version:        0.12.0
 Release:        0
 Summary:        An OBS source service: create tar ball from svn/git/hg
 License:        GPL-2.0-or-later

++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old  2026-04-29 19:18:14.082042106 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new  2026-04-29 19:18:14.098042761 +0200
@@ -1,5 +1,5 @@
 pkgname=obs-service-tar_scm
-pkgver=0.11.1
+pkgver=0.12.0
 pkgrel=0
 pkgdesc="Source Service for the OpenSUSE Build Service (OBS)"
 arch=('any')


++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old  2026-04-29 19:18:14.194046693 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new  2026-04-29 19:18:14.206047184 +0200
@@ -12,7 +12,7 @@
   </service>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/obs-service-tar_scm.git</param>
-    <param 
name="changesrevision">908faf0fe742eaa86bf513ae2c853454d2aa7a3c</param>
+    <param 
name="changesrevision">77c523cce41c1757acd91054208fe8b71c121366</param>
   </service>
 </servicedata>
 (No newline at EOF)

++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old  2026-04-29 19:18:14.274049969 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new  2026-04-29 19:18:14.282050297 +0200
@@ -1,6 +1,6 @@
 Format: 1.0
 Source: obs-service-tar-scm
-Version: 0.11.1
+Version: 0.12.0
 Provides: obs-service-obs_scm, obs-service-tar, obs-service-gbp
 Binary: obs-service-tar_scm
 Maintainer: Adrian Schroeter <[email protected]>

++++++ obs-service-tar_scm-0.11.1.tar.gz -> obs-service-tar_scm-0.12.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/base.py 
new/obs-service-tar_scm-0.12.0/TarSCM/scm/base.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/base.py   2026-04-02 
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/base.py   2026-04-27 
16:18:53.000000000 +0200
@@ -54,6 +54,8 @@
         self.args           = args
         self.task           = task
         self.url            = args.url
+        self.org_url        = None
+        self.credentials_re = None
 
         self.in_osc = bool(os.getenv('OSC_VERSION'))
 
@@ -99,35 +101,22 @@
             self._revert_gpg_settings()
 
     def auth_url(self):
-        if self.scm not in ('bzr', 'git', 'hg'):
+        auth_patterns = {
+            'bzr' : r'^((?:ftp|bzr|https?)://)(.*)',
+            'git' : r'^((?:ftps?|https?)://)(.*)',
+            'hg'  : r'^(https?://)(.*)',
+        }
+
+        if self.org_url:
+            return
+
+        if not auth_patterns.get(self.scm, None):
             return
-        auth_patterns = {}
-        auth_patterns['bzr'] = {}
-        auth_patterns['bzr']['proto']   = r'^(ftp|bzr|https?)://.*'
-        auth_patterns['bzr']['already'] = r'^(ftp|bzr|https?)://.*:.*@.*'
-        auth_patterns['bzr']['sub']     = r'^((ftp|bzr|https?)://)(.*)'
-        auth_patterns['bzr']['format']  = r'\g<1>{user}:{pwd}@\g<3>'
-        auth_patterns['git'] = {}
-        auth_patterns['git']['proto']   = r'^(ftps?|https?)://.*'
-        auth_patterns['git']['already'] = r'^(ftps?|https?)://.*:.*@.*'
-        auth_patterns['git']['sub']     = r'^((ftps?|https?)://)(.*)'
-        auth_patterns['git']['format']  = r'\g<1>{user}:{pwd}@\g<3>'
-        auth_patterns['hg'] = {}
-        auth_patterns['hg']['proto']   = r'^https?://.*'
-        auth_patterns['hg']['already'] = r'^https?://.*:.*@.*'
-        auth_patterns['hg']['sub']     = r'^(https?://)(.*)'
-        auth_patterns['hg']['format']  = r'\g<1>{user}:{pwd}@\g<2>'
 
         if self.user and self.password:
-            pattern_proto = re.compile(auth_patterns[self.scm]['proto'])
-            pattern = re.compile(auth_patterns[self.scm]['already'])
-            if pattern_proto.match(self.url) and not pattern.match(self.url):
-                logging.debug('[auth_url] settings credentials from keyring')
-                self.url = re.sub(auth_patterns[self.scm]['sub'],
-                                  auth_patterns[self.scm]['format'].format(
-                                      user=self.user,
-                                      pwd=self.password),
-                                  self.url)
+            self.org_url = self.url
+            logging.debug('[auth_url] settings credentials from keyring')
+            self.url = re.sub(auth_patterns[self.scm], 
f"\\1{self.user}:{self.password}@\\2", self.url)
 
     def check_scm(self):
         '''check version of scm to proof, it is installed and executable'''
@@ -203,7 +192,8 @@
             for filename in glob.glob(old_changes_glob):
                 shutil.copy2(filename, os.getcwd())
 
-        chgs = self.changes.read_changes_revision(self.url, os.getcwd(),
+        url  = (self.org_url or self.url)
+        chgs = self.changes.read_changes_revision(url, os.getcwd(),
                                                   self.args.outdir)
 
         logging.debug("CHANGES: %s", repr(chgs))
@@ -415,6 +405,16 @@
     def check_url(self):
         return True
 
+    def run_and_hide(self, command, wdir, cleanup_dirs=[]):
+        try:
+            self.helpers.safe_run(
+                command, cwd=wdir, interactive=sys.stdout.isatty())
+        except SystemExit as exc:
+            for cdir in cleanup_dirs:
+                os.removedirs(cdir)
+            exc = re.sub(self.url, self.org_url, str(exc))
+            raise SystemExit(exc)
+
     def _prepare_gpg_settings(self):
         logging.debug("preparing gpg settings")
         self._backup_gnupghome = os.getenv('GNUPGHOME')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/bzr.py 
new/obs-service-tar_scm-0.12.0/TarSCM/scm/bzr.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/bzr.py    2026-04-02 
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/bzr.py    2026-04-27 
16:18:53.000000000 +0200
@@ -24,7 +24,7 @@
         if not self.is_sslverify_enabled():
             command.insert(2, '-Ossl.cert_reqs=None')
         wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
-        self.helpers.safe_run(command, wdir, interactive=sys.stdout.isatty())
+        self.run_and_hide(command, wdir)
 
     def update_cache(self):
         """Update sources via bzr."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/git.py 
new/obs-service-tar_scm-0.12.0/TarSCM/scm/git.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/git.py    2026-04-02 
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/git.py    2026-04-27 
16:18:53.000000000 +0200
@@ -146,13 +146,10 @@
             command += ['--config', 'http.sslverify=false']
         if self.repocachedir and not self.partial_clone:
             command.insert(command.index('clone') + 1, '--mirror')
+
         wdir = os.path.abspath(os.path.join(self.repodir, os.pardir))
-        try:
-            self.helpers.safe_run(
-                command, cwd=wdir, interactive=sys.stdout.isatty())
-        except SystemExit as exc:
-            os.removedirs(os.path.join(wdir, self.clone_dir))
-            raise exc
+        self.run_and_hide(command, wdir, [os.path.join(wdir, self.clone_dir)])
+
         if self.partial_clone:
             config_command = self._get_scm_cmd() + ['config', '--local',
                                                     'extensions.partialClone',
@@ -192,10 +189,7 @@
             if self.partial_clone:
                 command.insert(-2, '--filter=tree:0')
             # fetch reference from url and create locally
-            self.helpers.safe_run(
-                command,
-                cwd=self.clone_dir, interactive=sys.stdout.isatty()
-            )
+            self.run_and_hide(command, self.clone_dir)
 
     def fetch_submodules(self):
         """Recursively initialize git submodules."""
@@ -255,11 +249,7 @@
             if self.partial_clone:
                 command.append('--filter=tree:0')
 
-            self.helpers.safe_run(
-                command,
-                cwd=self.clone_dir,
-                interactive=sys.stdout.isatty()
-            )
+            self.run_and_hide(command, self.clone_dir)
 
         except SystemExit as exc:
             logging.error("Corrupt clone_dir '%s' detected.", self.clone_dir)
@@ -283,7 +273,7 @@
             versionformat = '%ct.%h'
 
         if not self._parent_tag:
-            self._parent_tag = self._detect_parent_tag(args)
+            self._parent_tag = self._detect_parent_tag()
 
         if re.match('.*@PARENT_TAG@.*', versionformat):
             versionformat = self._detect_version_parent_tag(
@@ -307,14 +297,12 @@
         version = self.helpers.safe_run(log_cmd, self.clone_dir)[1]
         return version
 
-    def _detect_parent_tag(self, args=None):
+    def _detect_parent_tag(self):
         parent_tag = ''
         cmd = self._get_scm_cmd() + ['describe', '--tags', '--abbrev=0']
-        try:
-            if args and args['match_tag']:
-                cmd.append("--match=%s" % args['match_tag'])
-        except KeyError:
-            pass
+        if self.args.match_tag:
+            cmd.append("--match=%s" % self.args.match_tag)
+
         rcode, output = self.helpers.run_cmd(cmd, self.clone_dir)
 
         if rcode == 0:
@@ -441,8 +429,9 @@
             command.append(org_clone_dir)
         command.append(self.clone_dir)
         wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
-        self.helpers.safe_run(
-            command, cwd=wdir, interactive=sys.stdout.isatty())
+
+        self.run_and_hide(command, wdir)
+
         if self.partial_clone:
             config_command = self._get_scm_cmd() + ['config', '--local',
                                                     'extensions.partialClone',
@@ -469,10 +458,10 @@
 
         if self.revision and not self._ref_exists(self.revision):
             refspec = self.revision + ":" + self.revision
-            if self.partial_clone:
-                command.insert(-3, '--filter=tree:0')
             cmd = self._get_scm_cmd() + ['fetch', 'origin',
                                          refspec]
+            if self.partial_clone:
+                cmd.insert(-3, '--filter=tree:0')
             self.helpers.safe_run(
                 cmd, cwd=self.clone_dir, interactive=sys.stdout.isatty())
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/hg.py 
new/obs-service-tar_scm-0.12.0/TarSCM/scm/hg.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/hg.py     2026-04-02 
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/hg.py     2026-04-27 
16:18:53.000000000 +0200
@@ -63,8 +63,7 @@
         if not self.is_sslverify_enabled():
             command += ['--insecure']
         wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
-        self.helpers.safe_run(command, wdir,
-                              interactive=sys.stdout.isatty())
+        self.run_and_hide(command, wdir)
 
     def update_cache(self):
         """Update sources via hg."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/tests/gittests.py 
new/obs-service-tar_scm-0.12.0/tests/gittests.py
--- old/obs-service-tar_scm-0.11.1/tests/gittests.py    2026-04-02 
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/tests/gittests.py    2026-04-27 
16:18:53.000000000 +0200
@@ -314,7 +314,7 @@
         f_tasks = FakeTasks()
         git = Git(f_args, f_tasks)
 
-        p_tag = git._detect_parent_tag(f_args)
+        p_tag = git._detect_parent_tag()
         self.assertEqual(p_tag, '')
 
     def test_changesgenerate_unicode(self):

Reply via email to