diff --git a/main.py b/main.py index b8b0ea0..4af4a6a 100755 --- a/main.py +++ b/main.py @@ -12,6 +12,8 @@ from src.Github.Github import Github as Github from src.SshKeyRepositoryParser.SshKeyRepositoryParserEpitech import \ SshKeyRepositoryParserEpitech +import os +from github import GithubException DEFAULT_COMMIT: str = "CI/CD push" @@ -27,6 +29,42 @@ class bcolors: BOLD = '\033[1m' UNDERLINE = '\033[4m' +def check_all(github: Github, + sshParser: SshKeyRepositoryParserEpitech, + mirror_name: str): + try: + organization = github.get_organization(sshParser.organizationName) + except GithubException as err: + print(f"{bcolors.FAIL}" + "ERROR: Unable to find organization " + f"\"{sshParser.organizationName}\": " + f"{str(err.args[1]['message'])}{bcolors.ENDC}") + if err.args[1]['message'] == "Bad credentials": + print(f"{bcolors.HEADER}" + "You maybe need to change the token in data.json" + f"{bcolors.ENDC}") + exit(84) + try: + repository = organization.get_repo(sshParser.repositoryName) + except Exception as err: + print(f"{bcolors.FAIL}" + "ERROR: Unable to find repository " + f"\"{sshParser.repositoryName}\": " + f"{str(err.args[1]['message'])}{bcolors.ENDC}") + exit(84) + user = github.get_user() + try: + user.get_repo(mirror_name) + print(f"{bcolors.FAIL}" + "ERROR: Unable to create repository: " + f"{mirror_name} already exist{bcolors.ENDC}") + exit(84) + except Exception as err: + pass + if os.path.isdir(sshParser.projectName): + print(f"{bcolors.FAIL}ERROR: Unable to create directory: " + f"{sshParser.projectName} directory already exist{bcolors.ENDC}") + exit(84) def main(): args = argumentManager() @@ -45,7 +83,10 @@ def main(): mirror_name = f"{sshParser.projectName}-mirror" if args.mirror_name is not None: mirror_name = args.mirror_name[0] - commit = (args.commit[0] if (args.commit is not None) else DEFAULT_COMMIT) + commit = DEFAULT_COMMIT + if args.commit is not None: + commit = args.commit[0] + check_all(github, sshParser, mirror_name) generate_mirror(sshParser.organizationName, sshParser.repositoryName, github, mirror_name) generate_folders_with_repo(sshParser.sshKey, sshParser.projectName, diff --git a/tests/BashUtils/__init__.py b/tests/BashUtils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/BashUtils/testBashUtils.py b/tests/BashUtils/testBashUtils.py deleted file mode 100644 index 5f1fb22..0000000 --- a/tests/BashUtils/testBashUtils.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python3 -# @Miou-zora Project, Mirror-Generator, 2023 - -import unittest -from src.Utils.BashUtils import BashUtils -import os - - -class TestBashUtils(unittest.TestCase): - def __init__(self, methodName: str = "runTest") -> None: - super().__init__(methodName) - - def test_mkdir(self): - folder_name = "test_folder" - if os.path.exists(folder_name): - self.fail("Folder already exist: " + folder_name) - BashUtils.mkdir(folder_name) - if not os.path.exists(folder_name): - self.fail("Folder not created: " + folder_name) - os.rmdir(folder_name)