@alejandrochaves/devflow-cli 0.3.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 +129 -4
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +37 -2
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/lint-config.d.ts +2 -0
- package/dist/commands/lint-config.d.ts.map +1 -0
- package/dist/commands/lint-config.js +91 -0
- package/dist/commands/lint-config.js.map +1 -0
- package/dist/commands/log.d.ts +2 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +89 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/release.d.ts +4 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +196 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/review.d.ts +2 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +109 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/stash.d.ts +2 -0
- package/dist/commands/stash.d.ts.map +1 -0
- package/dist/commands/stash.js +139 -0
- package/dist/commands/stash.js.map +1 -0
- package/dist/commands/stats.d.ts +2 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +98 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/worktree.d.ts +2 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +132 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/index.js +55 -2
- package/dist/index.js.map +1 -1
- package/dist/plugins.d.ts +3 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +69 -0
- package/dist/plugins.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -82,9 +82,11 @@ Interactive conventional commit with file staging, scope selection, and ticket i
|
|
|
82
82
|
1. If no files are staged, select files to stage (checkbox selection)
|
|
83
83
|
2. Select commit type
|
|
84
84
|
3. Select or enter scope (searchable list if configured, free text otherwise)
|
|
85
|
-
4. Enter commit
|
|
86
|
-
5.
|
|
87
|
-
6.
|
|
85
|
+
4. Enter commit subject
|
|
86
|
+
5. Optional: enter commit body (longer description)
|
|
87
|
+
6. Confirm if breaking change (adds `BREAKING CHANGE:` footer)
|
|
88
|
+
7. Optional: enter ticket reference (added as `Refs: TICKET` footer)
|
|
89
|
+
8. Preview and confirm
|
|
88
90
|
|
|
89
91
|
**Commit format:**
|
|
90
92
|
```
|
|
@@ -153,6 +155,91 @@ When you run `devflow pr`, stored test plan steps auto-populate the "Test Plan"
|
|
|
153
155
|
- [ ] Confirm logout clears session data
|
|
154
156
|
```
|
|
155
157
|
|
|
158
|
+
### `devflow release` (alias: `rel`)
|
|
159
|
+
|
|
160
|
+
Automated release flow: version bump, changelog update, git tag, push, and GitHub release.
|
|
161
|
+
|
|
162
|
+
**Flow:**
|
|
163
|
+
1. Detects current version from `package.json`
|
|
164
|
+
2. Analyzes commits since last tag to suggest bump type (patch/minor/major)
|
|
165
|
+
3. Confirm version
|
|
166
|
+
4. Updates `CHANGELOG.md` with grouped commits
|
|
167
|
+
5. Commits version bump and changelog
|
|
168
|
+
6. Creates git tag
|
|
169
|
+
7. Pushes tag and commits
|
|
170
|
+
8. Creates GitHub release with changelog body
|
|
171
|
+
|
|
172
|
+
Requires `gh` CLI for the GitHub release step.
|
|
173
|
+
|
|
174
|
+
### `devflow review` (alias: `rv`)
|
|
175
|
+
|
|
176
|
+
List and interact with open pull requests.
|
|
177
|
+
|
|
178
|
+
**Flow:**
|
|
179
|
+
1. Lists open PRs for the repo with author, title, and status
|
|
180
|
+
2. Select a PR to inspect
|
|
181
|
+
3. Shows diff stat summary
|
|
182
|
+
4. Choose an action: checkout, approve, comment, request changes, or open in browser
|
|
183
|
+
|
|
184
|
+
Requires `gh` CLI.
|
|
185
|
+
|
|
186
|
+
### `devflow stash` (alias: `st`)
|
|
187
|
+
|
|
188
|
+
Named stash management with an interactive interface.
|
|
189
|
+
|
|
190
|
+
**Actions:**
|
|
191
|
+
- **Save** — stash with a descriptive name, optionally include untracked files
|
|
192
|
+
- **Pop** — apply and remove a stash
|
|
193
|
+
- **Apply** — apply without removing
|
|
194
|
+
- **Drop** — delete a stash
|
|
195
|
+
- **Show** — view the stash diff
|
|
196
|
+
|
|
197
|
+
### `devflow worktree` (alias: `wt`)
|
|
198
|
+
|
|
199
|
+
Manage git worktrees for working on multiple branches in parallel.
|
|
200
|
+
|
|
201
|
+
**Actions:**
|
|
202
|
+
- **Add** — create a new worktree (auto-creates branch if needed), suggests a path based on repo root
|
|
203
|
+
- **Remove** — select and remove a worktree (with force option for dirty trees)
|
|
204
|
+
|
|
205
|
+
Shows all existing worktrees with the current one highlighted.
|
|
206
|
+
|
|
207
|
+
### `devflow log` (alias: `l`)
|
|
208
|
+
|
|
209
|
+
Interactive commit history with actions.
|
|
210
|
+
|
|
211
|
+
**Flow:**
|
|
212
|
+
1. Shows commits on the current branch (since diverging from base)
|
|
213
|
+
2. Select a commit to inspect
|
|
214
|
+
3. Shows commit details and file stats
|
|
215
|
+
4. Choose an action: cherry-pick, revert, create fixup, or view full diff
|
|
216
|
+
|
|
217
|
+
### `devflow stats`
|
|
218
|
+
|
|
219
|
+
Show commit pattern analytics for the repository:
|
|
220
|
+
|
|
221
|
+
- **Commit types** — distribution with bar chart (feat, fix, chore, etc.)
|
|
222
|
+
- **Top scopes** — most frequently used scopes
|
|
223
|
+
- **Contributors** — commit counts per author
|
|
224
|
+
- **Summary** — total commits, local branches, first commit date
|
|
225
|
+
|
|
226
|
+
### `devflow lint-config` (alias: `lint`)
|
|
227
|
+
|
|
228
|
+
Validate `.devflow.json` for errors and warnings. Designed to run in CI pipelines (exits with code 1 on errors).
|
|
229
|
+
|
|
230
|
+
**Checks:**
|
|
231
|
+
- Valid JSON syntax
|
|
232
|
+
- Config structure validation (via `validateConfig`)
|
|
233
|
+
- Scopes have descriptions
|
|
234
|
+
- Scope path patterns contain globs or path separators
|
|
235
|
+
- PR template sections are recognized values
|
|
236
|
+
- Commit format placeholders are valid
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# In CI
|
|
240
|
+
npx devflow lint-config
|
|
241
|
+
```
|
|
242
|
+
|
|
156
243
|
### `devflow undo` (alias: `u`)
|
|
157
244
|
|
|
158
245
|
Undo the last commit, keeping changes staged. Shows a preview of the commit that will be undone before confirming.
|
|
@@ -208,7 +295,7 @@ Generates a changelog entry from conventional commits since the last git tag:
|
|
|
208
295
|
### `devflow doctor`
|
|
209
296
|
|
|
210
297
|
Checks that all devflow dependencies are properly configured:
|
|
211
|
-
- git, node (>=
|
|
298
|
+
- git, node (>= 20), gh CLI + auth
|
|
212
299
|
- `.devflow.json`, commitlint config, husky hooks
|
|
213
300
|
- `package.json` scripts
|
|
214
301
|
|
|
@@ -235,8 +322,14 @@ eval "$(devflow completions --shell bash)"
|
|
|
235
322
|
| `devflow undo` | `devflow u` |
|
|
236
323
|
| `devflow fixup` | `devflow f` |
|
|
237
324
|
| `devflow merge` | `devflow m` |
|
|
325
|
+
| `devflow release` | `devflow rel` |
|
|
326
|
+
| `devflow review` | `devflow rv` |
|
|
327
|
+
| `devflow stash` | `devflow st` |
|
|
328
|
+
| `devflow worktree` | `devflow wt` |
|
|
329
|
+
| `devflow log` | `devflow l` |
|
|
238
330
|
| `devflow status` | `devflow s` |
|
|
239
331
|
| `devflow test-plan` | `devflow tp` |
|
|
332
|
+
| `devflow lint-config` | `devflow lint` |
|
|
240
333
|
|
|
241
334
|
## Global Options
|
|
242
335
|
|
|
@@ -401,6 +494,38 @@ devflow checks for newer versions on npm once every 24 hours and displays a non-
|
|
|
401
494
|
─ Update available: 0.2.0 → 0.3.0 (npm update @alejandrochaves/devflow-cli) ─
|
|
402
495
|
```
|
|
403
496
|
|
|
497
|
+
## Plugins
|
|
498
|
+
|
|
499
|
+
Extend devflow with custom commands via the plugin system. Plugins are automatically discovered from:
|
|
500
|
+
|
|
501
|
+
1. **npm packages** — any dependency matching `devflow-plugin-*` or `@scope/devflow-plugin-*`
|
|
502
|
+
2. **Config** — explicit list in `.devflow.json`:
|
|
503
|
+
|
|
504
|
+
```json
|
|
505
|
+
{
|
|
506
|
+
"plugins": ["devflow-plugin-jira", "@myorg/devflow-plugin-deploy"]
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### Writing a Plugin
|
|
511
|
+
|
|
512
|
+
A plugin is an npm package that exports a `register` function:
|
|
513
|
+
|
|
514
|
+
```typescript
|
|
515
|
+
import { Command } from "commander";
|
|
516
|
+
|
|
517
|
+
export function register(program: Command): void {
|
|
518
|
+
program
|
|
519
|
+
.command("deploy")
|
|
520
|
+
.description("Deploy the current branch")
|
|
521
|
+
.action(() => {
|
|
522
|
+
// your logic here
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
Plugins receive the Commander `program` instance and can add commands, options, or hooks.
|
|
528
|
+
|
|
404
529
|
## Requirements
|
|
405
530
|
|
|
406
531
|
- Node.js >= 20.12
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,MAAM,cAAc,CAAC;AAIjD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,SAAS,CAqB9F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CASzE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvF,MAAM,CAaR;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,MAAM,cAAc,CAAC;AAIjD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,SAAS,CAqB9F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CASzE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvF,MAAM,CAaR;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkNrF"}
|
package/dist/commands/commit.js
CHANGED
|
@@ -170,15 +170,50 @@ export async function commitCommand(options = {}) {
|
|
|
170
170
|
const ticket = inferTicket();
|
|
171
171
|
const breaking = isBreaking ? "!" : "";
|
|
172
172
|
const scope = finalScope || "";
|
|
173
|
-
const
|
|
173
|
+
const subject = formatCommitMessage(config.commitFormat, {
|
|
174
174
|
type,
|
|
175
175
|
ticket,
|
|
176
176
|
breaking,
|
|
177
177
|
scope,
|
|
178
178
|
message: message.trim(),
|
|
179
179
|
});
|
|
180
|
+
// Optional body
|
|
181
|
+
const addBody = await confirm({
|
|
182
|
+
message: "Add a longer description (body)?",
|
|
183
|
+
default: false,
|
|
184
|
+
});
|
|
185
|
+
let body = "";
|
|
186
|
+
if (addBody) {
|
|
187
|
+
body = await input({
|
|
188
|
+
message: "Body (longer explanation):",
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
// Breaking change footer
|
|
192
|
+
let breakingFooter = "";
|
|
193
|
+
if (isBreaking) {
|
|
194
|
+
breakingFooter = await input({
|
|
195
|
+
message: "Describe the breaking change:",
|
|
196
|
+
validate: (val) => val.trim().length > 0 || "Breaking change description is required",
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
// Build full message
|
|
200
|
+
const parts = [subject];
|
|
201
|
+
if (body.trim())
|
|
202
|
+
parts.push(body.trim());
|
|
203
|
+
const footers = [];
|
|
204
|
+
if (breakingFooter.trim())
|
|
205
|
+
footers.push(`BREAKING CHANGE: ${breakingFooter.trim()}`);
|
|
206
|
+
if (ticket && ticket !== "UNTRACKED")
|
|
207
|
+
footers.push(`Refs: ${ticket}`);
|
|
208
|
+
if (footers.length > 0)
|
|
209
|
+
parts.push(footers.join("\n"));
|
|
210
|
+
const fullMessage = parts.join("\n\n");
|
|
180
211
|
console.log(`\n${dim("───")} ${bold("Commit Preview")} ${dim("───")}`);
|
|
181
|
-
console.log(green(
|
|
212
|
+
console.log(green(subject));
|
|
213
|
+
if (body.trim())
|
|
214
|
+
console.log(`\n${body.trim()}`);
|
|
215
|
+
if (footers.length > 0)
|
|
216
|
+
console.log(`\n${dim(footers.join("\n"))}`);
|
|
182
217
|
console.log(`${dim("───────────────────")}\n`);
|
|
183
218
|
if (options.dryRun) {
|
|
184
219
|
console.log(dim("[dry-run] No commit created."));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-config.d.ts","sourceRoot":"","sources":["../../src/commands/lint-config.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,IAAI,IAAI,CAgGxC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "fs";
|
|
2
|
+
import { resolve } from "path";
|
|
3
|
+
import { bold, dim, green, yellow, red } from "../colors.js";
|
|
4
|
+
import { validateConfig } from "../config.js";
|
|
5
|
+
export function lintConfigCommand() {
|
|
6
|
+
const cwd = process.cwd();
|
|
7
|
+
const configPath = resolve(cwd, ".devflow.json");
|
|
8
|
+
console.log(`\n${dim("───")} ${bold("Config Lint")} ${dim("───")}\n`);
|
|
9
|
+
if (!existsSync(configPath)) {
|
|
10
|
+
console.log(red("✗ No .devflow.json found"));
|
|
11
|
+
console.log(dim(" Run: devflow init"));
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
let raw;
|
|
15
|
+
try {
|
|
16
|
+
raw = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
console.log(red("✗ Invalid JSON in .devflow.json"));
|
|
20
|
+
console.log(dim(` ${err.message}`));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const warnings = validateConfig(raw);
|
|
24
|
+
// Additional checks for CI
|
|
25
|
+
const errors = [];
|
|
26
|
+
// Check scopes have descriptions
|
|
27
|
+
if (raw.scopes && Array.isArray(raw.scopes)) {
|
|
28
|
+
for (let i = 0; i < raw.scopes.length; i++) {
|
|
29
|
+
const scope = raw.scopes[i];
|
|
30
|
+
if (!scope.description) {
|
|
31
|
+
warnings.push({
|
|
32
|
+
field: `scopes[${i}]`,
|
|
33
|
+
message: `Scope "${scope.value}" is missing a description`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (scope.paths && Array.isArray(scope.paths)) {
|
|
37
|
+
for (const pattern of scope.paths) {
|
|
38
|
+
if (!pattern.includes("*") && !pattern.includes("/")) {
|
|
39
|
+
warnings.push({
|
|
40
|
+
field: `scopes[${i}].paths`,
|
|
41
|
+
message: `Pattern "${pattern}" may not match any files (missing glob or path separator)`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Check PR template sections are valid
|
|
49
|
+
if (raw.prTemplate && typeof raw.prTemplate === "object") {
|
|
50
|
+
const template = raw.prTemplate;
|
|
51
|
+
const validSections = ["summary", "ticket", "type", "screenshots", "testPlan", "checklist"];
|
|
52
|
+
if (template.sections && Array.isArray(template.sections)) {
|
|
53
|
+
for (const section of template.sections) {
|
|
54
|
+
if (!validSections.includes(section)) {
|
|
55
|
+
errors.push(`Unknown PR template section: "${section}"`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Check commit format placeholders
|
|
61
|
+
if (raw.commitFormat && typeof raw.commitFormat === "string") {
|
|
62
|
+
const format = raw.commitFormat;
|
|
63
|
+
const validPlaceholders = ["{type}", "{ticket}", "{breaking}", "{scope}", "{message}"];
|
|
64
|
+
const found = format.match(/\{[^}]+\}/g) || [];
|
|
65
|
+
for (const ph of found) {
|
|
66
|
+
if (!validPlaceholders.includes(ph)) {
|
|
67
|
+
errors.push(`Unknown placeholder in commitFormat: "${ph}"`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Report
|
|
72
|
+
if (errors.length === 0 && warnings.length === 0) {
|
|
73
|
+
console.log(green("✓ .devflow.json is valid"));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (warnings.length > 0) {
|
|
77
|
+
console.log(yellow(`${warnings.length} warning(s):\n`));
|
|
78
|
+
for (const w of warnings) {
|
|
79
|
+
console.log(` ${yellow("⚠")} ${dim(`[${w.field}]`)} ${w.message}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (errors.length > 0) {
|
|
83
|
+
console.log(red(`\n${errors.length} error(s):\n`));
|
|
84
|
+
for (const e of errors) {
|
|
85
|
+
console.log(` ${red("✗")} ${e}`);
|
|
86
|
+
}
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
console.log("");
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=lint-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint-config.js","sourceRoot":"","sources":["../../src/commands/lint-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AA8BA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA0EhD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import { bold, dim, green, cyan } from "../colors.js";
|
|
4
|
+
import { getDefaultBase, getBranch } from "../git.js";
|
|
5
|
+
function getLog(base, limit = 20) {
|
|
6
|
+
try {
|
|
7
|
+
const format = "%H|%h|%s|%an|%ar";
|
|
8
|
+
const range = base ? `${base}..HEAD` : `HEAD~${limit}..HEAD`;
|
|
9
|
+
const result = execSync(`git log ${range} --pretty=format:"${format}" -${limit}`, {
|
|
10
|
+
encoding: "utf-8",
|
|
11
|
+
}).trim();
|
|
12
|
+
if (!result)
|
|
13
|
+
return [];
|
|
14
|
+
return result.split("\n").map((line) => {
|
|
15
|
+
const [hash, shortHash, subject, author, date] = line.split("|");
|
|
16
|
+
return { hash, shortHash, subject, author, date };
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export async function logCommand() {
|
|
24
|
+
try {
|
|
25
|
+
const branch = getBranch();
|
|
26
|
+
const base = getDefaultBase(branch);
|
|
27
|
+
const entries = getLog(base);
|
|
28
|
+
if (entries.length === 0) {
|
|
29
|
+
console.log("No commits on this branch.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.log(`\n${dim("───")} ${bold("Log")} ${dim(`(${branch})`)} ${dim("───")}\n`);
|
|
33
|
+
const selected = await select({
|
|
34
|
+
message: "Select a commit:",
|
|
35
|
+
choices: [
|
|
36
|
+
...entries.map((e) => ({
|
|
37
|
+
value: e.hash,
|
|
38
|
+
name: `${cyan(e.shortHash)} ${e.subject} ${dim(`(${e.author}, ${e.date})`)}`,
|
|
39
|
+
})),
|
|
40
|
+
{ value: "__done__", name: dim("Done") },
|
|
41
|
+
],
|
|
42
|
+
});
|
|
43
|
+
if (selected === "__done__")
|
|
44
|
+
return;
|
|
45
|
+
const entry = entries.find((e) => e.hash === selected);
|
|
46
|
+
// Show commit detail
|
|
47
|
+
const detail = execSync(`git show --stat ${selected} --format="%B"`, {
|
|
48
|
+
encoding: "utf-8",
|
|
49
|
+
}).trim();
|
|
50
|
+
console.log(`\n${dim(detail)}\n`);
|
|
51
|
+
const action = await select({
|
|
52
|
+
message: "Action:",
|
|
53
|
+
choices: [
|
|
54
|
+
{ value: "cherry-pick", name: "Cherry-pick to current branch" },
|
|
55
|
+
{ value: "revert", name: "Revert this commit" },
|
|
56
|
+
{ value: "fixup", name: "Create fixup for this commit" },
|
|
57
|
+
{ value: "diff", name: "Show full diff" },
|
|
58
|
+
{ value: "done", name: "Done" },
|
|
59
|
+
],
|
|
60
|
+
});
|
|
61
|
+
switch (action) {
|
|
62
|
+
case "cherry-pick":
|
|
63
|
+
execSync(`git cherry-pick ${selected}`, { stdio: "inherit" });
|
|
64
|
+
console.log(green(`✓ Cherry-picked ${entry.shortHash}`));
|
|
65
|
+
break;
|
|
66
|
+
case "revert":
|
|
67
|
+
execSync(`git revert ${selected}`, { stdio: "inherit" });
|
|
68
|
+
console.log(green(`✓ Reverted ${entry.shortHash}`));
|
|
69
|
+
break;
|
|
70
|
+
case "fixup":
|
|
71
|
+
execSync(`git commit --fixup=${selected}`, { stdio: "inherit" });
|
|
72
|
+
console.log(green(`✓ Created fixup for ${entry.shortHash}`));
|
|
73
|
+
break;
|
|
74
|
+
case "diff": {
|
|
75
|
+
const diff = execSync(`git show ${selected}`, { encoding: "utf-8" });
|
|
76
|
+
console.log(diff);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error.name === "ExitPromptError") {
|
|
83
|
+
console.log("\nCancelled.");
|
|
84
|
+
process.exit(0);
|
|
85
|
+
}
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAU,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAUtD,SAAS,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,KAAK,qBAAqB,MAAM,MAAM,KAAK,EAAE,EAAE;YAChF,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;YAC5B,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrB,KAAK,EAAE,CAAC,CAAC,IAAI;oBACb,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;iBAC7E,CAAC,CAAC;gBACH,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;aACzC;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,UAAU;YAAE,OAAO;QAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAE,CAAC;QAExD,qBAAqB;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,mBAAmB,QAAQ,gBAAgB,EAAE;YACnE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,+BAA+B,EAAE;gBAC/D,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAC/C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,8BAA8B,EAAE;gBACxD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACzC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;aAChC;SACF,CAAC,CAAC;QAEH,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,aAAa;gBAChB,QAAQ,CAAC,mBAAmB,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM;YAER,KAAK,QAAQ;gBACX,QAAQ,CAAC,cAAc,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM;YAER,KAAK,OAAO;gBACV,QAAQ,CAAC,sBAAsB,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC7D,MAAM;YAER,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAe,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"AAiIA,wBAAsB,cAAc,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGtF"}
|