@bensandee/forgejo-cli 0.5.1 → 0.5.3

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.
Files changed (2) hide show
  1. package/dist/bin.mjs +19 -6
  2. package/package.json +1 -1
package/dist/bin.mjs CHANGED
@@ -162,7 +162,7 @@ function loadEnvFileForBin(rawArgs, bin, io = processIo) {
162
162
  //#region src/version.ts
163
163
  const parsed = z.object({ version: z.string() }).safeParse({
164
164
  name: "@bensandee/forgejo-cli",
165
- version: "0.5.1",
165
+ version: "0.5.3",
166
166
  description: "bst-fj: Forgejo API commands without the rest of bst",
167
167
  license: "MIT",
168
168
  repository: {
@@ -6438,8 +6438,21 @@ const PrFileEntrySchema = z.object({
6438
6438
  additions: z.number().default(0),
6439
6439
  deletions: z.number().default(0)
6440
6440
  });
6441
- async function listPrFiles(executor, conn, prNumber, options) {
6442
- return readPrFilesPage(executor, conn, prNumber, 1, options?.limit ?? DEFAULT_LIMIT);
6441
+ const ALL_FILES_MAX_PAGES = 20;
6442
+ async function listAllPrFiles(executor, conn, prNumber) {
6443
+ const files = [];
6444
+ for (let page = 1; page <= ALL_FILES_MAX_PAGES; page++) {
6445
+ const listing = await readPrFilesPage(executor, conn, prNumber, page, DEFAULT_LIMIT);
6446
+ files.push(...listing.files);
6447
+ if (!listing.truncated) return {
6448
+ files,
6449
+ truncated: false
6450
+ };
6451
+ }
6452
+ return {
6453
+ files,
6454
+ truncated: true
6455
+ };
6443
6456
  }
6444
6457
  async function readPrFilesPage(executor, conn, prNumber, page, limit) {
6445
6458
  const url = `${conn.serverUrl}/api/v1/repos/${conn.repository}/pulls/${String(prNumber)}/files?page=${String(page)}&limit=${String(limit)}`;
@@ -6464,7 +6477,7 @@ async function readPrFilesPage(executor, conn, prNumber, page, limit) {
6464
6477
  //#region src/pr-files.ts
6465
6478
  function runPrFiles(fetcher, options) {
6466
6479
  const number = parsePrNumber(options.number);
6467
- return listPrFiles(fetcher, requireForgejoTarget(options.cwd, parseRepoTarget(options.repo), "pr:files is Forgejo-only -- gh pr diff --name-only already serves GitHub."), number);
6480
+ return listAllPrFiles(fetcher, requireForgejoTarget(options.cwd, parseRepoTarget(options.repo), "pr:files is Forgejo-only -- gh pr diff --name-only already serves GitHub."), number);
6468
6481
  }
6469
6482
  function renderPrFiles(listing) {
6470
6483
  const lines = listing.files.map((file) => `${file.status ?? "unknown"} ${file.filename}`);
@@ -6477,7 +6490,7 @@ function renderPrFiles(listing) {
6477
6490
  const prFilesCommand = defineCommand({
6478
6491
  meta: {
6479
6492
  name: "pr:files",
6480
- description: "List the files a pull request changes (Forgejo-only)"
6493
+ description: "List every file a pull request changes, reading every page (Forgejo-only)"
6481
6494
  },
6482
6495
  args: {
6483
6496
  number: {
@@ -6491,7 +6504,7 @@ const prFilesCommand = defineCommand({
6491
6504
  },
6492
6505
  json: {
6493
6506
  type: "boolean",
6494
- description: "Emit one JSON document: files ([{filename, status (or null), additions, deletions}]), truncated."
6507
+ description: "Emit one JSON document: files ([{filename, status (or null), additions, deletions}]), truncated (true only when the pull request changes more files than the command reads, at least 1000)."
6495
6508
  },
6496
6509
  verbose: {
6497
6510
  type: "boolean",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bensandee/forgejo-cli",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "bst-fj: Forgejo API commands without the rest of bst",
5
5
  "license": "MIT",
6
6
  "repository": {