mirror of
https://github.com/openSUSE/osc.git
synced 2025-11-10 16:13:18 +01:00
Change 'git-obs' to use owner/repo[#pull] arguments consistently
This commit is contained in:
@@ -12,8 +12,7 @@ class RepoForkCommand(osc.commandline_git.GitObsCommand):
|
||||
parent = "RepoCommand"
|
||||
|
||||
def init_arguments(self):
|
||||
self.add_argument_owner()
|
||||
self.add_argument_repo()
|
||||
self.add_argument_owner_repo(nargs="+")
|
||||
self.add_argument_new_repo_name()
|
||||
|
||||
def run(self, args):
|
||||
@@ -22,15 +21,35 @@ class RepoForkCommand(osc.commandline_git.GitObsCommand):
|
||||
|
||||
self.print_gitea_settings()
|
||||
|
||||
print(f"Forking git repo {args.owner}/{args.repo} ...", file=sys.stderr)
|
||||
try:
|
||||
response = gitea_api.Fork.create(self.gitea_conn, args.owner, args.repo, new_repo_name=args.new_repo_name)
|
||||
repo = response.json()
|
||||
fork_owner = repo["owner"]["login"]
|
||||
fork_repo = repo["name"]
|
||||
print(f" * Fork created: {fork_owner}/{fork_repo}", file=sys.stderr)
|
||||
except gitea_api.ForkExists as e:
|
||||
fork_owner = e.fork_owner
|
||||
fork_repo = e.fork_repo
|
||||
print(f" * Fork already exists: {fork_owner}/{fork_repo}", file=sys.stderr)
|
||||
print(f" * {tty.colorize('WARNING', 'yellow,bold')}: Using an existing fork with a different name than requested", file=sys.stderr)
|
||||
if len(args.owner_repo) > 1 and args.new_repo_name:
|
||||
self.parser.error("The --new-repo-name option cannot be used with multiple repos")
|
||||
|
||||
num_entries = 0
|
||||
failed_entries = []
|
||||
for owner, repo in args.owner_repo:
|
||||
print(f"Forking git repo {owner}/{repo} ...", file=sys.stderr)
|
||||
try:
|
||||
response = gitea_api.Fork.create(self.gitea_conn, owner, repo, new_repo_name=args.new_repo_name)
|
||||
repo = response.json()
|
||||
fork_owner = repo["owner"]["login"]
|
||||
fork_repo = repo["name"]
|
||||
print(f" * Fork created: {fork_owner}/{fork_repo}", file=sys.stderr)
|
||||
num_entries += 1
|
||||
except gitea_api.ForkExists as e:
|
||||
fork_owner = e.fork_owner
|
||||
fork_repo = e.fork_repo
|
||||
print(f" * Fork already exists: {fork_owner}/{fork_repo}", file=sys.stderr)
|
||||
print(f" * {tty.colorize('WARNING', 'yellow,bold')}: Using an existing fork with a different name than requested", file=sys.stderr)
|
||||
num_entries += 1
|
||||
except gitea_api.GiteaException as e:
|
||||
if e.status == 404:
|
||||
print(f" * {tty.colorize('ERROR', 'red,bold')}: Repo doesn't exist: {owner}/{repo}", file=sys.stderr)
|
||||
failed_entries.append(f"{owner}/{repo}")
|
||||
continue
|
||||
raise
|
||||
|
||||
print("", file=sys.stderr)
|
||||
print(f"Total forked repos: {num_entries}", file=sys.stderr)
|
||||
if failed_entries:
|
||||
print(f"{tty.colorize('ERROR', 'red,bold')}: Couldn't fork the following repos: {', '.join(failed_entries)}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user