diff options
| author | Georg | 2021-09-13 14:59:35 +0200 | 
|---|---|---|
| committer | Georg | 2021-09-13 14:59:35 +0200 | 
| commit | 6204a4b5dd1eb16aa30027a1e682ea5d8c37ff00 (patch) | |
| tree | e4edd6fe53a2e461ac3ebca1517a8a1a664fddbe | |
| parent | cf280fd9b0bd0bf63abb86739d1dced63a747199 (diff) | |
| download | git-6204a4b5dd1eb16aa30027a1e682ea5d8c37ff00.tar.gz git-6204a4b5dd1eb16aa30027a1e682ea5d8c37ff00.tar.bz2 git-6204a4b5dd1eb16aa30027a1e682ea5d8c37ff00.zip  | |
Gitea -> cgit description syncer
Signed-off-by: Georg <georg@lysergic.dev>
| -rw-r--r-- | scripts/.env | 3 | ||||
| -rwxr-xr-x | scripts/gitea_cgit_description_syncer.py | 57 | 
2 files changed, 60 insertions, 0 deletions
diff --git a/scripts/.env b/scripts/.env new file mode 100644 index 0000000..a72fcd4 --- /dev/null +++ b/scripts/.env @@ -0,0 +1,3 @@ +ENDPOINT_GITEA=https://git.com.de +TOKEN_GITEA= +LOCAL_PATH=/var/lib/git/gitea-repositories/libertacasa diff --git a/scripts/gitea_cgit_description_syncer.py b/scripts/gitea_cgit_description_syncer.py new file mode 100755 index 0000000..0a878e1 --- /dev/null +++ b/scripts/gitea_cgit_description_syncer.py @@ -0,0 +1,57 @@ +#!/usr/bin/python3 +import requests +import sys +import os +from dotenv import load_dotenv +from pathlib2 import Path + +if len(sys.argv) >= 2: +    owner = sys.argv[1] +    repo = sys.argv[2] +else: +    print("Specify the repository owner and name") +    sys.exit(1) + +load_dotenv() +# GITEA SETTINGS +endpoint_gitea = os.environ.get('ENDPOINT_GITEA') +token_gitea = os.environ.get('TOKEN_GITEA') + +# CGIT SETTINGS +local_path = os.environ.get('LOCAL_PATH') + +if None in (endpoint_gitea, token_gitea, local_path): +    print("Could not load environment variables. Please check your .env file.") +    sys.exit(0) + +URL = endpoint_gitea + '/api/v1/repos/' + owner + '/' + repo +try: +    response = requests.get( +    URL, +    headers = {'accept': 'application/json', 'Authorization': token_gitea}, +    ) +    status = response.status_code +    if status == 200: +        data = response.json() +        description_gitea = data['description'] +        print(f"Description (Gitea): {description_gitea}") +    else: +        print('Error: ', status) +except KeyError: +    print("No or faulty description found in Gitea. ABORTING.") +    sys.exit(1) +except requests.exceptions.ConnectionError as err: +    print("Connection failed.") +    sys.exit(1) +except requests.exceptions.HTTPError as err: +    print(err) +    sys.exit(1) +file_path = local_path + '/' + repo + '.git/description' +file_content = Path(file_path).read_text() +description_local = file_content.replace('\n', '') +print(f"Description (Local): {description_local}") +if description_gitea == description_local: +    print("Matches, nothing to change.") +else: +    print("Does not match, replacing local file.") +    Path(file_path).write_text(description_gitea)  | 
