Skip to content
Snippets Groups Projects
Commit 504c9ed0 authored by nimrod's avatar nimrod
Browse files

git-manage: Refactor archive_repo.

Address pylint warnings. Make a clear seperation of GitHub and GitLab
repo handling. Don't try to create a GitHub connection if there are no
GitHub mirrors.
parent 7f676ac1
No related branches found
No related tags found
No related merge requests found
......@@ -345,38 +345,44 @@ def archive_repo(args):
Does the following:
- Archives the repository (sets it to read-only).
- Archives all GitHub mirrors.
- Archives all GitHub mirrors (for a GitLab project).
"""
try:
gh_conn = rcfiles.github.connect()
except Exception as e: # pylint: disable=broad-except
error(f"Failed to connect to GitHub: {e}")
if not args.github:
if args.github:
try:
gl_conn = rcfiles.gitlab.connect()
gh_conn = rcfiles.github.connect()
except Exception as e: # pylint: disable=broad-except
error(f"Failed to connect to GitLab: {e}")
if args.github:
error(f"Failed to connect to GitHub: {e}")
owner, name = guess_name(args, gh_conn=gh_conn, gl_conn=None).split(
"/"
)
else:
name = guess_name(args, gh_conn=None, gl_conn=gl_conn)
if args.github:
repo = gh_conn.repository(owner, name)
repo.edit(name, archived=True)
print(f"Archived repository {repo.html_url}.", file=sys.stderr)
else:
try:
gl_conn = rcfiles.gitlab.connect()
except Exception as e: # pylint: disable=broad-except
error(f"Failed to connect to GitLab: {e}")
name = guess_name(args, gh_conn=None, gl_conn=gl_conn)
project = gl_conn.projects.get(name)
project.archive()
print(f"Archived repository {project.web_url}.", file=sys.stderr)
for mirror in github_mirrors(project, gh_conn):
mirror.edit(mirror.name, archived=True)
print(
f"Archived GitHub mirror {mirror.html_url}.", file=sys.stderr
)
# Archive the GitHub mirrors if there are any.
remotes = rcfiles.git.get_all_remotes()
if len(remotes) > 1 and any(
map(lambda x: "github.com" in x["url"], remotes.values())
):
try:
gh_conn = rcfiles.github.connect()
except Exception as e: # pylint: disable=broad-except
error(f"Failed to connect to GitHub: {e}")
for mirror in github_mirrors(project, gh_conn):
mirror.edit(mirror.name, archived=True)
print(
f"Archived GitHub mirror {mirror.html_url}.",
file=sys.stderr,
)
def fork_repo(args):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment