fix: align gh pr option aliases

This commit is contained in:
Codex
2026-05-31 11:09:31 +00:00
parent 96984cb01f
commit 57f6345428
+16 -16
View File
@@ -6052,7 +6052,7 @@ export async function runGhCommand(args: string[]): Promise<GitHubCommandResult
],
});
}
if (optionWasProvided(args, "--stat") && !(top === "pr" && sub === "diff")) {
if (optionWasProvided(args, "--stat") && !(top === "pr" && (sub === "diff" || sub === "files"))) {
const command = [top, sub].filter((value): value is string => value !== undefined).join(" ") || "gh";
return validationError(command, options.repo, "--stat is only supported by gh pr diff <number> --stat.", {
supportedCommands: [
@@ -6216,29 +6216,29 @@ export async function runGhCommand(args: string[]): Promise<GitHubCommandResult
if (top === "pr") {
if (sub === "diff") {
const number = parsePositionalNumberForCommand(options.repo, args, 2, "pr diff");
if (typeof number !== "number") return number;
const resolved = resolvePositionalPrReference(args, 2, "pr diff", options);
if (isGitHubCommandResult(resolved)) return resolved;
if (!optionWasProvided(args, "--stat")) {
return unsupportedCommand("pr diff", options.repo, "Raw PR diff output is intentionally unsupported by UniDesk CLI; use gh pr diff <number> --stat or gh pr files for a bounded REST file/stat summary.", {
rawDiffIncluded: false,
supportedCommands: [
`bun scripts/cli.ts gh pr files ${number} --repo ${options.repo} --limit 30`,
`bun scripts/cli.ts gh pr diff ${number} --stat --repo ${options.repo} --limit 30`,
`bun scripts/cli.ts gh pr files ${resolved.number} --repo ${resolved.repo} --limit 30`,
`bun scripts/cli.ts gh pr diff ${resolved.number} --stat --repo ${resolved.repo} --limit 30`,
],
});
}
const { token, probe } = resolveToken(true);
const missing = authRequired(options.repo, "pr diff --stat", probe);
if (missing !== null || token === null) return missing ?? authRequired(options.repo, "pr diff --stat", { present: false, source: null, ghFallbackAttempted: true });
return prFiles(options.repo, token, number, options.limit, "pr diff --stat");
const missing = authRequired(resolved.repo, "pr diff --stat", probe);
if (missing !== null || token === null) return missing ?? authRequired(resolved.repo, "pr diff --stat", { present: false, source: null, ghFallbackAttempted: true });
return prFiles(resolved.repo, token, resolved.number, options.limit, "pr diff --stat");
}
if (sub === "files") {
const number = parsePositionalNumberForCommand(options.repo, args, 2, "pr files");
if (typeof number !== "number") return number;
const resolved = resolvePositionalPrReference(args, 2, "pr files", options);
if (isGitHubCommandResult(resolved)) return resolved;
const { token, probe } = resolveToken(true);
const missing = authRequired(options.repo, "pr files", probe);
if (missing !== null || token === null) return missing ?? authRequired(options.repo, "pr files", { present: false, source: null, ghFallbackAttempted: true });
return prFiles(options.repo, token, number, options.limit, "pr files");
const missing = authRequired(resolved.repo, "pr files", probe);
if (missing !== null || token === null) return missing ?? authRequired(resolved.repo, "pr files", { present: false, source: null, ghFallbackAttempted: true });
return prFiles(resolved.repo, token, resolved.number, options.limit, "pr files");
}
if (sub === "delete") return unsupportedCommand("pr delete", options.repo, "GitHub REST does not support hard-deleting pull requests; use gh pr close for lifecycle deletion semantics.");
if (sub === "preflight" || sub === "closeout") {
@@ -6304,12 +6304,12 @@ export async function runGhCommand(args: string[]): Promise<GitHubCommandResult
return prState(options.repo, token, number, sub === "close" ? "closed" : "open", false);
}
if (sub === "merge") {
const number = parseNumberForCommand(options.repo, third, "pr merge");
if (typeof number !== "number") return number;
const resolved = resolvePositionalPrReference(args, 2, "pr merge", options);
if (isGitHubCommandResult(resolved)) return resolved;
const { token, probe } = resolveToken(true);
const missing = authRequired(options.repo, "pr merge", probe);
if (missing !== null || token === null) return missing ?? authRequired(options.repo, "pr merge", { present: false, source: null, ghFallbackAttempted: true });
return prMerge(options.repo, token, number, options);
return prMerge(resolved.repo, token, resolved.number, options);
}
if (sub !== "list" && !isPrReadCommand(sub)) {
return unsupportedCommand(`pr ${sub ?? ""}`.trim(), options.repo, "PR supported commands are list, files, diff --stat, read/view, preflight/closeout, create, update/edit, close, reopen, merge, comment create/delete, and unsupported delete.");