Skip to content
Snippets Groups Projects
Unverified Commit fd4665dd authored by Andrej Shadura's avatar Andrej Shadura
Browse files

Allow projects with more than 3 components in the name


The fork implementation previously assumed 3 components in the name,
so packages with an extra component failed to copy over:
apertis:v2022:updates:target would become apertis:v2022:target.

Signed-off-by: Andrej Shadura's avatarAndrej Shadura <andrew.shadura@collabora.co.uk>
parent df546909
No related branches found
No related tags found
1 merge request!3Allow projects with more than 3 components in the name
Pipeline #40206 passed
...@@ -286,11 +286,30 @@ def do_clone(self, subcmd, opts, src_project, dst_project): ...@@ -286,11 +286,30 @@ def do_clone(self, subcmd, opts, src_project, dst_project):
copy_project_meta(apiurl, src_project, dst_project, keep_metadata=opts.keep_metadata) copy_project_meta(apiurl, src_project, dst_project, keep_metadata=opts.keep_metadata)
def mangle_prjname(name: str, src_distro: str, dst_distro: str) -> str:
"""
Generate a new project name
>>> mangle_prjname("apertis:v2022:development", "apertis:v2022", "apertis:v2024")
'apertis:v2024:development'
>>> mangle_prjname("apertis:v2022:updates:target", "apertis:v2022", "apertis:v2024")
'apertis:v2024:updates:target'
>>> mangle_prjname("apertis:v2022pre:updates:target", "apertis:v2022", "apertis:v2024")
'apertis:v2022pre:updates:target'
"""
return name.replace(src_distro + ':', dst_distro + ':')
def do_fork(self, subcmd, opts, src_distro, dst_distro): def do_fork(self, subcmd, opts, src_distro, dst_distro):
apiurl = conf.config['apiurl'] apiurl = conf.config['apiurl']
projects = core.meta_get_project_list(apiurl) projects = core.meta_get_project_list(apiurl)
src_distro_projects = [p for p in projects if p.startswith(src_distro + ':')] src_distro_projects = [
dst_distro_projects = [dst_distro + ':' + p.split(':')[-1] for p in src_distro_projects] p for p in projects if p.startswith(src_distro + ':')
]
dst_distro_projects = [
mangle_prjname(p, src_distro, dst_distro) for p in src_distro_projects
]
if src_distro in projects: if src_distro in projects:
msg = "%s is a project" % src_distro msg = "%s is a project" % src_distro
if not src_distro_projects: if not src_distro_projects:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment