diff --git a/.gitignore b/.gitignore index 4cbb844..d079163 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ develop-eggs .installed.cfg lib lib64 +.env # Installer logs pip-log.txt diff --git a/hc_tools/test.py b/hc_tools/test.py new file mode 100644 index 0000000..bd5f796 --- /dev/null +++ b/hc_tools/test.py @@ -0,0 +1,87 @@ + +import logging +import git +import json +import pathlib +import os +import argparse + +from github import Auth +from github import Github + + +def get_git_token(args): + auth = '' + print(args.git_token) + if args.git_token: + auth = args.git_token + elif os.environ('GIT_TOKEN'): + auth = os.environ('GIT_TOKEN') + else: + raise Exception('No valid Auth Token ') + return auth + + +def fix_repos(args): + # get Auth information + auth = get_git_token(args) + workdir = pathlib.Path(args.work_dir) + branch = "main" + + if args.target_environment == 'public': + g = Github(auth=auth) + org = g.get_organization("opentelekomcloud-docs") + + repos = [] + + for repo in org.get_repos(): + repos.append(repo.full_name) + + for r in repos: + repo = g.get_repo(r) + print(repo.clone_url) + git.Repo.clone_from(repo.clone_url, to_path=workdir + repo.name, branch=branch) + break + + +def main(): + parser = argparse.ArgumentParser( + description="Update conf.py file in repositories." + ) + parser.add_argument( + "--git-token", + help="Git Token for git Authentication" + ) + parser.add_argument( + "--target-environment", + required=True, + choices=['public', 'internal', 'public-swiss', 'internal-swiss'], + help="Environment to be used as a source\n" + "public: Github Org: opentelekomcloud-docs/\n" + "internal: Gitea Org: docs/\n" + "internal-swiss: Gitea Org: docs/\n" + "public-swiss: GitHub Org: opentelekomcloud-docs-swiss/\n" + ) + parser.add_argument( + "--work-dir", + required=True, + help="Working directory to use for repository checkout.", + ) + parser.add_argument( + "--commit-description", + default=( + "Update tox.ini && conf.py file\n\n" + "Performed-by: gitea/infra/hc-tools/" + "/test.py" + ), + help="Commit description for the commit", + ) + + args = parser.parse_args() + logging.basicConfig(level=logging.DEBUG) + + fix_repos(args) + + +if __name__ == "__main__": + main()