From 9660e633af5ac0bb64544b998d0b9e262a942165 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Thu, 8 Aug 2024 17:56:41 +0200 Subject: [PATCH] Parametrizes git import parameters --- README.md | 19 ++++++++++++++++--- lib/git.py | 18 +++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e35a999..cc899f3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,18 @@ -sudo zypper in python3-psycopg -sudo su - postgres -# `createdb -O imported_git` +Installation +------------ + + sudo zypper in python3-psycopg + sudo su - postgres + createdb -O imported_git` To reset the database, drop table scheme + + +Gitea parameters +---------------- + + * `GITEA_HOST` - default: src.opensuse.org + * `GITEA_USER` - Used to generate SSH links for push. Default: gitea + * `GITEA_ORG` - target organization to push to + * `GITEA_DEFAULT_BRANCH` - default branch + diff --git a/lib/git.py b/lib/git.py index 2fa647e..9cf5ea0 100644 --- a/lib/git.py +++ b/lib/git.py @@ -252,15 +252,27 @@ class Git: def add_gitea_remote(self, package): repo_name = package.replace("+", "_") org_name = "rpm" + gitea_user = "gitea" + gitea_host = "src.opensuse.org" + default_branch = "factory" + + if os.getenv("GITEA_HOST"): + gitea_host = getenv("GITEA_HOST") + if os.getenv("GITEA_USER"): + gitea_user = getenv("GITEA_USER") + if os.getenv("GITEA_ORG"): + org_name = getenv("GITEA_ORG") + if os.getenv("GITEA_DEFAULT_BRANCH"): + default_branch = getenv("GITEA_DEFAULT_BRANCH") if not os.getenv("GITEA_TOKEN"): logging.warning("Not adding a remote due to missing $GITEA_TOKEN") return - url = f"https://src.opensuse.org/api/v1/org/{org_name}/repos" + url = f"https://{gitea_host}/api/v1/org/{org_name}/repos" response = requests.post( url, - data={"name": repo_name, "object_format_name": "sha256"}, + data={"name": repo_name, "object_format_name": "sha256", "default_branch": default_branch}, headers={"Authorization": f"token {os.getenv('GITEA_TOKEN')}"}, timeout=10, ) @@ -268,7 +280,7 @@ class Git: # 201 Created if response.status_code not in (201, 409): print(response.data) - url = f"gitea@src.opensuse.org:{org_name}/{repo_name}.git" + url = f"{gitea_user}@{gitea_host}:{org_name}/{repo_name}.git" self.git_run( ["remote", "add", "origin", url], )