feat: add pr list (task 0008)
Implements `pr list` with the two policies later PR slices reuse: client-side filtering with the filtered-set count line (ADR 0005) and the official-first reviewDecision via parallel per-PR review fetches (ADR 0006), extracted into src/review.ts. API-supported flags map to their params (--state, --author→poster, --label name→ID, --label-id, --sort, --limit, --fields); --assignee, --base, --head, and --draft filter in-process after full pagination, with the count line's total taken from the filtered set. --search is refused with a redirect to `search prs`. Adds a boolText field extractor and a shared parsePositiveInt helper, the latter also adopted by issue list's --limit parsing.
This commit was merged in pull request #8.
This commit is contained in:
@@ -20,6 +20,7 @@ import {
|
||||
parseEnumFlag,
|
||||
parseFlags,
|
||||
parsePositionalNumber,
|
||||
parsePositiveInt,
|
||||
splitFlag,
|
||||
} from "../flags.js";
|
||||
import { resolveLabelIds, resolveMilestoneId } from "../lookup.js";
|
||||
@@ -304,15 +305,7 @@ function parseLimit(value: string | true | undefined): number {
|
||||
if (value === undefined) {
|
||||
return DEFAULT_LIMIT;
|
||||
}
|
||||
const limit = Number(value);
|
||||
if (value === true || !Number.isInteger(limit) || limit < 1) {
|
||||
throw axiError(
|
||||
`Invalid --limit value: ${String(value)} (expected a positive integer)`,
|
||||
"VALIDATION_ERROR",
|
||||
ISSUE_LIST_HELP_SUGGESTION,
|
||||
);
|
||||
}
|
||||
return limit;
|
||||
return parsePositiveInt(value, "--limit", ISSUE_LIST_HELP_SUGGESTION);
|
||||
}
|
||||
|
||||
function issueListSuggestions(
|
||||
|
||||
Reference in New Issue
Block a user