pm-github 2026.6.2 → 2026.6.4
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 +40 -1
- package/README.md +60 -13
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +840 -99
- package/dist/index.js.map +1 -1
- package/manifest.json +4 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 2026.6.
|
|
3
|
+
## 2026.6.4 - 2026-06-04
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Import GitHub author + timestamps, rate-limit visibility, --skip-drafts ([pm-github-v0c3](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-v0c3.toon))
|
|
8
|
+
|
|
9
|
+
## 2026.06.03 - 2026-06-03
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Domain-max SDK enhancement: idempotent import, sync, preflight, renderer ([pm-github-mdlp](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-mdlp.toon))
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Idempotent import: match by github\_number, update not duplicate; populate schema fields ([pm-github-fhiv](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-fhiv.toon))
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- True round-trip GitHub sync: search provider, validate diagnostics, safe-by-default export, fix activation ([pm-github-9dqy](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-9dqy.toon))
|
|
22
|
+
- True round-trip GitHub sync: search provider, validate diagnostics, safe-by-default export, fix activation ([pm-github-4elt](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-4elt.toon))
|
|
23
|
+
- FIX: add 'preflight' to manifest capabilities \(activation-breaking bug\) ([pm-github-qndb](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-qndb.toon))
|
|
24
|
+
|
|
25
|
+
### Other
|
|
26
|
+
|
|
27
|
+
- Provenance scheme: gh:owner/repo\#N tag \(lowercased\), reused as-is ([pm-github-ggt3](https://github.com/unbraind/pm-github/blob/main/.agents/pm/decisions/pm-github-ggt3.toon))
|
|
28
|
+
- Export defaults to dry-run; real writes need --apply AND --repo ([pm-github-epdt](https://github.com/unbraind/pm-github/blob/main/.agents/pm/decisions/pm-github-epdt.toon))
|
|
29
|
+
- Search provider maps remote matches to LOCAL items only ([pm-github-o7jl](https://github.com/unbraind/pm-github/blob/main/.agents/pm/decisions/pm-github-o7jl.toon))
|
|
30
|
+
- Unit tests + functional verification + README + decisions ([pm-github-f3xf](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-f3xf.toon))
|
|
31
|
+
- Export: dry-run default + upsert existing issues by provenance ([pm-github-fv0x](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-fv0x.toon))
|
|
32
|
+
- github search provider \(search capability\) ([pm-github-5sbx](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-5sbx.toon))
|
|
33
|
+
- github validate diagnostics command ([pm-github-rroh](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-rroh.toon))
|
|
34
|
+
- preflight capability: validate token/gh auth + repo reachability before mutating github commands ([pm-github-jget](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-jget.toon))
|
|
35
|
+
- pm github sync: push pm status -\> GitHub close/reopen, guarded by token+--repo+--dry-run ([pm-github-yted](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-yted.toon))
|
|
36
|
+
- renderers capability: register 'github' output format \(pm items as GitHub-issue markdown\) ([pm-github-vvov](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-vvov.toon))
|
|
37
|
+
- Rate-limit/backoff handling \(Retry-After / X-RateLimit-Reset\) + useful afterCommand hook ([pm-github-rx1q](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-rx1q.toon))
|
|
38
|
+
- Import issue comments via --with-comments \(append to item body\) ([pm-github-kvl1](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-kvl1.toon))
|
|
39
|
+
- Tests + functional verification against real public repo \(idempotent re-import\) ([pm-github-2u0d](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-2u0d.toon))
|
|
40
|
+
- Production-readiness audit 2026-05-28 ([pm-github-0y40](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-0y40.toon))
|
|
41
|
+
|
|
42
|
+
## 2026.06.02 - 2026-06-02
|
|
4
43
|
|
|
5
44
|
### Added
|
|
6
45
|
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# pm-github
|
|
2
2
|
|
|
3
|
-
GitHub Issues
|
|
3
|
+
A true **round-trip** GitHub Issues integration for [pm-cli](https://github.com/unbraind/pm-cli): import, export, status-sync, search, and validate.
|
|
4
4
|
|
|
5
|
-
Import issues from any GitHub repo as pm items, export pm items back
|
|
5
|
+
Import issues from any GitHub repo as pm items, export pm items back to GitHub (safely, dry-run by default), push status changes upstream, reach GitHub from `pm search`, and track GitHub provenance on each item. Works unauthenticated (60 req/hr); set `GITHUB_TOKEN`/`GH_TOKEN` or run `gh auth login` for 5000 req/hr and private repos.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -16,11 +16,13 @@ pm install github.com/unbraind/pm-github --global
|
|
|
16
16
|
|
|
17
17
|
| SDK capability | What it provides |
|
|
18
18
|
|---|---|
|
|
19
|
-
| `importers` | `pm github import <owner/repo>` — native import pipeline |
|
|
20
|
-
| `importers` (exporter) | `pm github export` —
|
|
21
|
-
| `commands` | `pm gh-issues import
|
|
22
|
-
| `schema` | declares `github_url`, `github_number`, `github_state` item fields |
|
|
19
|
+
| `importers` | `pm github import <owner/repo>` — idempotent native import pipeline |
|
|
20
|
+
| `importers` (exporter) | `pm github export` — pm items → GitHub issues (dry-run by default; upsert) |
|
|
21
|
+
| `commands` | `pm gh-issues import` (legacy import alias), `pm github sync` (push status), `pm github validate` (diagnostics) |
|
|
22
|
+
| `schema` | declares `github_url`, `github_number`, `github_state`, `github_author`, `github_created_at`, `github_updated_at` item fields |
|
|
23
23
|
| `hooks` | `afterCommand` — opt-in sync reminder (`PM_GITHUB_SYNC`) for linked items |
|
|
24
|
+
| `preflight` | early warning when a mutating github command lacks a token |
|
|
25
|
+
| `search` | `github` search provider — `pm search` reaches GitHub for imported items |
|
|
24
26
|
|
|
25
27
|
## Import
|
|
26
28
|
|
|
@@ -48,24 +50,69 @@ pm github import owner/repo --dry-run
|
|
|
48
50
|
| `--assignee <login>` | string | Filter by assignee login |
|
|
49
51
|
| `--milestone <name>` | string | Filter by milestone title |
|
|
50
52
|
| `--include-prs` | boolean | Include pull requests (default: skip PRs) |
|
|
53
|
+
| `--skip-drafts` | boolean | Exclude draft pull requests (only meaningful with `--include-prs`) |
|
|
54
|
+
| `--with-comments` | boolean | Fetch issue comments and append them to the item body |
|
|
51
55
|
| `--dry-run` | boolean | Preview without writing |
|
|
52
56
|
| `--type <type>` | string | Override pm item type (default: Issue) |
|
|
53
57
|
|
|
54
|
-
|
|
58
|
+
Each imported item records GitHub provenance: the `gh:owner/repo#N` idempotency tag, a `github_author:<login>` tag, and an enriched description (`author @<login> · created <iso> · updated <iso>`). The integration declares the `github_url`, `github_number`, `github_state`, `github_author`, `github_created_at`, and `github_updated_at` schema fields.
|
|
59
|
+
|
|
60
|
+
## Export (pm → GitHub)
|
|
55
61
|
|
|
56
62
|
### `pm github export`
|
|
57
63
|
|
|
64
|
+
**Safe by default.** Export previews the create/update plan and writes *nothing* unless you explicitly opt in with `--apply` **and** name a `--repo`. With a `--repo`, items already linked to an issue in that repo (via the `gh:owner/repo#N` provenance tag) are **updated** (upsert) instead of duplicated.
|
|
65
|
+
|
|
58
66
|
```bash
|
|
59
|
-
pm github export
|
|
60
|
-
pm github export --format md
|
|
61
|
-
pm github export --repo owner/repo
|
|
67
|
+
pm github export --repo owner/repo # DRY-RUN: print the create/update plan, write nothing
|
|
68
|
+
pm github export --repo owner/repo --format md
|
|
69
|
+
pm --json github export --repo owner/repo # return the plan as JSON
|
|
70
|
+
pm github export --repo owner/repo --apply # actually create/update issues (requires a token)
|
|
62
71
|
```
|
|
63
72
|
|
|
64
73
|
| Flag | Type | Description |
|
|
65
74
|
|---|---|---|
|
|
66
|
-
| `--
|
|
67
|
-
| `--
|
|
68
|
-
| `--
|
|
75
|
+
| `--repo <owner/repo>` | string | Target repo; decides create-vs-update and is required for `--apply` |
|
|
76
|
+
| `--format <json\|md>` | string | Dry-run output format (default: json) |
|
|
77
|
+
| `--apply` | boolean | Perform real GitHub writes (alias: `--no-dry-run`, legacy `--push`). Requires a token + `--repo` |
|
|
78
|
+
| `--dry-run` | boolean | Force preview even alongside `--apply` (dry-run always wins) |
|
|
79
|
+
|
|
80
|
+
## Status sync (pm → GitHub state)
|
|
81
|
+
|
|
82
|
+
### `pm github sync`
|
|
83
|
+
|
|
84
|
+
Push pm status changes back to GitHub: close/reopen the linked issue to match the pm item's status. Requires a token and explicit `--repo`.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pm github sync --repo owner/repo --dry-run # preview the close/reopen plan
|
|
88
|
+
pm github sync --repo owner/repo # push the changes
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Search (pm search → GitHub)
|
|
92
|
+
|
|
93
|
+
### `github` search provider
|
|
94
|
+
|
|
95
|
+
Registers a `github` search provider so `pm search ... --semantic` can reach GitHub. It asks GitHub which issues in the target repo match your query, then returns hits for the **pm items you've already imported** from those issues (matched by the `gh:owner/repo#N` provenance tag).
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pm config project set ... # set search.provider = "github" in .agents/pm/settings.json
|
|
99
|
+
export PM_GITHUB_REPO=owner/repo # or pass the repo another way
|
|
100
|
+
pm search "uppercase dashes" --semantic # hits = imported items whose upstream issue matches
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Enable it by setting `search.provider` to `"github"` in `.agents/pm/settings.json` and pointing it at a repo via the `PM_GITHUB_REPO` env var.
|
|
104
|
+
|
|
105
|
+
## Validate / diagnostics
|
|
106
|
+
|
|
107
|
+
### `pm github validate`
|
|
108
|
+
|
|
109
|
+
Read-only check of the integration: `gh` CLI presence, token resolvability (and source), and—with `--repo`—repo accessibility. When `--repo` is given it also surfaces the remaining GitHub API quota (`X-RateLimit-Remaining`/`Limit`/`Reset`) and warns when the quota is running low. Never mutates anything.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pm github validate
|
|
113
|
+
pm github validate --repo owner/repo
|
|
114
|
+
pm --json github validate --repo owner/repo
|
|
115
|
+
```
|
|
69
116
|
|
|
70
117
|
## License
|
|
71
118
|
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ interface GhIssue {
|
|
|
6
6
|
labels: Array<{
|
|
7
7
|
name: string;
|
|
8
8
|
}>;
|
|
9
|
+
user?: {
|
|
10
|
+
login: string;
|
|
11
|
+
} | null;
|
|
9
12
|
assignee: {
|
|
10
13
|
login: string;
|
|
11
14
|
} | null;
|
|
@@ -15,7 +18,17 @@ interface GhIssue {
|
|
|
15
18
|
created_at: string;
|
|
16
19
|
updated_at: string;
|
|
17
20
|
html_url: string;
|
|
21
|
+
comments?: number;
|
|
22
|
+
comments_url?: string;
|
|
18
23
|
pull_request?: unknown;
|
|
24
|
+
draft?: boolean;
|
|
25
|
+
}
|
|
26
|
+
interface GhComment {
|
|
27
|
+
user: {
|
|
28
|
+
login: string;
|
|
29
|
+
} | null;
|
|
30
|
+
created_at: string;
|
|
31
|
+
body: string | null;
|
|
19
32
|
}
|
|
20
33
|
interface ImportOptions {
|
|
21
34
|
state: "open" | "closed" | "all";
|
|
@@ -24,10 +37,22 @@ interface ImportOptions {
|
|
|
24
37
|
assignee?: string;
|
|
25
38
|
milestone?: string;
|
|
26
39
|
includePrs: boolean;
|
|
40
|
+
skipDrafts: boolean;
|
|
41
|
+
withComments: boolean;
|
|
27
42
|
itemType: string;
|
|
28
43
|
dryRun: boolean;
|
|
29
44
|
}
|
|
30
45
|
export declare function resolveGitHubToken(): string | undefined;
|
|
46
|
+
export declare function computeBackoffMs(headers: Record<string, string | string[] | undefined>, attempt: number, nowMs?: number): number;
|
|
47
|
+
export interface RateLimitInfo {
|
|
48
|
+
remaining?: number;
|
|
49
|
+
limit?: number;
|
|
50
|
+
reset?: number;
|
|
51
|
+
/** True when the remaining quota is at/under the low-water mark. */
|
|
52
|
+
low: boolean;
|
|
53
|
+
}
|
|
54
|
+
export declare function parseRateLimit(headers: Record<string, string | string[] | undefined>, lowThreshold?: number): RateLimitInfo;
|
|
55
|
+
export declare function formatRateLimit(info: RateLimitInfo): string | undefined;
|
|
31
56
|
export declare function parseNextLink(linkHeader?: string): string | undefined;
|
|
32
57
|
export declare function optionEnabled(options: Record<string, unknown>, ...keys: string[]): boolean;
|
|
33
58
|
export declare function optionString(options: Record<string, unknown>, ...keys: string[]): string | undefined;
|
|
@@ -40,9 +65,70 @@ export declare class CommandError extends Error {
|
|
|
40
65
|
exitCode: number;
|
|
41
66
|
constructor(message: string, exitCode?: number);
|
|
42
67
|
}
|
|
68
|
+
export declare function provenanceTag(repo: string, issueNumber: number): string;
|
|
69
|
+
export declare function parseProvenanceTag(tag: string): {
|
|
70
|
+
repo: string;
|
|
71
|
+
number: number;
|
|
72
|
+
} | undefined;
|
|
73
|
+
export declare function authorTag(issue: GhIssue): string | undefined;
|
|
74
|
+
interface PmItem {
|
|
75
|
+
id?: string;
|
|
76
|
+
title?: string;
|
|
77
|
+
status?: string;
|
|
78
|
+
body?: string;
|
|
79
|
+
description?: string;
|
|
80
|
+
tags?: string[];
|
|
81
|
+
}
|
|
82
|
+
export declare function indexByProvenance(items: PmItem[]): Map<string, PmItem>;
|
|
43
83
|
export declare function buildIssuesUrl(repo: string, opts: ImportOptions): string;
|
|
84
|
+
export declare function composeBody(issue: GhIssue, comments: GhComment[]): string;
|
|
85
|
+
export declare function isDraftPr(issue: GhIssue): boolean;
|
|
44
86
|
export declare function applyClientFilters(issues: GhIssue[], opts: ImportOptions): GhIssue[];
|
|
45
87
|
export declare function parseImportOptions(options: Record<string, unknown>): ImportOptions;
|
|
88
|
+
export interface SyncPlanEntry {
|
|
89
|
+
id: string;
|
|
90
|
+
number: number;
|
|
91
|
+
title: string;
|
|
92
|
+
from: "open" | "closed";
|
|
93
|
+
to: "open" | "closed";
|
|
94
|
+
}
|
|
95
|
+
export declare function planSync(items: PmItem[], repo: string): SyncPlanEntry[];
|
|
96
|
+
export interface GithubExportPayload {
|
|
97
|
+
title: string;
|
|
98
|
+
body: string;
|
|
99
|
+
labels: string[];
|
|
100
|
+
state: "open" | "closed";
|
|
101
|
+
}
|
|
102
|
+
export interface ExportPlanEntry {
|
|
103
|
+
id?: string;
|
|
104
|
+
action: "create" | "update";
|
|
105
|
+
number?: number;
|
|
106
|
+
payload: GithubExportPayload;
|
|
107
|
+
}
|
|
108
|
+
export declare function buildExportPlan(items: PmItem[], repo: string | undefined): ExportPlanEntry[];
|
|
109
|
+
export declare function exportWillApply(options: Record<string, unknown>): boolean;
|
|
110
|
+
export declare function buildSearchUrl(repo: string, query: string): string;
|
|
111
|
+
export declare function mapSearchHits(matchedNumbers: number[], repo: string, itemsByProvenance: Map<string, PmItem>): Array<{
|
|
112
|
+
id: string;
|
|
113
|
+
score: number;
|
|
114
|
+
matched_fields: string[];
|
|
115
|
+
}>;
|
|
116
|
+
export declare function resolveSearchRepo(options: Record<string, unknown>): string | undefined;
|
|
117
|
+
export interface ValidateReport {
|
|
118
|
+
ok: boolean;
|
|
119
|
+
gh_cli: boolean;
|
|
120
|
+
token: boolean;
|
|
121
|
+
token_source: "env" | "gh" | "none";
|
|
122
|
+
repo?: string;
|
|
123
|
+
repo_accessible?: boolean;
|
|
124
|
+
repo_status?: number;
|
|
125
|
+
rate_limit_remaining?: number;
|
|
126
|
+
rate_limit_limit?: number;
|
|
127
|
+
rate_limit_reset?: number;
|
|
128
|
+
rate_limit_low?: boolean;
|
|
129
|
+
messages: string[];
|
|
130
|
+
}
|
|
131
|
+
export declare function isMutatingGithubCommand(command: string, options: Record<string, unknown>): boolean;
|
|
46
132
|
declare const _default: {
|
|
47
133
|
name: string;
|
|
48
134
|
version: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|