From 9f80bf2a9ea032c64d1d0564b8731bfe4562a492 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 2 Oct 2019 09:58:07 +0200 Subject: [PATCH] tools/rewrite-git-redirects.py: use canonical gitlab URLs for Repo: ```console $ git clone https://gitlab.com/fdroid/ci-images-base.git Cloning into 'ci-images-base'... remote: Enumerating objects: 89, done. remote: Counting objects: 100% (89/89), done. remote: Compressing objects: 100% (50/50), done. remote: Total 89 (delta 51), reused 68 (delta 39) Unpacking objects: 100% (89/89), done. $ rm -rf ci-images-base/ $ git clone https://gitlab.com/fdroid/ci-images-base Cloning into 'ci-images-base'... warning: redirecting to https://gitlab.com/fdroid/ci-images-base.git/ remote: Enumerating objects: 89, done. remote: Counting objects: 100% (89/89), done. remote: Compressing objects: 100% (50/50), done. remote: Total 89 (delta 51), reused 68 (delta 39) Unpacking objects: 100% (89/89), done. ``` --- tools/rewrite-git-redirects.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 tools/rewrite-git-redirects.py diff --git a/tools/rewrite-git-redirects.py b/tools/rewrite-git-redirects.py new file mode 100755 index 0000000000..51c6378b3c --- /dev/null +++ b/tools/rewrite-git-redirects.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +# +# +# GitLab gives a warning every time if the git URL is redirected. So this +# rewrites all GitLab URLs so they are no longer a redirect. + +import glob +import os +import re +import sys +import yaml + +os.chdir(os.path.dirname(__file__) + '/../') + +if len(sys.argv) > 1: + files = sys.argv[1:] +else: + files = sorted(glob.glob('metadata/*.yml')) + +pattern = re.compile(r'Repo: .*') +for f in files: + with open(f) as fp: + data = yaml.load(fp) + repo_url = None + if 'Repo' in data: + repo_url = data['Repo'].strip().rstrip('/') + if repo_url and not repo_url.endswith('.git') and repo_url.startswith('https://gitlab'): + new_url = repo_url + '.git' + print("Repo:", data['Repo'], "\n --> " + new_url + "'") + with open(f) as fp: + raw = fp.read() + with open(f, 'w') as fp: + fp.write(pattern.sub('Repo: ' + new_url, raw))