feat: scaffold CLI and minimal issue list (task 0001)
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)
This commit is contained in:
21
src/suggestions.ts
Normal file
21
src/suggestions.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
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}`;
|
||||
}
|
||||
Reference in New Issue
Block a user