@alejandrochaves/devflow-cli 0.4.0 → 0.6.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 CHANGED
@@ -183,6 +183,21 @@ List and interact with open pull requests.
183
183
 
184
184
  Requires `gh` CLI.
185
185
 
186
+ ### `devflow comments` (alias: `cm`)
187
+
188
+ Show PR reviews and inline comments with diff context. Displays all reviews and inline code comments grouped by file, with the surrounding diff hunk so you can see exactly what was commented on.
189
+
190
+ **Usage:**
191
+ ```bash
192
+ # Comments for the current branch's PR
193
+ devflow comments
194
+
195
+ # Comments for a specific PR
196
+ devflow comments --number 303
197
+ ```
198
+
199
+ Requires `gh` CLI.
200
+
186
201
  ### `devflow stash` (alias: `st`)
187
202
 
188
203
  Named stash management with an interactive interface.
@@ -324,6 +339,7 @@ eval "$(devflow completions --shell bash)"
324
339
  | `devflow merge` | `devflow m` |
325
340
  | `devflow release` | `devflow rel` |
326
341
  | `devflow review` | `devflow rv` |
342
+ | `devflow comments` | `devflow cm` |
327
343
  | `devflow stash` | `devflow st` |
328
344
  | `devflow worktree` | `devflow wt` |
329
345
  | `devflow log` | `devflow l` |
