Changeset - ca8f597c8fa8
[Not reviewed]
default
0 1 0
Mads Kiilerich - 6 years ago 2019-07-31 02:29:36
mads@kiilerich.com
clone_url: use regexp and single pass for variable expansion - avoid nested expansion in case a variable value would contain a variable reference

It would probably never be a problem in real life, but just avoid the tech debt
of doing it wrong ...
1 file changed with 2 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/utils2.py
Show inline comments
 
@@ -422,12 +422,10 @@ def get_clone_url(clone_uri_tmpl, prefix
 
        'repo': repo_name,
 
        'repoid': str(repo_id),
 
    }
 

	
 
    for k, v in args.items():
 
        clone_uri_tmpl = clone_uri_tmpl.replace('{%s}' % k, v)
 
    url = re.sub('{([^{}]+)}', lambda m: args.get(m.group(1), m.group(0)), clone_uri_tmpl)
 

	
 
    # remove leading @ sign if it's present. Case of empty user
 
    url_obj = urlobject.URLObject(clone_uri_tmpl)
 
    url_obj = urlobject.URLObject(url)
 
    url = url_obj.with_netloc(url_obj.netloc.lstrip('@'))
 

	
 
    return safe_unicode(url)
0 comments (0 inline, 0 general)