pm-github 2026.5.28 → 2026.5.30

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.05.29 - 2026-05-29
4
+
5
+ ### Added
6
+
7
+ - Production-harden gh-issues import ([pm-github-lixc](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-lixc.toon))
8
+
9
+ ### Fixed
10
+
11
+ - Failed imports exited 0 \(broke automation\) ([pm-github-msh0](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-msh0.toon))
12
+ - Issue list truncated at one page \(no pagination\) ([pm-github-v4la](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-v4la.toon))
13
+ - Importer was unauthenticated \(60 req/hr, no private repos\) ([pm-github-gtnp](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-gtnp.toon))
14
+ - --dry-run silently wrote items instead of previewing ([pm-github-2u31](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-2u31.toon))
15
+
3
16
  ## 2026.05.28 - 2026-05-28
4
17
 
5
18
  ### Added
package/dist/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export declare function resolveGitHubToken(): string | undefined;
2
+ export declare function parseNextLink(linkHeader?: string): string | undefined;
3
+ export declare function optionEnabled(options: Record<string, unknown>, ...keys: string[]): boolean;
4
+ export declare function optionString(options: Record<string, unknown>, ...keys: string[]): string | undefined;
1
5
  declare const _default: {
2
6
  name: string;
3
7
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;kBAqEgB,GAAG;;AAJnB,wBAqIG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAuCA,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAavD;AAkCD,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOrE;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAK1F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAMpG;;;;kBAUe,GAAG;;AAJnB,wBA2JG"}
package/dist/index.js CHANGED
@@ -2,43 +2,93 @@
2
2
  import https from "node:https";
3
3
  import { spawnSync } from "node:child_process";
4
4
  const defineExtension = ((extension) => extension);
5
- // ---------------------------------------------------------------------------
6
- // Helpers
7
- // ---------------------------------------------------------------------------
8
- function fetchJSON(url) {
5
+ // Resolve a GitHub token so the importer is not stuck on the 60 req/hr
6
+ // unauthenticated quota and can read private repos. Order: explicit env vars,
7
+ // then the locally authenticated `gh` CLI if present.
8
+ export function resolveGitHubToken() {
9
+ const envToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
10
+ if (envToken && envToken.trim())
11
+ return envToken.trim();
12
+ try {
13
+ const result = spawnSync("gh", ["auth", "token"], { encoding: "utf-8" });
14
+ if (result.status === 0) {
15
+ const token = result.stdout.trim();
16
+ if (token)
17
+ return token;
18
+ }
19
+ }
20
+ catch {
21
+ // gh not installed — fall back to unauthenticated requests.
22
+ }
23
+ return undefined;
24
+ }
25
+ function fetchJSON(url, token) {
9
26
  return new Promise((resolve, reject) => {
10
- const req = https.get(url, {
11
- headers: {
12
- "User-Agent": "pm-github",
13
- Accept: "application/vnd.github.v3+json",
14
- },
15
- }, (res) => {
16
- if ((res.statusCode ?? 0) >= 300 && (res.statusCode ?? 0) < 400 && res.headers.location) {
17
- fetchJSON(res.headers.location).then(resolve, reject);
27
+ const headers = {
28
+ "User-Agent": "pm-github",
29
+ Accept: "application/vnd.github+json",
30
+ };
31
+ if (token)
32
+ headers.Authorization = `Bearer ${token}`;
33
+ const req = https.get(url, { headers }, (res) => {
34
+ const status = res.statusCode ?? 0;
35
+ if (status >= 300 && status < 400 && res.headers.location) {
36
+ fetchJSON(res.headers.location, token).then(resolve, reject);
18
37
  return;
19
38
  }
20
- if (res.statusCode !== 200) {
39
+ if (status !== 200) {
21
40
  res.resume();
22
- reject(new Error(`GitHub API returned HTTP ${res.statusCode}`));
41
+ reject(new Error(`GitHub API returned HTTP ${status}`));
23
42
  return;
24
43
  }
25
44
  const chunks = [];
26
45
  res.on("data", (c) => chunks.push(c));
27
- res.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
46
+ res.on("end", () => resolve({
47
+ body: Buffer.concat(chunks).toString("utf-8"),
48
+ linkHeader: typeof res.headers.link === "string" ? res.headers.link : undefined,
49
+ }));
28
50
  });
29
51
  req.on("error", reject);
30
52
  req.setTimeout(30000, () => { req.destroy(); reject(new Error("timeout")); });
31
53
  });
32
54
  }
55
+ // Follow GitHub's RFC 5988 Link header so repos with more than one page of
56
+ // issues are fully imported instead of silently truncated at per_page.
57
+ export function parseNextLink(linkHeader) {
58
+ if (!linkHeader)
59
+ return undefined;
60
+ for (const part of linkHeader.split(",")) {
61
+ const match = part.match(/<([^>]+)>\s*;\s*rel="next"/);
62
+ if (match)
63
+ return match[1];
64
+ }
65
+ return undefined;
66
+ }
33
67
  function mapState(state) {
34
68
  return state === "closed" ? "closed" : "open";
35
69
  }
70
+ // Flags may arrive under their kebab-case (`dry-run`) or camelCase (`dryRun`)
71
+ // key depending on runtime normalization, so check every candidate.
72
+ export function optionEnabled(options, ...keys) {
73
+ return keys.some((k) => {
74
+ const v = options[k];
75
+ return v === true || v === "true" || v === "1";
76
+ });
77
+ }
78
+ export function optionString(options, ...keys) {
79
+ for (const k of keys) {
80
+ const v = options[k];
81
+ if (typeof v === "string" && v.trim().length > 0)
82
+ return v.trim();
83
+ }
84
+ return undefined;
85
+ }
36
86
  // ---------------------------------------------------------------------------
37
87
  // Extension
38
88
  // ---------------------------------------------------------------------------
39
89
  export default defineExtension({
40
90
  name: "pm-github",
41
- version: "2026.5.28",
91
+ version: "2026.5.30",
42
92
  activate(api) {
43
93
  // -----------------------------------------------------------------------
44
94
  // Command: pm gh-issues import <owner/repo>
@@ -46,7 +96,9 @@ export default defineExtension({
46
96
  api.registerCommand({
47
97
  name: "gh-issues import",
48
98
  description: "Fetch GitHub issues from a repo and create pm items. " +
49
- "Skips pull requests by default. Uses unauthenticated API (rate-limited to 60 req/hr).",
99
+ "Skips pull requests by default. Uses GITHUB_TOKEN/GH_TOKEN (or the " +
100
+ "authenticated gh CLI) when available for 5000 req/hr and private repos; " +
101
+ "falls back to the unauthenticated API (60 req/hr).",
50
102
  intent: "import GitHub issues as pm items",
51
103
  examples: [
52
104
  "pm gh-issues import unbraind/pm-cli",
@@ -63,35 +115,50 @@ export default defineExtension({
63
115
  async run(ctx) {
64
116
  const repoArg = ctx.args[0];
65
117
  if (!repoArg || !repoArg.includes("/")) {
66
- console.error("Usage: pm gh-issues import <owner/repo> [--all] [--labels bug,enhancement]");
67
- return { error: "Expected owner/repo argument" };
118
+ // Throw so the CLI exits non-zero — a returned { error } is treated
119
+ // as a successful run by the runtime.
120
+ throw new Error("Usage: pm gh-issues import <owner/repo> [--all] [--labels bug,enhancement]");
68
121
  }
69
- const includeAll = Boolean(ctx.options["all"]);
70
- const labelsFilter = ctx.options["labels"];
71
- const dryRun = Boolean(ctx.options["dry-run"]);
72
- const itemType = ctx.options["type"] || "Issue";
122
+ const includeAll = optionEnabled(ctx.options, "all");
123
+ const labelsFilter = optionString(ctx.options, "labels");
124
+ // Read both kebab and camelCase keys — the runtime may normalize
125
+ // "--dry-run" to "dryRun", and reading only "dry-run" silently ignored
126
+ // the flag (writing items even in preview mode).
127
+ const dryRun = optionEnabled(ctx.options, "dry-run", "dryRun");
128
+ const itemType = optionString(ctx.options, "type") || "Issue";
73
129
  const state = includeAll ? "all" : "open";
74
130
  let url = `https://api.github.com/repos/${repoArg}/issues?state=${state}&per_page=100`;
75
131
  if (labelsFilter) {
76
132
  url += `&labels=${encodeURIComponent(labelsFilter)}`;
77
133
  }
78
- console.error(`Fetching issues from ${repoArg}…`);
79
- let raw;
134
+ const token = resolveGitHubToken();
135
+ console.error(`Fetching issues from ${repoArg}…${token ? "" : " (unauthenticated — 60 req/hr)"}`);
136
+ const issues = [];
137
+ let nextUrl = url;
80
138
  try {
81
- raw = await fetchJSON(url);
139
+ while (nextUrl) {
140
+ const { body, linkHeader } = await fetchJSON(nextUrl, token);
141
+ let page;
142
+ try {
143
+ page = JSON.parse(body);
144
+ }
145
+ catch {
146
+ throw new Error("Invalid JSON response from GitHub.");
147
+ }
148
+ if (!Array.isArray(page)) {
149
+ throw new Error("Unexpected GitHub API response (expected an array of issues).");
150
+ }
151
+ issues.push(...page);
152
+ nextUrl = parseNextLink(linkHeader);
153
+ }
82
154
  }
83
155
  catch (err) {
84
156
  const msg = err instanceof Error ? err.message : String(err);
85
- console.error(`Failed to fetch: ${msg}`);
86
- return { error: msg };
87
- }
88
- let issues;
89
- try {
90
- issues = JSON.parse(raw);
91
- }
92
- catch {
93
- console.error("Invalid JSON response from GitHub.");
94
- return { error: "Invalid GitHub API response" };
157
+ const hint = !token && /HTTP 403/.test(msg)
158
+ ? " — set GITHUB_TOKEN/GH_TOKEN or run `gh auth login` to raise the rate limit (60→5000/hr) and reach private repos"
159
+ : "";
160
+ // Throw so the CLI exits non-zero on a failed fetch.
161
+ throw new Error(`Failed to fetch issues from ${repoArg}: ${msg}${hint}`);
95
162
  }
96
163
  // Filter out PRs
97
164
  const filtered = issues.filter((i) => !i.pull_request);
@@ -152,6 +219,10 @@ export default defineExtension({
152
219
  return { dryRun: true, wouldImport: imported, wouldSkip: skipped };
153
220
  }
154
221
  console.error(`Imported ${imported} issue(s), skipped ${skipped}.`);
222
+ if (imported === 0 && skipped > 0) {
223
+ // Every create failed — surface as a non-zero exit for automation.
224
+ throw new Error(`Imported 0 issue(s); ${skipped} failed.`);
225
+ }
155
226
  return { imported, skipped };
156
227
  },
157
228
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-github",
3
- "version": "2026.5.28",
3
+ "version": "2026.5.30",
4
4
  "description": "GitHub Issues importer. Fetches open (or all) issues from a GitHub repo and creates pm items.",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-github",
3
- "version": "2026.5.28",
3
+ "version": "2026.5.30",
4
4
  "description": "GitHub Issues importer extension for pm-cli",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,13 +34,13 @@
34
34
  "release:check": "npm run typecheck && npm run build && npm run audit:prod && npm run pack:dry-run && npm run changelog:check"
35
35
  },
36
36
  "peerDependencies": {
37
- "@unbrained/pm-cli": ">=2026.5.24"
37
+ "@unbrained/pm-cli": ">=2026.5.29"
38
38
  },
39
39
  "devDependencies": {
40
- "@unbrained/pm-cli": "^2026.5.24",
41
- "typescript": "^6.0.3",
42
- "pm-changelog": "^2026.5.25",
43
- "@types/node": "^25.9.1"
40
+ "@types/node": "^25.9.1",
41
+ "@unbrained/pm-cli": "^2026.5.29",
42
+ "pm-changelog": "^2026.5.29-2",
43
+ "typescript": "^6.0.3"
44
44
  },
45
45
  "keywords": [
46
46
  "github",