ghcrawl 0.2.0 → 0.4.0
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/README.md +241 -9
- package/dist/main.d.ts +4 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +103 -3
- package/dist/main.js.map +1 -1
- package/dist/tui/app.d.ts +2 -0
- package/dist/tui/app.d.ts.map +1 -1
- package/dist/tui/app.js +343 -16
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/layout.d.ts +3 -2
- package/dist/tui/layout.d.ts.map +1 -1
- package/dist/tui/layout.js +16 -2
- package/dist/tui/layout.js.map +1 -1
- package/dist/tui/state.d.ts +3 -1
- package/dist/tui/state.d.ts.map +1 -1
- package/dist/tui/state.js +13 -7
- package/dist/tui/state.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,14 +1,36 @@
|
|
|
1
|
+
<!-- This file is generated from the repository root README.md. Edit README.md and rerun scripts/sync-package-readmes.mjs. -->
|
|
2
|
+
|
|
1
3
|
# ghcrawl
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
[](https://github.com/pwrdrvr/ghcrawl/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/ghcrawl)
|
|
7
|
+
[](https://www.npmjs.com/package/ghcrawl)
|
|
8
|
+
[](https://github.com/pwrdrvr/ghcrawl/blob/main/LICENSE)
|
|
9
|
+
|
|
10
|
+
`ghcrawl` is a local-first GitHub issue and pull request crawler for maintainers.
|
|
11
|
+
|
|
12
|
+

|
|
4
13
|
|
|
5
14
|
## Install
|
|
6
15
|
|
|
16
|
+
Install the published CLI package:
|
|
17
|
+
|
|
7
18
|
```bash
|
|
8
19
|
npm install -g ghcrawl
|
|
9
20
|
```
|
|
10
21
|
|
|
11
|
-
|
|
22
|
+
That package exposes the `ghcrawl` command directly.
|
|
23
|
+
|
|
24
|
+
If you are working from source or maintaining the repo, use [CONTRIBUTING.md](https://github.com/pwrdrvr/ghcrawl/blob/main/CONTRIBUTING.md).
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
Normal `ghcrawl` use needs both:
|
|
29
|
+
|
|
30
|
+
- a GitHub personal access token
|
|
31
|
+
- an OpenAI API key
|
|
32
|
+
|
|
33
|
+
GitHub is required to crawl issue and PR data. OpenAI is required for embeddings and the maintainer clustering and search workflow. If you already have a populated local DB you can still browse it without live keys, but a fresh `sync` + `embed` + `cluster` or `refresh` run needs both.
|
|
12
34
|
|
|
13
35
|
## Quick Start
|
|
14
36
|
|
|
@@ -19,14 +41,224 @@ ghcrawl refresh owner/repo
|
|
|
19
41
|
ghcrawl tui owner/repo
|
|
20
42
|
```
|
|
21
43
|
|
|
22
|
-
|
|
44
|
+
`ghcrawl init` runs the setup wizard. It can either:
|
|
45
|
+
|
|
46
|
+
- save plaintext keys in `~/.config/ghcrawl/config.json`
|
|
47
|
+
- or guide you through a 1Password CLI (`op`) setup that keeps keys out of the config file
|
|
48
|
+
|
|
49
|
+
`ghcrawl refresh owner/repo` is the main pipeline command. It pulls the latest open GitHub issues and pull requests, refreshes embeddings for changed items, and rebuilds the clusters you browse in the TUI.
|
|
50
|
+
|
|
51
|
+
## Typical Commands
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ghcrawl doctor
|
|
55
|
+
ghcrawl refresh owner/repo
|
|
56
|
+
ghcrawl tui owner/repo
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`refresh`, `sync`, and `embed` call remote services and should be run intentionally.
|
|
60
|
+
|
|
61
|
+
`cluster` does not call remote services, but it is still time consuming. On a repo with roughly `12k` issues and PRs, a full cluster rebuild can take around `10 minutes`.
|
|
62
|
+
|
|
63
|
+
`clusters` explores the clusters already stored in the local SQLite database and is expected to be the fast, read-only inspection path.
|
|
64
|
+
|
|
65
|
+
### Refresh Command Example
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
ghcrawl refresh owner/repo
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+

|
|
72
|
+
|
|
73
|
+
### TUI Screenshots
|
|
74
|
+
|
|
75
|
+
| User open issue/PR list modal | Refresh modal |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
|  |  |
|
|
78
|
+
| Press `u` to open the current user's issue and PR list modal. | Press `g` to open the GitHub/embed/cluster refresh modal. |
|
|
79
|
+
|
|
80
|
+
| Closed members in a cluster | Fully closed cluster |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
|  |  |
|
|
83
|
+
| Closed members stay visible in gray so overlap is still easy to inspect. | A cluster with no open members is grayed out as a whole until you hide closed items. |
|
|
84
|
+
|
|
85
|
+

|
|
86
|
+
|
|
87
|
+
Press `l` on wide screens to toggle the stacked layout with the cluster list on the left and members/detail stacked on the right.
|
|
88
|
+
|
|
89
|
+
## Controlling The Refresh Flow More Intentionally
|
|
90
|
+
|
|
91
|
+
Most users should run `ghcrawl refresh owner/repo` and let it do the full pipeline in the right order.
|
|
92
|
+
|
|
93
|
+
If you need tighter control, you can run the three stages yourself:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ghcrawl sync owner/repo # pull the latest open issues and pull requests from GitHub
|
|
97
|
+
ghcrawl embed owner/repo # generate or refresh OpenAI embeddings for changed items
|
|
98
|
+
ghcrawl cluster owner/repo # rebuild local related-work clusters from the current vectors (local-only, but can take ~10 minutes on a ~12k issue/PR repo)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Run them in that order. `refresh` is just the safe convenience command that performs the same sequence for you.
|
|
102
|
+
|
|
103
|
+
## Init And Doctor
|
|
104
|
+
|
|
105
|
+
First run:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
ghcrawl init
|
|
109
|
+
ghcrawl doctor
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`init` behavior:
|
|
113
|
+
|
|
114
|
+
- prompts you to choose one of two secret-storage modes:
|
|
115
|
+
- `plaintext`: saves both keys to `~/.config/ghcrawl/config.json`
|
|
116
|
+
- `1Password CLI`: stores only vault and item metadata and tells you how to run `ghcrawl` through `op`
|
|
117
|
+
- if you choose plaintext storage, init warns that anyone who can read that file can use your keys and that resulting API charges are your responsibility
|
|
118
|
+
- if you choose 1Password CLI mode, init tells you to create a Secure Note with concealed fields named:
|
|
119
|
+
- `GITHUB_TOKEN`
|
|
120
|
+
- `OPENAI_API_KEY`
|
|
121
|
+
|
|
122
|
+
GitHub token guidance:
|
|
123
|
+
|
|
124
|
+
- recommended: fine-grained PAT scoped to the repositories you want to crawl
|
|
125
|
+
- repository permissions:
|
|
126
|
+
- `Metadata: Read-only`
|
|
127
|
+
- `Issues: Read-only`
|
|
128
|
+
- `Pull requests: Read-only`
|
|
129
|
+
- if you use a classic PAT and need private repositories, `repo` is the safe fallback scope
|
|
130
|
+
|
|
131
|
+
`doctor` checks:
|
|
132
|
+
|
|
133
|
+
- config file presence and path
|
|
134
|
+
- local DB path wiring
|
|
135
|
+
- GitHub token presence, token-shape validation, and a live auth smoke check
|
|
136
|
+
- OpenAI key presence, key-shape validation, and a live auth smoke check
|
|
137
|
+
- if init is configured for 1Password CLI but you forgot to run through your `op` wrapper, doctor tells you that explicitly
|
|
138
|
+
|
|
139
|
+
### 1Password CLI Example
|
|
140
|
+
|
|
141
|
+
If you choose 1Password CLI mode, create a 1Password Secure Note with concealed fields named exactly:
|
|
142
|
+
|
|
143
|
+
- `GITHUB_TOKEN`
|
|
144
|
+
- `OPENAI_API_KEY`
|
|
145
|
+
|
|
146
|
+
Then add this wrapper to `~/.zshrc`:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
ghcrawl-op() {
|
|
150
|
+
env GITHUB_TOKEN="$(op read 'op://Private/ghcrawl/GITHUB_TOKEN')" \
|
|
151
|
+
OPENAI_API_KEY="$(op read 'op://Private/ghcrawl/OPENAI_API_KEY')" \
|
|
152
|
+
ghcrawl "$@"
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Then use:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
ghcrawl-op doctor
|
|
160
|
+
ghcrawl-op refresh owner/repo
|
|
161
|
+
ghcrawl-op tui owner/repo
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Using The CLI To Extract JSON Data
|
|
165
|
+
|
|
166
|
+
These commands are intended more for scripts, bots, and agent integrations than for normal day-to-day terminal browsing:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
ghcrawl threads owner/repo --numbers 42,43,44
|
|
170
|
+
ghcrawl threads owner/repo --numbers 42,43,44 --include-closed
|
|
171
|
+
ghcrawl author owner/repo --login lqquan
|
|
172
|
+
ghcrawl close-thread owner/repo --number 42
|
|
173
|
+
ghcrawl close-cluster owner/repo --id 123
|
|
174
|
+
ghcrawl clusters owner/repo --min-size 10 --limit 20
|
|
175
|
+
ghcrawl clusters owner/repo --min-size 10 --limit 20 --include-closed
|
|
176
|
+
ghcrawl cluster-detail owner/repo --id 123
|
|
177
|
+
ghcrawl cluster-detail owner/repo --id 123 --include-closed
|
|
178
|
+
ghcrawl search owner/repo --query "download stalls"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Use `threads --numbers ...` when you want several specific issue or PR records in one CLI call instead of paying process startup overhead repeatedly.
|
|
182
|
+
|
|
183
|
+
Use `author --login ...` when you want all currently open issue/PR records from one user plus the strongest stored same-author similarity match for each item.
|
|
184
|
+
|
|
185
|
+
By default, JSON list commands filter out locally closed issues/PRs and completely closed clusters. Use `--include-closed` when you need to inspect those records too.
|
|
186
|
+
|
|
187
|
+
Use `close-thread` when you know a local issue/PR should be treated as closed before the next GitHub sync catches up. If that was the last open item in its cluster, `ghcrawl` automatically marks the cluster closed too.
|
|
188
|
+
|
|
189
|
+
Use `close-cluster` when you want to locally suppress a whole cluster from default JSON exploration without waiting for a rebuild.
|
|
190
|
+
|
|
191
|
+
## Cost To Operate
|
|
192
|
+
|
|
193
|
+
The main variable cost is OpenAI embeddings. Current model pricing is published by OpenAI here: [OpenAI API pricing](https://developers.openai.com/api/docs/pricing).
|
|
194
|
+
|
|
195
|
+
On a real local run against roughly `12k` issues plus about `1.2x` related PR and issue inputs, [`text-embedding-3-large`](https://developers.openai.com/api/docs/pricing) came out to about **$0.65 USD** total to embed the repo. Treat that as an approximate data point for something like `~14k` issue and PR inputs, not a hard guarantee.
|
|
196
|
+
|
|
197
|
+
This screenshot is the reference point for that estimate:
|
|
198
|
+
|
|
199
|
+

|
|
200
|
+
|
|
201
|
+
## Agent Skill
|
|
202
|
+
|
|
203
|
+
This repo ships an installable skill at [skills/ghcrawl/SKILL.md](https://github.com/pwrdrvr/ghcrawl/blob/main/skills/ghcrawl/SKILL.md).
|
|
204
|
+
|
|
205
|
+
For installation and usage conventions, point users at [vercel-labs/skills](https://github.com/vercel-labs/skills).
|
|
206
|
+
|
|
207
|
+
Install the CLI first, then install the skill:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
npm i -g ghcrawl
|
|
211
|
+
npx skills add -g pwrdrvr/ghcrawl
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
The skill is built around the stable JSON CLI surface and is intentionally conservative:
|
|
215
|
+
|
|
216
|
+
- default mode assumes no valid API keys and stays read-only
|
|
217
|
+
- API-backed operations only become available after `ghcrawl doctor --json` shows healthy auth
|
|
218
|
+
- even then, `refresh`, `sync`, `embed`, and `cluster` should only run when the user explicitly asks for them
|
|
219
|
+
- JSON list commands hide locally closed issues/PRs and closed clusters by default unless `--include-closed` is passed
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
ghcrawl doctor --json
|
|
223
|
+
ghcrawl refresh owner/repo
|
|
224
|
+
ghcrawl threads owner/repo --numbers 42,43,44
|
|
225
|
+
ghcrawl clusters owner/repo --min-size 10 --limit 20 --sort recent
|
|
226
|
+
ghcrawl cluster-detail owner/repo --id 123 --member-limit 20 --body-chars 280
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Video Walkthrough
|
|
230
|
+
|
|
231
|
+
[](https://www.youtube.com/watch?v=xqgDcy3WDUI)
|
|
232
|
+
|
|
233
|
+
GitHub README links cannot force a new tab, but clicking the preview above will open the YouTube walkthrough from the repo page.
|
|
234
|
+
|
|
235
|
+
The agent and build contract for this repo lives in [SPEC.md](https://github.com/pwrdrvr/ghcrawl/blob/main/SPEC.md).
|
|
236
|
+
|
|
237
|
+
## Current Caveats
|
|
238
|
+
|
|
239
|
+
- `serve` starts the local HTTP API only. The web UI is not built yet.
|
|
240
|
+
- `sync` only pulls open issues and PRs.
|
|
241
|
+
- a plain `sync owner/repo` is incremental by default after the first full completed open scan for that repo
|
|
242
|
+
- `sync` is metadata-only by default
|
|
243
|
+
- `sync --include-comments` enables issue comments, PR reviews, and review comments for deeper context
|
|
244
|
+
- `embed` defaults to `text-embedding-3-large`
|
|
245
|
+
- `embed` generates separate vectors for `title` and `body`, and also uses stored summary text when present
|
|
246
|
+
- `embed` stores an input hash per source kind and will not resubmit unchanged text for re-embedding
|
|
247
|
+
- `sync --since` accepts ISO timestamps and relative durations like `15m`, `2h`, `7d`, and `1mo`
|
|
248
|
+
- `sync --limit <count>` is the best smoke-test path on a busy repository
|
|
249
|
+
- `tui` remembers sort order and min cluster size per repository in the persisted config file
|
|
250
|
+
- the TUI shows locally closed threads and clusters in gray; press `x` to hide or show them
|
|
251
|
+
- on wide screens, press `l` to toggle between three columns and a wider cluster list with members/detail stacked on the right
|
|
252
|
+
- if you add a brand-new repo from the TUI with `p`, ghcrawl runs sync -> embed -> cluster and opens that repo with min cluster size `1+`
|
|
23
253
|
|
|
24
|
-
|
|
254
|
+
## Responsibility Attestation
|
|
25
255
|
|
|
26
|
-
|
|
27
|
-
- [Project README](https://github.com/pwrdrvr/ghcrawl#readme)
|
|
256
|
+
By operating `ghcrawl`, you accept that you, and any employer or organization you operate it for, are fully responsible for:
|
|
28
257
|
|
|
29
|
-
|
|
258
|
+
- obtaining GitHub and OpenAI API keys through legitimate means
|
|
259
|
+
- monitoring that your use of this tool complies with the agreements, usage terms, and platform policies that apply to those keys
|
|
260
|
+
- storing those API keys securely
|
|
261
|
+
- any misuse, theft, unexpected charges, or other consequences resulting from those keys being exposed or abused
|
|
262
|
+
- monitoring spend and stopping or reconfiguring the tool if usage is higher than you intended
|
|
30
263
|
|
|
31
|
-
|
|
32
|
-
- The legacy `gitcrawl` command remains as a compatibility alias for now.
|
|
264
|
+
The creators and contributors of `ghcrawl` accept no liability for API charges, account actions, policy violations, data loss, or misuse resulting from operation of this tool.
|
package/dist/main.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { GHCrawlService } from '@ghcrawl/api-core';
|
|
3
3
|
type DoctorResult = Awaited<ReturnType<GHCrawlService['doctor']>>;
|
|
4
|
+
type DoctorReport = DoctorResult & {
|
|
5
|
+
version: string;
|
|
6
|
+
};
|
|
4
7
|
export declare function parseOwnerRepo(value: string): {
|
|
5
8
|
owner: string;
|
|
6
9
|
repo: string;
|
|
@@ -12,7 +15,7 @@ export declare function parseRepoFlags(args: string[]): {
|
|
|
12
15
|
};
|
|
13
16
|
export declare function resolveSinceValue(value: string, now?: Date): string;
|
|
14
17
|
export declare function formatLogLine(message: string, now?: Date): string;
|
|
15
|
-
export declare function formatDoctorReport(result:
|
|
18
|
+
export declare function formatDoctorReport(result: DoctorReport): string;
|
|
16
19
|
export declare function run(argv: string[], stdout?: NodeJS.WritableStream): Promise<void>;
|
|
17
20
|
export {};
|
|
18
21
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAOA,OAAO,EAAmB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyBpE,KAAK,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,KAAK,YAAY,GAAG,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAkDvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAO7E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE,CAiDxH;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CA2C/E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAE7E;AA6BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiC/D;AAQD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0RvG"}
|
package/dist/main.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { once } from 'node:events';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import path from 'node:path';
|
|
3
5
|
import { parseArgs } from 'node:util';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
4
7
|
import { createApiServer, GHCrawlService } from '@ghcrawl/api-core';
|
|
5
8
|
import { runInitWizard } from './init-wizard.js';
|
|
6
9
|
import { startTui } from './tui/app.js';
|
|
10
|
+
const CLI_VERSION = loadCliVersion();
|
|
7
11
|
function usage(devMode = false) {
|
|
8
12
|
const lines = [
|
|
9
13
|
'ghcrawl <command> [options]',
|
|
@@ -11,16 +15,26 @@ function usage(devMode = false) {
|
|
|
11
15
|
'Commands:',
|
|
12
16
|
' init [--reconfigure]',
|
|
13
17
|
' doctor',
|
|
18
|
+
' version',
|
|
14
19
|
' sync <owner/repo> [--since <iso|duration>] [--limit <count>] [--include-comments] [--full-reconcile]',
|
|
15
20
|
' refresh <owner/repo> [--no-sync] [--no-embed] [--no-cluster]',
|
|
21
|
+
' threads <owner/repo> [--numbers <n,n,...>] [--kind issue|pull_request] [--include-closed]',
|
|
22
|
+
' author <owner/repo> --login <user> [--include-closed]',
|
|
23
|
+
' close-thread <owner/repo> --number <thread>',
|
|
24
|
+
' close-cluster <owner/repo> --id <cluster-id>',
|
|
16
25
|
' embed <owner/repo> [--number <thread>]',
|
|
17
26
|
' cluster <owner/repo> [--k <count>] [--threshold <score>]',
|
|
18
|
-
' clusters <owner/repo> [--min-size <count>] [--limit <count>] [--sort recent|size] [--search <text>]',
|
|
19
|
-
' cluster-detail <owner/repo> --id <cluster-id> [--member-limit <count>] [--body-chars <count>]',
|
|
27
|
+
' clusters <owner/repo> [--min-size <count>] [--limit <count>] [--sort recent|size] [--search <text>] [--include-closed]',
|
|
28
|
+
' cluster-detail <owner/repo> --id <cluster-id> [--member-limit <count>] [--body-chars <count>] [--include-closed]',
|
|
20
29
|
' search <owner/repo> --query <text> [--mode keyword|semantic|hybrid]',
|
|
21
30
|
' neighbors <owner/repo> --number <thread> [--limit <count>] [--threshold <score>]',
|
|
22
31
|
' tui [owner/repo]',
|
|
23
32
|
' serve',
|
|
33
|
+
'',
|
|
34
|
+
'Notes:',
|
|
35
|
+
' refresh/sync/embed call remote services and should be run intentionally.',
|
|
36
|
+
' cluster is local-only but can still take ~10 minutes on a ~12k issue/PR repo.',
|
|
37
|
+
' clusters reads the existing local cluster data and is intended to be fast.',
|
|
24
38
|
];
|
|
25
39
|
if (devMode) {
|
|
26
40
|
lines.push('', 'Advanced Commands:', ' summarize <owner/repo> [--number <thread>] [--include-comments]', ' purge-comments <owner/repo> [--number <thread>]');
|
|
@@ -58,7 +72,10 @@ export function parseRepoFlags(args) {
|
|
|
58
72
|
limit: { type: 'string' },
|
|
59
73
|
'include-comments': { type: 'boolean' },
|
|
60
74
|
'full-reconcile': { type: 'boolean' },
|
|
75
|
+
'include-closed': { type: 'boolean' },
|
|
61
76
|
number: { type: 'string' },
|
|
77
|
+
numbers: { type: 'string' },
|
|
78
|
+
login: { type: 'string' },
|
|
62
79
|
query: { type: 'string' },
|
|
63
80
|
mode: { type: 'string' },
|
|
64
81
|
k: { type: 'string' },
|
|
@@ -146,9 +163,20 @@ function parsePositiveInteger(name, value) {
|
|
|
146
163
|
}
|
|
147
164
|
return parsed;
|
|
148
165
|
}
|
|
166
|
+
function parsePositiveIntegerList(name, value) {
|
|
167
|
+
const parts = value
|
|
168
|
+
.split(',')
|
|
169
|
+
.map((part) => part.trim())
|
|
170
|
+
.filter(Boolean);
|
|
171
|
+
if (parts.length === 0) {
|
|
172
|
+
throw new Error(`Invalid ${name}: ${value}`);
|
|
173
|
+
}
|
|
174
|
+
return parts.map((part) => parsePositiveInteger(name, part));
|
|
175
|
+
}
|
|
149
176
|
export function formatDoctorReport(result) {
|
|
150
177
|
const lines = [
|
|
151
178
|
'ghcrawl doctor',
|
|
179
|
+
`version: ${result.version}`,
|
|
152
180
|
'',
|
|
153
181
|
'Health',
|
|
154
182
|
` ok: ${formatBooleanStatus(result.health.ok)}`,
|
|
@@ -181,6 +209,10 @@ export async function run(argv, stdout = process.stdout) {
|
|
|
181
209
|
const parsedGlobals = parseGlobalFlags(argv);
|
|
182
210
|
const [commandRaw, ...rest] = parsedGlobals.argv;
|
|
183
211
|
const command = commandRaw;
|
|
212
|
+
if (commandRaw === '--version' || commandRaw === '-v') {
|
|
213
|
+
stdout.write(`${CLI_VERSION}\n`);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
184
216
|
if (!command || commandRaw === '--help' || commandRaw === '-h' || commandRaw === 'help') {
|
|
185
217
|
stdout.write(usage(parsedGlobals.devMode));
|
|
186
218
|
return;
|
|
@@ -210,11 +242,18 @@ export async function run(argv, stdout = process.stdout) {
|
|
|
210
242
|
json: { type: 'boolean' },
|
|
211
243
|
},
|
|
212
244
|
});
|
|
213
|
-
const result =
|
|
245
|
+
const result = {
|
|
246
|
+
version: CLI_VERSION,
|
|
247
|
+
...(await getService().doctor()),
|
|
248
|
+
};
|
|
214
249
|
const shouldWriteJson = parsed.values.json === true || stdout.isTTY !== true;
|
|
215
250
|
stdout.write(shouldWriteJson ? `${JSON.stringify(result, null, 2)}\n` : formatDoctorReport(result));
|
|
216
251
|
return;
|
|
217
252
|
}
|
|
253
|
+
case 'version': {
|
|
254
|
+
stdout.write(`${CLI_VERSION}\n`);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
218
257
|
case 'sync': {
|
|
219
258
|
const { owner, repo, values } = parseRepoFlags(rest);
|
|
220
259
|
const result = await getService().syncRepository({
|
|
@@ -242,6 +281,59 @@ export async function run(argv, stdout = process.stdout) {
|
|
|
242
281
|
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
243
282
|
return;
|
|
244
283
|
}
|
|
284
|
+
case 'threads': {
|
|
285
|
+
const { owner, repo, values } = parseRepoFlags(rest);
|
|
286
|
+
const kind = values.kind === 'issue' || values.kind === 'pull_request' ? values.kind : undefined;
|
|
287
|
+
const result = getService().listThreads({
|
|
288
|
+
owner,
|
|
289
|
+
repo,
|
|
290
|
+
kind,
|
|
291
|
+
numbers: typeof values.numbers === 'string' ? parsePositiveIntegerList('numbers', values.numbers) : undefined,
|
|
292
|
+
includeClosed: values['include-closed'] === true,
|
|
293
|
+
});
|
|
294
|
+
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
case 'author': {
|
|
298
|
+
const { owner, repo, values } = parseRepoFlags(rest);
|
|
299
|
+
if (typeof values.login !== 'string' || values.login.trim().length === 0) {
|
|
300
|
+
throw new Error('Missing --login');
|
|
301
|
+
}
|
|
302
|
+
const result = getService().listAuthorThreads({
|
|
303
|
+
owner,
|
|
304
|
+
repo,
|
|
305
|
+
login: values.login,
|
|
306
|
+
includeClosed: values['include-closed'] === true,
|
|
307
|
+
});
|
|
308
|
+
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
case 'close-thread': {
|
|
312
|
+
const { owner, repo, values } = parseRepoFlags(rest);
|
|
313
|
+
if (typeof values.number !== 'string') {
|
|
314
|
+
throw new Error('Missing --number');
|
|
315
|
+
}
|
|
316
|
+
const result = getService().closeThreadLocally({
|
|
317
|
+
owner,
|
|
318
|
+
repo,
|
|
319
|
+
threadNumber: parsePositiveInteger('number', values.number),
|
|
320
|
+
});
|
|
321
|
+
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
case 'close-cluster': {
|
|
325
|
+
const { owner, repo, values } = parseRepoFlags(rest);
|
|
326
|
+
if (typeof values.id !== 'string') {
|
|
327
|
+
throw new Error('Missing --id');
|
|
328
|
+
}
|
|
329
|
+
const result = getService().closeClusterLocally({
|
|
330
|
+
owner,
|
|
331
|
+
repo,
|
|
332
|
+
clusterId: parsePositiveInteger('id', values.id),
|
|
333
|
+
});
|
|
334
|
+
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
245
337
|
case 'summarize': {
|
|
246
338
|
const { owner, repo, values } = parseRepoFlags(rest);
|
|
247
339
|
const result = await getService().summarizeRepository({
|
|
@@ -298,6 +390,7 @@ export async function run(argv, stdout = process.stdout) {
|
|
|
298
390
|
limit: typeof values.limit === 'string' ? parsePositiveInteger('limit', values.limit) : undefined,
|
|
299
391
|
sort,
|
|
300
392
|
search: typeof values.search === 'string' ? values.search : undefined,
|
|
393
|
+
includeClosed: values['include-closed'] === true,
|
|
301
394
|
});
|
|
302
395
|
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
303
396
|
return;
|
|
@@ -317,6 +410,7 @@ export async function run(argv, stdout = process.stdout) {
|
|
|
317
410
|
bodyChars: typeof values['body-chars'] === 'string'
|
|
318
411
|
? parsePositiveInteger('body-chars', values['body-chars'])
|
|
319
412
|
: undefined,
|
|
413
|
+
includeClosed: values['include-closed'] === true,
|
|
320
414
|
});
|
|
321
415
|
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
322
416
|
return;
|
|
@@ -397,4 +491,10 @@ if (import.meta.url === `file://${process.argv[1]}`) {
|
|
|
397
491
|
process.exit(1);
|
|
398
492
|
});
|
|
399
493
|
}
|
|
494
|
+
function loadCliVersion() {
|
|
495
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
496
|
+
const packageJsonPath = path.resolve(here, '..', 'package.json');
|
|
497
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
498
|
+
return typeof packageJson.version === 'string' ? packageJson.version : '0.0.0';
|
|
499
|
+
}
|
|
400
500
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/app.d.ts
CHANGED
|
@@ -28,10 +28,12 @@ export declare function renderDetailPane(threadDetail: TuiThreadDetail | null, c
|
|
|
28
28
|
export declare function escapeBlessedText(value: string): string;
|
|
29
29
|
export declare function describeUpdateTask(task: keyof UpdateTaskSelection, stats: TuiRepoStats | null, now?: Date): string;
|
|
30
30
|
export declare function buildUpdatePipelineLabels(stats: TuiRepoStats | null, selection: UpdateTaskSelection, now?: Date): string[];
|
|
31
|
+
export declare function buildHelpContent(): string;
|
|
31
32
|
export declare function getRepositoryChoices(service: Pick<GHCrawlService, 'listRepositories'>, now?: Date): RepositoryChoice[];
|
|
32
33
|
export declare function parseOwnerRepoValue(value: string): {
|
|
33
34
|
owner: string;
|
|
34
35
|
repo: string;
|
|
35
36
|
} | null;
|
|
37
|
+
export declare function formatClusterDateColumn(value: string | null, locales?: Intl.LocalesArgument): string;
|
|
36
38
|
export {};
|
|
37
39
|
//# sourceMappingURL=app.d.ts.map
|
package/dist/tui/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEhB,YAAY,EAEZ,eAAe,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEhB,YAAY,EAEZ,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAUL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAGpB,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,gBAAgB,GACjB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAsBN,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAS/F;AAaD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmvBpE;AAsED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,eAAe,GAAG,IAAI,EACpC,aAAa,EAAE,gBAAgB,GAAG,IAAI,EACtC,SAAS,EAAE,YAAY,GACtB,MAAM,CAkDR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAwBD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,mBAAmB,EAC/B,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,GAAG,GAAE,IAAiB,GACrB,MAAM,CAiCR;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,SAAS,EAAE,mBAAmB,EAC9B,GAAG,GAAE,IAAiB,GACrB,MAAM,EAAE,CAMV;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAoCzC;AAsKD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC,EAAE,GAAG,GAAE,IAAiB,GAAG,gBAAgB,EAAE,CAalI;AAoND,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMzF;AAYD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAmBpG"}
|