gh-axi 0.1.30 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/dist/src/args.d.ts +9 -0
- package/dist/src/args.js +30 -0
- package/dist/src/args.js.map +1 -1
- package/dist/src/cli.d.ts +1 -1
- package/dist/src/cli.js +36 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/api.d.ts +1 -1
- package/dist/src/commands/api.js +57 -16
- package/dist/src/commands/api.js.map +1 -1
- package/dist/src/commands/issue.d.ts +1 -1
- package/dist/src/commands/issue.js +74 -7
- package/dist/src/commands/issue.js.map +1 -1
- package/dist/src/commands/label.js +11 -1
- package/dist/src/commands/label.js.map +1 -1
- package/dist/src/commands/pr.js +87 -1
- package/dist/src/commands/pr.js.map +1 -1
- package/dist/src/commands/project.js +33 -1
- package/dist/src/commands/project.js.map +1 -1
- package/dist/src/commands/release.js +26 -1
- package/dist/src/commands/release.js.map +1 -1
- package/dist/src/commands/repo.js +21 -1
- package/dist/src/commands/repo.js.map +1 -1
- package/dist/src/commands/run.js +20 -1
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/search.js +19 -1
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/stack.d.ts +2 -0
- package/dist/src/commands/stack.js +311 -0
- package/dist/src/commands/stack.js.map +1 -0
- package/dist/src/commands/variable.js +9 -1
- package/dist/src/commands/variable.js.map +1 -1
- package/dist/src/commands/workflow.js +13 -1
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/errors.d.ts +4 -0
- package/dist/src/errors.js +8 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/skill.js +8 -4
- package/dist/src/skill.js.map +1 -1
- package/package.json +1 -1
- package/skills/gh-axi/SKILL.md +9 -5
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@ npx skills add kunchenguid/gh-axi --skill gh-axi -g
|
|
|
43
43
|
That is the entire setup - no npm install needed.
|
|
44
44
|
The skill teaches your agent to run gh-axi through `npx -y gh-axi`, so the CLI comes along on demand.
|
|
45
45
|
You still need [`gh`](https://cli.github.com/) installed and authenticated via `gh auth login` (Node 20+ required).
|
|
46
|
+
Stacked PR commands also require GitHub's official extension: `gh extension install github/gh-stack`.
|
|
46
47
|
For GitHub Enterprise or another custom host, authenticate `gh` for that host and either pass `--hostname <host>` after the command or set `GH_HOST`.
|
|
47
48
|
|
|
48
49
|
The skill is not a user-facing slash command (`user-invocable: false`).
|
|
@@ -85,6 +86,9 @@ gh-axi # dashboard - live state, no args needed
|
|
|
85
86
|
gh-axi issue list # list issues in current repo
|
|
86
87
|
gh-axi issue subissue list 16 # list sub-issues for issue #16
|
|
87
88
|
gh-axi pr view 42 # view pull request #42
|
|
89
|
+
gh-axi stack init model api ui # create or adopt a stack of branches
|
|
90
|
+
gh-axi stack submit --open # create ready-for-review stacked PRs without prompts
|
|
91
|
+
gh-axi stack view # inspect the current stack as token-efficient TOON
|
|
88
92
|
gh-axi issue edit 42 --add-label bug --add-label chore # repeat a flag per value
|
|
89
93
|
gh-axi run list -R owner/repo # list workflow runs for a specific repo
|
|
90
94
|
gh-axi issue list --hostname git.example.com # target a GitHub Enterprise host
|
|
@@ -130,6 +134,10 @@ When truncation happens, gh-axi best-effort saves the complete log to a temp fil
|
|
|
130
134
|
`gh-axi pr checks <number>` and the `checks` summary of `gh-axi pr view <number>` bucket every entry of the PR's status-check rollup as `pass`, `fail`, `skip`, or `pending`, covering both check runs (GitHub Actions and similar) and legacy commit statuses (Vercel, `ci/circleci`, and similar).
|
|
131
135
|
Cancelled, stale, timed-out, action-required, and startup-failure check runs count as failed, so a red PR is never reported as merely unfinished.
|
|
132
136
|
|
|
137
|
+
`gh-axi stack` is a strict, non-interactive adapter over the official `github/gh-stack` extension. It supports `view`, `init`, `add`, `checkout`, `push`, `submit`, `sync`, `rebase`, `link`, `unstack`, `merge`, and branch navigation. It intentionally excludes the interactive `modify` and `switch` TUIs and the human-only `alias` and `feedback` utilities.
|
|
138
|
+
Stack commands operate on local branches and `.git/gh-stack`, so run them from the target repository's working directory. They reject `-R`, `--repo`, and `GH_REPO` rather than pretending a remote repository is enough. `--hostname` remains available for authenticated GitHub Enterprise hosts.
|
|
139
|
+
Agent-safe behavior is automatic: `stack view` requests JSON, `stack submit` adds `--auto`, and `stack merge` requires an explicit stack or PR target and adds `--yes`. Rebase conflicts and other extension exits retain their original exit codes and include recovery guidance.
|
|
140
|
+
|
|
133
141
|
`gh-axi secret set <name>` reads the value only from piped stdin because secret flags would be visible in the `gh-axi` process argv.
|
|
134
142
|
`gh-axi secret list` never prints values, matching `gh secret list`.
|
|
135
143
|
`gh-axi secret list`, `set`, and `delete` accept `--env`/`-e <environment>` to scope a secret to a deployment environment; without it the repository scope is used.
|
|
@@ -143,8 +151,10 @@ Gist visibility is fixed at creation; a secret gist is unlisted (anyone with the
|
|
|
143
151
|
Two file-on-disk input forms are available: positional paths (`gist create a.py b.py`) or repeatable `--file` flags (`gist create --file a.py --file b.py`); mixing the two is an error.
|
|
144
152
|
To create a gist from piped content, use `--filename <name>` together with a pipe (`echo "..." | gh-axi gist create --filename foo.txt --public`).
|
|
145
153
|
|
|
146
|
-
`gh-axi api` accepts `--field`, `--header`, `--paginate`, `--jq <expression>`,
|
|
154
|
+
`gh-axi api` accepts `-X <method>` and `-X=<method>` as alternatives to the positional HTTP method, plus `--field`, `--header`, `--paginate`, `--jq <expression>`, `--template <format>`, and `--full`.
|
|
155
|
+
Giving `-X` more than once or together with a positional method is rejected, as is any other unsupported flag, extra positional argument, or repeated `--jq`/`--template`.
|
|
147
156
|
JSON responses are normally stripped of noisy fields before TOON encoding, but a response you shaped yourself with `--jq` or `--template` keeps every key and value verbatim — only over-long strings are still truncated so one field cannot flood an agent's context.
|
|
157
|
+
`--full` is an explicit opt-in escape hatch: it keeps every field and every complete value, and it also returns non-JSON response bodies without the length cap. `--full` is a gh-axi flag only, and gh-axi does not send it to `gh`. Compact output stays the default without `--full`.
|
|
148
158
|
|
|
149
159
|
### Commands
|
|
150
160
|
|
|
@@ -152,6 +162,7 @@ JSON responses are normally stripped of noisy fields before TOON encoding, but a
|
|
|
152
162
|
| ---------- | --------------------------------------------------------------------------- |
|
|
153
163
|
| `issue` | Issues — list, view, create, edit, close, reopen, comment, subissue |
|
|
154
164
|
| `pr` | Pull requests — list, view, create, merge, review, checks |
|
|
165
|
+
| `stack` | Stacked branches and PRs - create, submit, sync, rebase, merge, navigate |
|
|
155
166
|
| `run` | Existing workflow runs - list, view, watch, rerun, cancel, delete, download |
|
|
156
167
|
| `workflow` | Workflows - list, view, run (trigger), enable, disable |
|
|
157
168
|
| `release` | Releases — list, view, create, edit, delete |
|
package/dist/src/args.d.ts
CHANGED
|
@@ -22,3 +22,12 @@ export declare function getPositional(args: string[], startIndex: number): strin
|
|
|
22
22
|
export declare function requireNumber(raw: string | undefined, label: string): number;
|
|
23
23
|
/** Find the first numeric positional arg, remove it from args, and return it as a number. */
|
|
24
24
|
export declare function takeNumber(args: string[], label: string): number;
|
|
25
|
+
/**
|
|
26
|
+
* Reject flags in `args` that are not listed in `known`, after the subcommand
|
|
27
|
+
* has parsed the flags it recognizes. Positionals and `--help`/`-h` always
|
|
28
|
+
* pass; `--` ends flag scanning. Value forms (`--flag=v`) are matched by flag
|
|
29
|
+
* name only. Throws VALIDATION_ERROR listing every offending flag plus a
|
|
30
|
+
* one-turn self-correction hint (usage + `--help`), per AXI principle 6:
|
|
31
|
+
* never silently drop an unknown flag.
|
|
32
|
+
*/
|
|
33
|
+
export declare function rejectUnknownFlags(args: string[], known: readonly string[], command: string, sub: string): void;
|
package/dist/src/args.js
CHANGED
|
@@ -121,4 +121,34 @@ export function takeNumber(args, label) {
|
|
|
121
121
|
args.splice(args.indexOf(raw), 1);
|
|
122
122
|
return Number(raw);
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Reject flags in `args` that are not listed in `known`, after the subcommand
|
|
126
|
+
* has parsed the flags it recognizes. Positionals and `--help`/`-h` always
|
|
127
|
+
* pass; `--` ends flag scanning. Value forms (`--flag=v`) are matched by flag
|
|
128
|
+
* name only. Throws VALIDATION_ERROR listing every offending flag plus a
|
|
129
|
+
* one-turn self-correction hint (usage + `--help`), per AXI principle 6:
|
|
130
|
+
* never silently drop an unknown flag.
|
|
131
|
+
*/
|
|
132
|
+
export function rejectUnknownFlags(args, known, command, sub) {
|
|
133
|
+
const knownSet = new Set(known);
|
|
134
|
+
const unknown = [];
|
|
135
|
+
for (let i = 0; i < args.length; i++) {
|
|
136
|
+
const tok = args[i];
|
|
137
|
+
if (tok === "--")
|
|
138
|
+
break;
|
|
139
|
+
if (!tok.startsWith("-"))
|
|
140
|
+
continue;
|
|
141
|
+
const name = tok.split("=", 1)[0];
|
|
142
|
+
if (name === "--help" || name === "-h")
|
|
143
|
+
continue;
|
|
144
|
+
if (knownSet.has(name))
|
|
145
|
+
continue;
|
|
146
|
+
if (!unknown.includes(name))
|
|
147
|
+
unknown.push(name);
|
|
148
|
+
}
|
|
149
|
+
if (unknown.length === 0)
|
|
150
|
+
return;
|
|
151
|
+
const list = unknown.join(", ");
|
|
152
|
+
throw new AxiError(`unknown flag${unknown.length > 1 ? "s" : ""} for gh-axi ${command} ${sub}: ${list}`, "VALIDATION_ERROR", [`gh-axi ${command} ${sub} [flags]`, `gh-axi ${command} ${sub} --help`]);
|
|
153
|
+
}
|
|
124
154
|
//# sourceMappingURL=args.js.map
|
package/dist/src/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ type MainOptions = {
|
|
|
4
4
|
argv?: string[];
|
|
5
5
|
stdout?: CliStdout;
|
|
6
6
|
};
|
|
7
|
-
export declare const TOP_HELP = "usage: gh-axi [command] [args] [flags]\ncommands[
|
|
7
|
+
export declare const TOP_HELP = "usage: gh-axi [command] [args] [flags]\ncommands[16]:\n (none)=dashboard, issue, pr, stack, run, workflow, release, repo, label, gist, project, secret, variable, search, api, setup\nflags[4]:\n -R/--repo <OWNER/NAME> (after command), --hostname <host> (after command) or GH_HOST env, both flags accept space or equals form, --help, -v/-V/--version\nexamples:\n gh-axi\n gh-axi issue list --state open\n gh-axi issue list -R owner/name\n gh-axi issue list --repo=owner/name\n gh-axi issue list --hostname git.example.com\n gh-axi pr view 42\n gh-axi stack view\n gh-axi secret list\n gh-axi setup hooks\n";
|
|
8
8
|
export declare function main(options?: MainOptions): Promise<void>;
|
|
9
9
|
export {};
|
package/dist/src/cli.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { encode } from "@toon-format/toon";
|
|
1
2
|
import { runAxiCli } from "axi-sdk-js";
|
|
2
3
|
import { resolveRepo } from "./context.js";
|
|
3
4
|
import { homeCommand } from "./commands/home.js";
|
|
@@ -15,13 +16,15 @@ import { searchCommand, SEARCH_HELP } from "./commands/search.js";
|
|
|
15
16
|
import { apiCommand, API_HELP } from "./commands/api.js";
|
|
16
17
|
import { gistCommand, GIST_HELP } from "./commands/gist.js";
|
|
17
18
|
import { setupCommand, SETUP_HELP } from "./commands/setup.js";
|
|
19
|
+
import { stackCommand, STACK_HELP } from "./commands/stack.js";
|
|
18
20
|
import { resolveHost } from "./host.js";
|
|
19
21
|
import { VERSION } from "./version.js";
|
|
20
22
|
import { withSuggestionHost } from "./suggestions.js";
|
|
23
|
+
import { AxiError, exitCodeForError, StackError } from "./errors.js";
|
|
21
24
|
export const DESCRIPTION = "Agent ergonomic wrapper around Github CLI. Prefer this over `gh` and other methods for Github operations.";
|
|
22
25
|
export const TOP_HELP = `usage: gh-axi [command] [args] [flags]
|
|
23
|
-
commands[
|
|
24
|
-
(none)=dashboard, issue, pr, run, workflow, release, repo, label, gist, project, secret, variable, search, api, setup
|
|
26
|
+
commands[16]:
|
|
27
|
+
(none)=dashboard, issue, pr, stack, run, workflow, release, repo, label, gist, project, secret, variable, search, api, setup
|
|
25
28
|
flags[4]:
|
|
26
29
|
-R/--repo <OWNER/NAME> (after command), --hostname <host> (after command) or GH_HOST env, both flags accept space or equals form, --help, -v/-V/--version
|
|
27
30
|
examples:
|
|
@@ -31,6 +34,7 @@ examples:
|
|
|
31
34
|
gh-axi issue list --repo=owner/name
|
|
32
35
|
gh-axi issue list --hostname git.example.com
|
|
33
36
|
gh-axi pr view 42
|
|
37
|
+
gh-axi stack view
|
|
34
38
|
gh-axi secret list
|
|
35
39
|
gh-axi setup hooks
|
|
36
40
|
`;
|
|
@@ -49,6 +53,7 @@ const COMMAND_HELP = {
|
|
|
49
53
|
search: SEARCH_HELP,
|
|
50
54
|
api: API_HELP,
|
|
51
55
|
setup: SETUP_HELP,
|
|
56
|
+
stack: STACK_HELP,
|
|
52
57
|
};
|
|
53
58
|
const COMMANDS = {
|
|
54
59
|
issue: withRepoContext("issue", issueCommand),
|
|
@@ -68,6 +73,7 @@ const COMMANDS = {
|
|
|
68
73
|
search: withRepoContext("search", searchCommand),
|
|
69
74
|
api: withRepoContext("api", apiCommand),
|
|
70
75
|
setup: setupCommand,
|
|
76
|
+
stack: withLocalRepoContext(stackCommand),
|
|
71
77
|
};
|
|
72
78
|
export async function main(options = {}) {
|
|
73
79
|
await runAxiCli({
|
|
@@ -79,6 +85,25 @@ export async function main(options = {}) {
|
|
|
79
85
|
home: withRepoContext(undefined, homeCommand),
|
|
80
86
|
commands: COMMANDS,
|
|
81
87
|
getCommandHelp: (command) => COMMAND_HELP[command],
|
|
88
|
+
formatError: (error) => {
|
|
89
|
+
const axiError = error instanceof AxiError
|
|
90
|
+
? error
|
|
91
|
+
: new AxiError(error instanceof Error ? error.message : String(error), "UNKNOWN");
|
|
92
|
+
// Mirrors the SDK's defaultFormatError output byte-for-byte; the only
|
|
93
|
+
// difference this hook introduces is StackError's upstream exit code.
|
|
94
|
+
return {
|
|
95
|
+
output: `${encode({
|
|
96
|
+
error: axiError.message,
|
|
97
|
+
code: axiError.code,
|
|
98
|
+
...(axiError.suggestions.length > 0
|
|
99
|
+
? { help: axiError.suggestions }
|
|
100
|
+
: {}),
|
|
101
|
+
})}\n`,
|
|
102
|
+
exitCode: error instanceof StackError
|
|
103
|
+
? error.exitCode
|
|
104
|
+
: exitCodeForError(axiError),
|
|
105
|
+
};
|
|
106
|
+
},
|
|
82
107
|
resolveContext: ({ command, args }) => {
|
|
83
108
|
const { repoFlag, hostFlag } = parseRepoContextArgs(command, args);
|
|
84
109
|
// Explicit --hostname wins over the GH_HOST env var. Setting GH_HOST here
|
|
@@ -101,6 +126,15 @@ export async function main(options = {}) {
|
|
|
101
126
|
function withRepoContext(command, handler) {
|
|
102
127
|
return (args, ctx) => withSuggestionHost(ctx?.host, () => handler(parseRepoContextArgs(command, args).strippedArgs, repoContext(ctx)));
|
|
103
128
|
}
|
|
129
|
+
function withLocalRepoContext(handler) {
|
|
130
|
+
return (args, ctx) => {
|
|
131
|
+
const parsed = parseRepoContextArgs("stack", args);
|
|
132
|
+
if (parsed.repoFlag !== undefined || process.env["GH_REPO"]) {
|
|
133
|
+
throw new AxiError("stack commands operate on the repository in the current working directory and do not support -R, --repo, or GH_REPO", "VALIDATION_ERROR");
|
|
134
|
+
}
|
|
135
|
+
return withSuggestionHost(ctx?.host, () => handler(parsed.strippedArgs));
|
|
136
|
+
};
|
|
137
|
+
}
|
|
104
138
|
function repoContext(ctx) {
|
|
105
139
|
return ctx && "nwo" in ctx ? ctx : undefined;
|
|
106
140
|
}
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { RepoContext } from '../context.js';
|
|
2
|
-
export declare const API_HELP = "usage: gh-axi api [<method>] <path>\ndescription: Make an authenticated GitHub API request. Defaults to GET if no method specified.\nmethods[6]:\n GET, POST, PUT, PATCH, DELETE, HEAD\nflags[
|
|
2
|
+
export declare const API_HELP = "usage: gh-axi api [<method>] <path>\ndescription: Make an authenticated GitHub API request. Defaults to GET if no method specified.\nmethods[6]:\n GET, POST, PUT, PATCH, DELETE, HEAD\nflags[7]:\n -X <method> or -X=<method> (alias for the positional method; give once and do not combine with a positional method), --field <key=value> (repeatable), --header <key:value> (repeatable), --paginate, --jq <expression>, --template <format>, --full (preserve complete field values and response bodies without truncation)\nexamples:\n gh-axi api /repos/{owner}/{repo}\n gh-axi api POST /repos/{owner}/{repo}/issues --field title=\"Bug report\"\n gh-axi api -X POST /repos/{owner}/{repo}/issues --field title=\"Bug report\"\n gh-axi api /repos/{owner}/{repo}/pulls --paginate\n gh-axi api /repos/{owner}/{repo}/issues/1 --jq '[.labels[].name]'";
|
|
3
3
|
export declare function apiCommand(args: string[], ctx?: RepoContext): Promise<string>;
|
package/dist/src/commands/api.js
CHANGED
|
@@ -6,21 +6,32 @@ export const API_HELP = `usage: gh-axi api [<method>] <path>
|
|
|
6
6
|
description: Make an authenticated GitHub API request. Defaults to GET if no method specified.
|
|
7
7
|
methods[6]:
|
|
8
8
|
GET, POST, PUT, PATCH, DELETE, HEAD
|
|
9
|
-
flags[
|
|
10
|
-
--field <key=value> (repeatable), --header <key:value> (repeatable), --paginate, --jq <expression>, --template <format
|
|
9
|
+
flags[7]:
|
|
10
|
+
-X <method> or -X=<method> (alias for the positional method; give once and do not combine with a positional method), --field <key=value> (repeatable), --header <key:value> (repeatable), --paginate, --jq <expression>, --template <format>, --full (preserve complete field values and response bodies without truncation)
|
|
11
11
|
examples:
|
|
12
12
|
gh-axi api /repos/{owner}/{repo}
|
|
13
13
|
gh-axi api POST /repos/{owner}/{repo}/issues --field title="Bug report"
|
|
14
|
+
gh-axi api -X POST /repos/{owner}/{repo}/issues --field title="Bug report"
|
|
14
15
|
gh-axi api /repos/{owner}/{repo}/pulls --paginate
|
|
15
16
|
gh-axi api /repos/{owner}/{repo}/issues/1 --jq '[.labels[].name]'`;
|
|
16
17
|
const HTTP_METHODS = new Set(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD']);
|
|
18
|
+
/** The `gh api` short flag for HTTP method, equivalent to the positional method. */
|
|
19
|
+
const METHOD_FLAG = '-X';
|
|
17
20
|
/** Value flags that may be given more than once, each occurrence forwarded to gh. */
|
|
18
21
|
const REPEATABLE_VALUE_FLAGS = new Set(['--field', '--header']);
|
|
19
22
|
/** Value flags that gh accepts only one of, so a repeat is a caller mistake. */
|
|
20
23
|
const SINGLE_VALUE_FLAGS = new Set(['--jq', '--template']);
|
|
21
|
-
/** Flags that stand alone and must not consume the following argument. */
|
|
24
|
+
/** Flags that stand alone and must not consume the following argument, and are forwarded to gh. */
|
|
22
25
|
const BOOL_FLAGS = new Set(['--paginate']);
|
|
23
|
-
|
|
26
|
+
/** Flags that stand alone, are gh-axi-only, and must not be forwarded to gh. */
|
|
27
|
+
const LOCAL_BOOL_FLAGS = new Set(['--full']);
|
|
28
|
+
const SUPPORTED_FLAGS = [
|
|
29
|
+
METHOD_FLAG,
|
|
30
|
+
...REPEATABLE_VALUE_FLAGS,
|
|
31
|
+
...SINGLE_VALUE_FLAGS,
|
|
32
|
+
...BOOL_FLAGS,
|
|
33
|
+
...LOCAL_BOOL_FLAGS,
|
|
34
|
+
];
|
|
24
35
|
/** The flag's name without any `=value` suffix, so errors never echo a value. */
|
|
25
36
|
function flagName(arg) {
|
|
26
37
|
const equals = arg.indexOf('=');
|
|
@@ -47,6 +58,7 @@ function parseArgs(args) {
|
|
|
47
58
|
fields: [],
|
|
48
59
|
headers: [],
|
|
49
60
|
paginate: false,
|
|
61
|
+
full: false,
|
|
50
62
|
};
|
|
51
63
|
for (let i = 0; i < args.length; i++) {
|
|
52
64
|
const arg = args[i];
|
|
@@ -61,7 +73,15 @@ function parseArgs(args) {
|
|
|
61
73
|
parsed.paginate = true;
|
|
62
74
|
continue;
|
|
63
75
|
}
|
|
64
|
-
if (
|
|
76
|
+
if (LOCAL_BOOL_FLAGS.has(name)) {
|
|
77
|
+
if (name !== arg)
|
|
78
|
+
throw new AxiError(`${name} does not take a value`, 'VALIDATION_ERROR');
|
|
79
|
+
parsed.full = true;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (name !== METHOD_FLAG &&
|
|
83
|
+
!REPEATABLE_VALUE_FLAGS.has(name) &&
|
|
84
|
+
!SINGLE_VALUE_FLAGS.has(name)) {
|
|
65
85
|
throw new AxiError(`unknown flag ${name} for gh-axi api. Supported flags: ${SUPPORTED_FLAGS.join(', ')}`, 'VALIDATION_ERROR');
|
|
66
86
|
}
|
|
67
87
|
// `--flag=value` carries its own value; `--flag value` consumes the next arg.
|
|
@@ -74,7 +94,16 @@ function parseArgs(args) {
|
|
|
74
94
|
else {
|
|
75
95
|
value = arg.slice(name.length + 1);
|
|
76
96
|
}
|
|
77
|
-
if (name ===
|
|
97
|
+
if (name === METHOD_FLAG) {
|
|
98
|
+
if (parsed.method !== undefined)
|
|
99
|
+
throw new AxiError(`${name} may only be given once`, 'VALIDATION_ERROR');
|
|
100
|
+
const upper = value.toUpperCase();
|
|
101
|
+
if (!HTTP_METHODS.has(upper)) {
|
|
102
|
+
throw new AxiError(`${name} ${value} is not a supported HTTP method. Supported: ${[...HTTP_METHODS].join(', ')}`, 'VALIDATION_ERROR');
|
|
103
|
+
}
|
|
104
|
+
parsed.method = upper;
|
|
105
|
+
}
|
|
106
|
+
else if (name === '--field') {
|
|
78
107
|
parsed.fields.push(value);
|
|
79
108
|
}
|
|
80
109
|
else if (name === '--header') {
|
|
@@ -104,19 +133,22 @@ const STRING_VALUE_TRUNCATION_LIMIT = 2000;
|
|
|
104
133
|
export async function apiCommand(args, ctx) {
|
|
105
134
|
if (args[0] === '--help' || args.length === 0)
|
|
106
135
|
return API_HELP;
|
|
107
|
-
const { positionals, fields, headers, jq, template, paginate } = parseArgs(args);
|
|
136
|
+
const { positionals, fields, headers, jq, template, method: methodFlag, paginate, full } = parseArgs(args);
|
|
108
137
|
const pathRequired = new AxiError('API path is required: gh-axi api [<method>] <path>', 'VALIDATION_ERROR');
|
|
109
138
|
if (positionals.length === 0)
|
|
110
139
|
throw pathRequired;
|
|
111
140
|
// A positional the command cannot place is a caller typo, and dropping it
|
|
112
141
|
// silently requests a different endpoint than the one that was asked for.
|
|
113
142
|
const methodGiven = HTTP_METHODS.has(positionals[0].toUpperCase());
|
|
143
|
+
if (methodFlag !== undefined && methodGiven) {
|
|
144
|
+
throw new AxiError('method given twice: use either -X <method> or the positional method, not both', 'VALIDATION_ERROR');
|
|
145
|
+
}
|
|
114
146
|
if (positionals.length > (methodGiven ? 2 : 1)) {
|
|
115
147
|
throw new AxiError('too many arguments for gh-axi api: expected [<method>] <path>', 'VALIDATION_ERROR');
|
|
116
148
|
}
|
|
117
149
|
if (methodGiven && positionals.length < 2)
|
|
118
150
|
throw pathRequired;
|
|
119
|
-
const method = methodGiven ? positionals[0].toUpperCase() : 'GET';
|
|
151
|
+
const method = methodFlag ?? (methodGiven ? positionals[0].toUpperCase() : 'GET');
|
|
120
152
|
const path = methodGiven ? positionals[1] : positionals[0];
|
|
121
153
|
const ghArgs = ['api', path, '--method', method];
|
|
122
154
|
for (const f of fields) {
|
|
@@ -136,16 +168,21 @@ export async function apiCommand(args, ctx) {
|
|
|
136
168
|
// for by name (`url`, `node_id`, ...). The length clamp still applies, so a
|
|
137
169
|
// selected field cannot blow the caller's context with an unbounded blob.
|
|
138
170
|
const callerShapedOutput = jq !== undefined || template !== undefined;
|
|
171
|
+
// --full is an explicit opt-in escape hatch: it keeps every field (like
|
|
172
|
+
// caller-shaped output) and additionally lifts the string-length clamp, so
|
|
173
|
+
// compact output stays the default everywhere --full is not given.
|
|
174
|
+
const stripNoisyKeys = !callerShapedOutput && !full;
|
|
175
|
+
const truncateValues = !full;
|
|
139
176
|
// Try to parse as JSON, strip noisy fields, encode to TOON; fall back to raw output
|
|
140
177
|
const raw = await ghExec(ghArgs, ctx);
|
|
141
178
|
try {
|
|
142
179
|
const data = JSON.parse(raw);
|
|
143
|
-
return encode(shapeOutput(data,
|
|
180
|
+
return encode(shapeOutput(data, stripNoisyKeys, truncateValues));
|
|
144
181
|
}
|
|
145
182
|
catch {
|
|
146
183
|
// Not JSON — wrap in TOON envelope with truncation metadata
|
|
147
184
|
const trimmed = raw.trim();
|
|
148
|
-
const truncated = trimmed.length > RAW_OUTPUT_TRUNCATION_LIMIT;
|
|
185
|
+
const truncated = !full && trimmed.length > RAW_OUTPUT_TRUNCATION_LIMIT;
|
|
149
186
|
const result = {
|
|
150
187
|
api_response: {
|
|
151
188
|
body: truncated ? trimmed.slice(0, RAW_OUTPUT_TRUNCATION_LIMIT) : trimmed,
|
|
@@ -210,20 +247,21 @@ function clampString(value) {
|
|
|
210
247
|
* With `stripNoisyKeys` the noisy keys are dropped and long strings are cleaned
|
|
211
248
|
* as well. Output the caller shaped with --jq/--template keeps both its keys and
|
|
212
249
|
* its content verbatim and is only length-bounded, since rewriting a field they
|
|
213
|
-
* selected by name is the same silent mutation as deleting it.
|
|
250
|
+
* selected by name is the same silent mutation as deleting it. With
|
|
251
|
+
* `truncateValues` false (--full), string values pass through untouched.
|
|
214
252
|
*/
|
|
215
|
-
function shapeOutput(obj, stripNoisyKeys, depth = 0) {
|
|
253
|
+
function shapeOutput(obj, stripNoisyKeys, truncateValues, depth = 0) {
|
|
216
254
|
if (depth > 8)
|
|
217
255
|
return obj;
|
|
218
256
|
if (Array.isArray(obj)) {
|
|
219
|
-
return obj.map((item) => shapeOutput(item, stripNoisyKeys, depth + 1));
|
|
257
|
+
return obj.map((item) => shapeOutput(item, stripNoisyKeys, truncateValues, depth + 1));
|
|
220
258
|
}
|
|
221
259
|
if (obj !== null && typeof obj === 'object') {
|
|
222
260
|
const record = obj;
|
|
223
261
|
const result = {};
|
|
224
262
|
for (const [key, value] of Object.entries(record)) {
|
|
225
263
|
if (!stripNoisyKeys) {
|
|
226
|
-
result[key] = shapeOutput(value, stripNoisyKeys, depth + 1);
|
|
264
|
+
result[key] = shapeOutput(value, stripNoisyKeys, truncateValues, depth + 1);
|
|
227
265
|
continue;
|
|
228
266
|
}
|
|
229
267
|
if (NOISY_KEYS.has(key))
|
|
@@ -240,12 +278,15 @@ function shapeOutput(obj, stripNoisyKeys, depth = 0) {
|
|
|
240
278
|
result[key] = collapseRepo(value);
|
|
241
279
|
continue;
|
|
242
280
|
}
|
|
243
|
-
result[key] = shapeOutput(value, stripNoisyKeys, depth + 1);
|
|
281
|
+
result[key] = shapeOutput(value, stripNoisyKeys, truncateValues, depth + 1);
|
|
244
282
|
}
|
|
245
283
|
return result;
|
|
246
284
|
}
|
|
247
|
-
if (typeof obj === 'string')
|
|
285
|
+
if (typeof obj === 'string') {
|
|
286
|
+
if (!truncateValues)
|
|
287
|
+
return obj;
|
|
248
288
|
return stripNoisyKeys ? clampString(obj) : truncateString(obj);
|
|
289
|
+
}
|
|
249
290
|
return obj;
|
|
250
291
|
}
|
|
251
292
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RepoContext } from "../context.js";
|
|
2
|
-
export declare const ISSUE_HELP = "usage: gh-axi issue <subcommand> [flags]\nsubcommands[14]:\n list, view <number>, create, edit <number>, close <number>, reopen <number>, comment <number>, delete <number>, lock <number>, unlock <number>, pin <number>, unpin <number>, transfer <number>, subissue <add|remove|list>\nflags{list}:\n --state <open|closed|all>, --label <name> (repeatable), --assignee <login>, --author <login>, --milestone <name>, --sort <created|updated|comments>, --limit <n> (default 30), --fields <a,b,c>\nflags{view}:\n --comments, --full (show complete body without truncation)\nflags{create}:\n --title <text> (required), --body <text> or --body-file <path>, --assignee <login> (repeatable), --label <name> (repeatable), --milestone <name>, --project <name> (repeatable), --type <name>\nflags{edit}:\n --title, --body <text> or --body-file <path>, --add-label <name> (repeatable), --remove-label <name> (repeatable), --add-assignee <login> (repeatable), --remove-assignee <login> (repeatable), --milestone, --type <name>, --no-type\nflags{close}:\n --reason <completed|not_planned>, --comment <text>\nflags{comment}:\n --body <text> or --body-file <path> (required)\nflags{transfer}:\n --to-repo <owner/name> (required)\nsubissue:\n add <parent> <child> [<child> ...], remove <parent> <child>, list <parent>\nexamples:\n gh-axi issue list --state closed --label bug\n gh-axi issue view 42 --comments\n gh-axi issue create --title \"Fix login\" --body \"Steps to reproduce...\"\n gh-axi issue comment 42 --body-file comment.md\n gh-axi issue close 42 --reason completed\n gh-axi issue transfer 42 -R source/repo --to-repo dest/repo\n gh-axi issue subissue add 16 20 101 125\n gh-axi issue subissue list 16";
|
|
2
|
+
export declare const ISSUE_HELP = "usage: gh-axi issue <subcommand> [flags]\nsubcommands[14]:\n list, view <number>, create, edit <number>, close <number>, reopen <number>, comment <number>, delete <number>, lock <number>, unlock <number>, pin <number>, unpin <number>, transfer <number>, subissue <add|remove|list>\nflags{list}:\n --state <open|closed|all>, --label <name> (repeatable), --assignee <login>, --author <login>, --milestone <name>, --sort <created|updated|comments>, --limit <n> (default 30), --fields <a,b,c>\nflags{view}:\n --comments, --full (show the complete issue body and comment bodies without truncation)\nflags{create}:\n --title <text> (required), --body <text> or --body-file <path>, --assignee <login> (repeatable), --label <name> (repeatable), --milestone <name>, --project <name> (repeatable), --type <name>\nflags{edit}:\n --title, --body <text> or --body-file <path>, --add-label <name> (repeatable), --remove-label <name> (repeatable), --add-assignee <login> (repeatable), --remove-assignee <login> (repeatable), --milestone, --type <name>, --no-type\nflags{close}:\n --reason <completed|not_planned>, --comment <text>\nflags{comment}:\n --body <text> or --body-file <path> (required)\nflags{transfer}:\n --to-repo <owner/name> (required)\nsubissue:\n add <parent> <child> [<child> ...], remove <parent> <child>, list <parent>\nexamples:\n gh-axi issue list --state closed --label bug\n gh-axi issue view 42 --comments\n gh-axi issue create --title \"Fix login\" --body \"Steps to reproduce...\"\n gh-axi issue comment 42 --body-file comment.md\n gh-axi issue close 42 --reason completed\n gh-axi issue transfer 42 -R source/repo --to-repo dest/repo\n gh-axi issue subissue add 16 20 101 125\n gh-axi issue subissue list 16";
|
|
3
3
|
export declare const SUBISSUE_HELP = "usage: gh-axi issue subissue <add|remove|list> <parent> [child...]\nsubcommands[3]:\n add <parent> <child> [<child> ...], remove <parent> <child>, list <parent>\nexamples:\n gh-axi issue subissue add 16 20 101 125\n gh-axi issue subissue remove 16 101\n gh-axi issue subissue list 16";
|
|
4
4
|
export declare function issueCommand(args: string[], ctx?: RepoContext): Promise<string>;
|