@@ -0,0 +1,6 @@
1
+ export declare function commentsCommand(opts: {
2
+ number?: string;
3
+ resolved?: boolean;
4
+ unresolved?: boolean;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"AA0LA,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HhB"}
@@ -0,0 +1,266 @@
1
+ import { execSync } from "child_process";
2
+ import { bold, dim, cyan, yellow, green, magenta, gray } from "../colors.js";
3
+ import { checkGhInstalled } from "../git.js";
4
+ function getCurrentPr() {
5
+ try {
6
+ const result = execSync("gh pr view --json number,title", {
7
+ encoding: "utf-8",
8
+ stdio: ["pipe", "pipe", "ignore"],
9
+ }).trim();
10
+ return JSON.parse(result);
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ }
16
+ function getRepoInfo() {
17
+ try {
18
+ const result = execSync("gh repo view --json owner,name", {
19
+ encoding: "utf-8",
20
+ stdio: ["pipe", "pipe", "ignore"],
21
+ }).trim();
22
+ const data = JSON.parse(result);
23
+ return { owner: data.owner.login, repo: data.name };
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ function getReviewThreads(owner, repo, prNumber) {
30
+ const query = `
31
+ query {
32
+ repository(owner: "${owner}", name: "${repo}") {
33
+ pullRequest(number: ${prNumber}) {
34
+ reviewThreads(first: 100) {
35
+ nodes {
36
+ isResolved
37
+ path
38
+ line
39
+ diffHunk
40
+ comments(first: 20) {
41
+ nodes {
42
+ author { login }
43
+ body
44
+ createdAt
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ `;
53
+ try {
54
+ const result = execSync(`gh api graphql -f query='${query.replace(/'/g, "'\\''")}'`, {
55
+ encoding: "utf-8",
56
+ stdio: ["pipe", "pipe", "ignore"],
57
+ }).trim();
58
+ const data = JSON.parse(result);
59
+ const threads = data.data.repository.pullRequest.reviewThreads.nodes;
60
+ return threads.map((t) => ({
61
+ isResolved: t.isResolved,
62
+ path: t.path,
63
+ line: t.line,
64
+ diffHunk: t.diffHunk || "",
65
+ comments: t.comments.nodes.map((c) => ({
66
+ author: c.author?.login || "unknown",
67
+ body: c.body,
68
+ createdAt: c.createdAt,
69
+ })),
70
+ }));
71
+ }
72
+ catch {
73
+ return [];
74
+ }
75
+ }
76
+ function getReviews(owner, repo, prNumber) {
77
+ try {
78
+ const result = execSync(`gh api repos/${owner}/${repo}/pulls/${prNumber}/reviews --jq '[.[] | {author: .user.login, state: .state, body: .body, submittedAt: .submitted_at}]'`, { encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] }).trim();
79
+ return result ? JSON.parse(result) : [];
80
+ }
81
+ catch {
82
+ return [];
83
+ }
84
+ }
85
+ function formatState(state) {
86
+ switch (state) {
87
+ case "APPROVED":
88
+ return green("APPROVED");
89
+ case "CHANGES_REQUESTED":
90
+ return yellow("CHANGES REQUESTED");
91
+ case "COMMENTED":
92
+ return cyan("COMMENTED");
93
+ case "DISMISSED":
94
+ return gray("DISMISSED");
95
+ default:
96
+ return state;
97
+ }
98
+ }
99
+ function formatDiffHunk(hunk, resolved) {
100
+ const lines = hunk.split("\n").slice(-4);
101
+ const format = resolved ? dim : (s) => s;
102
+ return lines
103
+ .map((line) => {
104
+ if (line.startsWith("+"))
105
+ return format(green(` ┃ ${line}`));
106
+ if (line.startsWith("-"))
107
+ return format(yellow(` ┃ ${line}`));
108
+ if (line.startsWith("@@"))
109
+ return dim(` ┃ ${line}`);
110
+ return gray(` ┃ ${line}`);
111
+ })
112
+ .join("\n");
113
+ }
114
+ function formatDate(iso) {
115
+ const date = new Date(iso);
116
+ const now = new Date();
117
+ const diffMs = now.getTime() - date.getTime();
118
+ const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
119
+ const diffDays = Math.floor(diffHours / 24);
120
+ if (diffHours < 1)
121
+ return "just now";
122
+ if (diffHours < 24)
123
+ return `${diffHours}h ago`;
124
+ if (diffDays < 7)
125
+ return `${diffDays}d ago`;
126
+ return date.toLocaleDateString();
127
+ }
128
+ function renderThread(thread) {
129
+ const resolvedTag = thread.isResolved ? dim(gray(" [resolved]")) : "";
130
+ const lineInfo = thread.line ? `:${thread.line}` : "";
131
+ const firstComment = thread.comments[0];
132
+ console.log(` ${dim(`line${lineInfo}`)} ${dim("·")} ${magenta(`@${firstComment.author}`)} ${dim(formatDate(firstComment.createdAt))}${resolvedTag}`);
133
+ if (thread.diffHunk) {
134
+ console.log(formatDiffHunk(thread.diffHunk, thread.isResolved));
135
+ }
136
+ for (const comment of thread.comments) {
137
+ const bodyLines = comment.body.trim().split("\n");
138
+ const prefix = thread.comments.length > 1 ? `${magenta(`@${comment.author}`)} ` : "";
139
+ for (let i = 0; i < bodyLines.length; i++) {
140
+ const line = thread.isResolved ? dim(bodyLines[i]) : bodyLines[i];
141
+ if (i === 0 && prefix && thread.comments.indexOf(comment) > 0) {
142
+ console.log(` ${dim("│")} ${prefix}${line}`);
143
+ }
144
+ else {
145
+ console.log(` ${dim("│")} ${line}`);
146
+ }
147
+ }
148
+ }
149
+ console.log("");
150
+ }
151
+ export async function commentsCommand(opts) {
152
+ checkGhInstalled();
153
+ const repoInfo = getRepoInfo();
154
+ if (!repoInfo) {
155
+ console.error("Error: Could not determine repository info.");
156
+ process.exit(1);
157
+ }
158
+ let prNumber;
159
+ let prTitle;
160
+ if (opts.number) {
161
+ prNumber = parseInt(opts.number, 10);
162
+ prTitle = `PR #${prNumber}`;
163
+ }
164
+ else {
165
+ const pr = getCurrentPr();
166
+ if (!pr) {
167
+ console.error("No PR found for the current branch. Use --number <n> to specify a PR.");
168
+ process.exit(1);
169
+ }
170
+ prNumber = pr.number;
171
+ prTitle = pr.title;
172
+ }
173
+ // Determine filter mode
174
+ const showResolved = opts.resolved === true;
175
+ const showUnresolved = opts.unresolved === true;
176
+ const showAll = !showResolved && !showUnresolved; // default: show all with distinction
177
+ const reviews = getReviews(repoInfo.owner, repoInfo.repo, prNumber);
178
+ const allThreads = getReviewThreads(repoInfo.owner, repoInfo.repo, prNumber);
179
+ // Filter threads
180
+ let threads;
181
+ if (showResolved) {
182
+ threads = allThreads.filter((t) => t.isResolved);
183
+ }
184
+ else if (showUnresolved) {
185
+ threads = allThreads.filter((t) => !t.isResolved);
186
+ }
187
+ else {
188
+ threads = allThreads;
189
+ }
190
+ const filterLabel = showResolved
191
+ ? dim(" (resolved only)")
192
+ : showUnresolved
193
+ ? dim(" (unresolved only)")
194
+ : "";
195
+ console.log(`\n${dim("───")} ${cyan(`#${prNumber}`)} ${bold(prTitle)}${filterLabel} ${dim("───")}\n`);
196
+ // Show reviews (top-level)
197
+ const meaningfulReviews = reviews.filter((r) => r.state !== "PENDING");
198
+ if (meaningfulReviews.length > 0) {
199
+ console.log(`${bold("Reviews")}\n`);
200
+ for (const review of meaningfulReviews) {
201
+ console.log(` ${magenta(`@${review.author}`)} ${formatState(review.state)} ${dim(formatDate(review.submittedAt))}`);
202
+ if (review.body && review.body.trim()) {
203
+ const bodyLines = review.body.trim().split("\n");
204
+ for (const line of bodyLines) {
205
+ console.log(` ${line}`);
206
+ }
207
+ }
208
+ console.log("");
209
+ }
210
+ }
211
+ // Show threads grouped by file
212
+ if (threads.length > 0) {
213
+ const unresolvedCount = threads.filter((t) => !t.isResolved).length;
214
+ const resolvedCount = threads.filter((t) => t.isResolved).length;
215
+ const countParts = [];
216
+ if (unresolvedCount > 0)
217
+ countParts.push(yellow(`${unresolvedCount} unresolved`));
218
+ if (resolvedCount > 0)
219
+ countParts.push(dim(`${resolvedCount} resolved`));
220
+ console.log(`${bold("Inline Comments")} ${dim("(")}${countParts.join(dim(", "))}${dim(")")}\n`);
221
+ // Group by file
222
+ const byFile = new Map();
223
+ for (const thread of threads) {
224
+ const existing = byFile.get(thread.path) || [];
225
+ existing.push(thread);
226
+ byFile.set(thread.path, existing);
227
+ }
228
+ for (const [file, fileThreads] of byFile) {
229
+ const fileUnresolved = fileThreads.filter((t) => !t.isResolved).length;
230
+ const fileLabel = fileUnresolved > 0 ? ` ${yellow(`(${fileUnresolved} unresolved)`)}` : "";
231
+ console.log(` ${cyan(file)}${fileLabel}`);
232
+ console.log("");
233
+ // Show unresolved first, then resolved
234
+ const sorted = [...fileThreads].sort((a, b) => {
235
+ if (a.isResolved === b.isResolved)
236
+ return 0;
237
+ return a.isResolved ? 1 : -1;
238
+ });
239
+ for (const thread of sorted) {
240
+ renderThread(thread);
241
+ }
242
+ }
243
+ }
244
+ if (meaningfulReviews.length === 0 && threads.length === 0) {
245
+ console.log(dim(" No reviews or comments yet."));
246
+ console.log("");
247
+ }
248
+ // Summary
249
+ const approvals = reviews.filter((r) => r.state === "APPROVED").length;
250
+ const changesRequested = reviews.filter((r) => r.state === "CHANGES_REQUESTED").length;
251
+ const unresolvedTotal = allThreads.filter((t) => !t.isResolved).length;
252
+ const resolvedTotal = allThreads.filter((t) => t.isResolved).length;
253
+ const parts = [];
254
+ if (approvals > 0)
255
+ parts.push(green(`${approvals} approval${approvals > 1 ? "s" : ""}`));
256
+ if (changesRequested > 0)
257
+ parts.push(yellow(`${changesRequested} change request${changesRequested > 1 ? "s" : ""}`));
258
+ if (unresolvedTotal > 0)
259
+ parts.push(yellow(`${unresolvedTotal} unresolved`));
260
+ if (resolvedTotal > 0)
261
+ parts.push(dim(`${resolvedTotal} resolved`));
262
+ if (parts.length > 0) {
263
+ console.log(`${dim("───")} ${parts.join(dim(" · "))} ${dim("───")}\n`);
264
+ }
265
+ }
266
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ import { worktreeCommand } from "./commands/worktree.js";
21
21
  import { logCommand } from "./commands/log.js";
22
22
  import { statsCommand } from "./commands/stats.js";
23
23
  import { lintConfigCommand } from "./commands/lint-config.js";
24
+ import { commentsCommand } from "./commands/comments.js";
24
25
  import { loadPlugins } from "./plugins.js";
25
26
  import { checkForUpdates } from "./update-notifier.js";
26
27
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
@@ -84,6 +85,14 @@ program
84
85
  .alias("rv")
85
86
  .description("List and interact with open pull requests")
86
87
  .action(reviewCommand);
88
+ program
89
+ .command("comments")
90
+ .alias("cm")
91
+ .description("Show PR reviews and inline comments with diff context")
92
+ .option("--number <number>", "PR number (defaults to current branch PR)")
93
+ .option("--resolved", "Show only resolved comments")
94
+ .option("--unresolved", "Show only unresolved comments")
95
+ .action((opts) => commentsCommand(opts));
87
96
  program
88
97
  .command("stash")
89
98
  .alias("st")
@@ -158,7 +167,7 @@ function generateBashCompletions() {
158
167
  # Add to ~/.bashrc: eval "$(devflow completions --shell bash)"
159
168
  _devflow_completions() {
160
169
  local cur="\${COMP_WORDS[COMP_CWORD]}"
161
- local commands="branch commit pr amend undo fixup merge release review stash worktree log status test-plan changelog cleanup stats lint-config init doctor completions"
170
+ local commands="branch commit pr amend undo fixup merge release review comments stash worktree log status test-plan changelog cleanup stats lint-config init doctor completions"
162
171
 
163
172
  if [ "\${COMP_CWORD}" -eq 1 ]; then
164
173
  COMPREPLY=($(compgen -W "\${commands}" -- "\${cur}"))
@@ -183,6 +192,7 @@ _devflow() {
183
192
  'merge:Merge the current PR (alias: m)'
184
193
  'release:Create a release (alias: rel)'
185
194
  'review:List and interact with PRs (alias: rv)'
195
+ 'comments:Show PR reviews and inline comments (alias: cm)'
186
196
  'stash:Manage named stashes (alias: st)'
187
197
  'worktree:Manage git worktrees (alias: wt)'
188
198
  'log:Interactive commit log (alias: l)'
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alejandrochaves/devflow-cli",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Interactive CLI for branch creation, conventional commits, and PR management",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,7 +12,10 @@
12
12
  "test": "vitest run",
13
13
  "test:watch": "vitest",
14
14
  "publish:public": "npm publish --access=public",
15
- "prepublishOnly": "npm run build"
15
+ "prepublishOnly": "npm run build",
16
+ "docs:dev": "vitepress dev docs",
17
+ "docs:build": "vitepress build docs",
18
+ "docs:preview": "vitepress preview docs"
16
19
  },
17
20
  "keywords": [
18
21
  "cli",
@@ -44,6 +47,7 @@
44
47
  "devDependencies": {
45
48
  "@types/node": "^22.0.0",
46
49
  "typescript": "~5.9.2",
50
+ "vitepress": "^1.6.4",
47
51
  "vitest": "^4.0.18"
48
52
  }
49
53
  }