1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-21 17:52:14 +01:00

Merge pull request #1698 from dmach/noobsinfo

Avoid fetching _scmsync.obsinfo when scmsync url contains 'noobsinfo' query parameter
This commit is contained in:
Daniel Mach 2025-02-03 16:35:01 +01:00 committed by GitHub
commit 56ac6198a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View File

@ -1941,6 +1941,7 @@ def get_config(override_conffile=None,
ini_key = field.extra.get("ini_key", name) ini_key = field.extra.get("ini_key", name)
known_ini_keys.add(ini_key) known_ini_keys.add(ini_key)
known_ini_keys.add(name)
# iterate through aliases and store the value of the the first env that matches OSC_HOST_{ALIAS}_{NAME} # iterate through aliases and store the value of the the first env that matches OSC_HOST_{ALIAS}_{NAME}
env_value = None env_value = None
@ -1993,6 +1994,7 @@ def get_config(override_conffile=None,
for name, field in config.__fields__.items(): for name, field in config.__fields__.items():
ini_key = field.extra.get("ini_key", name) ini_key = field.extra.get("ini_key", name)
known_ini_keys.add(ini_key) known_ini_keys.add(ini_key)
known_ini_keys.add(name)
env_key = f"OSC_{name.upper()}" env_key = f"OSC_{name.upper()}"
# priority: env, overrides, config # priority: env, overrides, config

View File

@ -31,7 +31,7 @@ from http.client import IncompleteRead
from io import StringIO from io import StringIO
from pathlib import Path from pathlib import Path
from typing import Optional, Dict, Union, List, Iterable from typing import Optional, Dict, Union, List, Iterable
from urllib.parse import urlsplit, urlunsplit, urlparse, quote, urlencode, unquote from urllib.parse import parse_qs, urlsplit, urlunsplit, urlparse, quote, urlencode, unquote
from urllib.error import HTTPError from urllib.error import HTTPError
from xml.etree import ElementTree as ET from xml.etree import ElementTree as ET
@ -3168,14 +3168,16 @@ def checkout_package(
if not native_obs_package and scmsync_element is not None and scmsync_element.text is not None: if not native_obs_package and scmsync_element is not None and scmsync_element.text is not None:
directory = make_dir(apiurl, project, package, pathname, prj_dir, conf.config['do_package_tracking'], outdir) directory = make_dir(apiurl, project, package, pathname, prj_dir, conf.config['do_package_tracking'], outdir)
if revision is not None: scm_url = scmsync_element.text
fetch_obsinfo = "noobsinfo" not in parse_qs(urlparse(scm_url).query)
if revision is not None and fetch_obsinfo:
# search for the git sha sum based on the OBS DISTURL package source revision # search for the git sha sum based on the OBS DISTURL package source revision
# we need also take into account that the url was different at that point of time # we need also take into account that the url was different at that point of time
from .obs_api.scmsync_obsinfo import ScmsyncObsinfo from .obs_api.scmsync_obsinfo import ScmsyncObsinfo
scmsync_obsinfo = ScmsyncObsinfo.from_api(apiurl, project, package, rev=revision) scmsync_obsinfo = ScmsyncObsinfo.from_api(apiurl, project, package, rev=revision)
scm_url = f"{scmsync_obsinfo.url}#{scmsync_obsinfo.revision}" scm_url = f"{scmsync_obsinfo.url}#{scmsync_obsinfo.revision}"
scm_url = scmsync_element.text
run_obs_scm_bridge(url=scm_url, target_dir=directory) run_obs_scm_bridge(url=scm_url, target_dir=directory)
Package.init_package(apiurl, project, package, directory, size_limit, meta, progress_obj, scm_url) Package.init_package(apiurl, project, package, directory, size_limit, meta, progress_obj, scm_url)