diff --git a/src/python/jw/pkg/cmds/projects/CmdListRepos.py b/src/python/jw/pkg/cmds/projects/CmdListRepos.py index ef5114be..8b36d515 100644 --- a/src/python/jw/pkg/cmds/projects/CmdListRepos.py +++ b/src/python/jw/pkg/cmds/projects/CmdListRepos.py @@ -66,12 +66,17 @@ class CmdListRepos(Cmd): # export assert username is not None cmd_input = (f'-u {username}:{password}').encode('utf-8') curl_args.extend(['-K-']) - curl_args.extend([ - f'https://{url.hostname}/code/api/v1/orgs/{args.from_user}/repos' - ]) - repos = await run_curl(curl_args, cmd_input=cmd_input) - for repo in repos: - print(repo['name']) + for entities_dir in ['orgs', 'users']: + api_url = f'https://{url.hostname}/code/api/v1/{entities_dir}/{args.from_user}/repos' + try: + repos = await run_curl(curl_args + api_url, cmd_input=cmd_input) + for repo in repos: + print(repo['name']) + break + except: + pass + else: + raise RuntimeError(f'Failed to fetch repository list from assumed Forgejo instance at {args.base_url}') return if os.path.isdir(args.base_url): for subdir in ["." , args.from_user]: