MCPcopy
hub / github.com/opentrace/opentrace / login

Function login

agent/src/opentrace_agent/cli/main.py:1021–1060  ·  view source on GitHub ↗

Log in to api.opentrace.ai via your browser.

(resolve: bool)

Source from the content-addressed store, hash-verified

1019@app.command()
1020@click.option("--resolve", is_flag=True, help="Also resolve an org-scoped token from project config.")
1021def login(resolve: bool) -> None:
1022 """Log in to api.opentrace.ai via your browser."""
1023 from opentrace_agent.cli.auth import load_tokens
1024 from opentrace_agent.cli.auth import login as do_login
1025
1026 existing = load_tokens()
1027 if existing and existing.get("access_token"):
1028 if not click.confirm("Already logged in. Re-authenticate?", default=False):
1029 return
1030
1031 click.echo("Opening browser to log in to OpenTrace ...")
1032 try:
1033 payload = do_login()
1034 except TimeoutError:
1035 raise click.ClickException("Login timed out — no response from browser within 5 minutes.")
1036 except Exception as exc:
1037 raise click.ClickException(f"Login failed: {exc}")
1038
1039 scope = payload.get("scope", "")
1040 click.echo(f"Logged in to {payload.get('issuer', 'OpenTrace')} (scope: {scope}).")
1041
1042 if resolve:
1043 from opentrace_agent.cli.auth import resolve_org_token
1044 from opentrace_agent.cli.config import find_config, load_config
1045
1046 ot_dir = _find_opentrace_dir()
1047 config_path = find_config(ot_dir)
1048 if config_path is None:
1049 click.echo("No .opentrace/config.yaml found — skipping org token resolution.")
1050 return
1051 config = load_config(config_path)
1052 org = config.get("org")
1053 if not org:
1054 click.echo("No org set in config — skipping org token resolution.")
1055 return
1056 try:
1057 resolve_org_token(org)
1058 click.echo(f"Org token resolved for '{org}'.")
1059 except RuntimeError as exc:
1060 raise click.ClickException(f"Org token resolution failed: {exc}")
1061
1062
1063@app.command()

Callers

nothing calls this directly

Calls 6

find_configFunction · 0.90
load_configFunction · 0.90
resolve_org_tokenFunction · 0.90
load_tokensFunction · 0.85
_find_opentrace_dirFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected