Tracer bullet for gitea-axi: runnable npm package on axi-sdk-js with gitea-js as the sole HTTP layer, ESM on Node 20+. - issue list with --state/--limit, default fields, count line from X-Total-Count, type=issues guard, explicit empty state, and next-step suggestions - repo context detection from the git origin remote (SSH/scp/HTTPS), tea credential discovery with the three-way login-matching split, and -R/--repo and --login overrides (flag > env > auto) - token retrieval via tea login helper get: tea's login list JSON carries no token (ADR 0001 amended) - full AxiError classification table with path-based 404 split, TOON errors on stdout, exit codes 0/1/2 - test mode (GITEA_AXI_API_URL/TOKEN/REPO) suppressing subprocesses, fixture server, and vitest suites driving the CLI seam (50 tests)
22 lines
689 B
TypeScript
22 lines
689 B
TypeScript
import type { RepoContext } from "./context.js";
|
|
|
|
/**
|
|
* Build a next-step suggestion line, appending `-R`/`--login` overrides when
|
|
* the context did not come from the git remote (an agent's next call in the
|
|
* same working directory would auto-detect the same context otherwise).
|
|
*/
|
|
export function suggestCommand(
|
|
context: RepoContext,
|
|
commandLine: string,
|
|
note: string,
|
|
): string {
|
|
let command = `gitea-axi ${commandLine}`;
|
|
if (context.repoSource !== "auto") {
|
|
command += ` -R ${context.owner}/${context.name}`;
|
|
}
|
|
if (context.loginSource !== "auto" && context.loginName) {
|
|
command += ` --login ${context.loginName}`;
|
|
}
|
|
return `Run \`${command}\` ${note}`;
|
|
}
|