@alejandrochaves/devflow-cli 0.6.0 → 0.7.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 +49 -0
- package/dist/commands/issue.d.ts +4 -0
- package/dist/commands/issue.d.ts.map +1 -0
- package/dist/commands/issue.js +349 -0
- package/dist/commands/issue.js.map +1 -0
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -198,6 +198,53 @@ devflow comments --number 303
|
|
|
198
198
|
|
|
199
199
|
Requires `gh` CLI.
|
|
200
200
|
|
|
201
|
+
### `devflow issue` (alias: `i`)
|
|
202
|
+
|
|
203
|
+
Create GitHub issues using Scrum-style templates with an interactive flow.
|
|
204
|
+
|
|
205
|
+
**Issue Types:**
|
|
206
|
+
|
|
207
|
+
| Type | Label | Branch Type |
|
|
208
|
+
|------|-------|-------------|
|
|
209
|
+
| User Story | `feature` | `feat/` |
|
|
210
|
+
| Bug | `bug` | `fix/` |
|
|
211
|
+
| Task | `task` | `chore/` |
|
|
212
|
+
| Spike | `spike` | `chore/` |
|
|
213
|
+
| Tech Debt | `tech-debt` | `refactor/` |
|
|
214
|
+
|
|
215
|
+
**Flow:**
|
|
216
|
+
1. Select issue type
|
|
217
|
+
2. Fill in type-specific fields (guided prompts)
|
|
218
|
+
3. Preview the issue
|
|
219
|
+
4. Confirm and create via `gh issue create`
|
|
220
|
+
5. Optionally create a branch and start working
|
|
221
|
+
|
|
222
|
+
**Example:**
|
|
223
|
+
```
|
|
224
|
+
$ devflow issue
|
|
225
|
+
? Select issue type: › User Story
|
|
226
|
+
? As a: › logged-in user
|
|
227
|
+
? I want to: › export my data as CSV
|
|
228
|
+
? So that: › I can use it in spreadsheets
|
|
229
|
+
? Acceptance criteria:
|
|
230
|
+
1. CSV includes all user data
|
|
231
|
+
2. (blank to finish)
|
|
232
|
+
|
|
233
|
+
─── Issue Preview ───
|
|
234
|
+
Type: User Story
|
|
235
|
+
Title: export my data as CSV
|
|
236
|
+
Labels: feature
|
|
237
|
+
|
|
238
|
+
? Create this issue? › Yes
|
|
239
|
+
✓ Issue created: https://github.com/owner/repo/issues/42
|
|
240
|
+
|
|
241
|
+
? Create a branch and start working on this issue? › Yes
|
|
242
|
+
? Short branch description: › export-csv
|
|
243
|
+
✓ Branch created: feat/#42_export-csv
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Requires `gh` CLI.
|
|
247
|
+
|
|
201
248
|
### `devflow stash` (alias: `st`)
|
|
202
249
|
|
|
203
250
|
Named stash management with an interactive interface.
|
|
@@ -340,6 +387,7 @@ eval "$(devflow completions --shell bash)"
|
|
|
340
387
|
| `devflow release` | `devflow rel` |
|
|
341
388
|
| `devflow review` | `devflow rv` |
|
|
342
389
|
| `devflow comments` | `devflow cm` |
|
|
390
|
+
| `devflow issue` | `devflow i` |
|
|
343
391
|
| `devflow stash` | `devflow st` |
|
|
344
392
|
| `devflow worktree` | `devflow wt` |
|
|
345
393
|
| `devflow log` | `devflow l` |
|
|
@@ -361,6 +409,7 @@ devflow fixup --dry-run
|
|
|
361
409
|
devflow merge --dry-run
|
|
362
410
|
devflow cleanup --dry-run
|
|
363
411
|
devflow changelog --dry-run
|
|
412
|
+
devflow issue --dry-run
|
|
364
413
|
```
|
|
365
414
|
|
|
366
415
|
## Configuration
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"AAqRA,wBAAsB,YAAY,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsIpF"}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { select, input, confirm } from "@inquirer/prompts";
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import { loadConfig } from "../config.js";
|
|
4
|
+
import { bold, dim, green, cyan, gray } from "../colors.js";
|
|
5
|
+
import { checkGhInstalled } from "../git.js";
|
|
6
|
+
import { setTestPlan } from "../test-plan.js";
|
|
7
|
+
const ISSUE_TYPES = [
|
|
8
|
+
{ value: "user-story", label: "User Story", labelColor: "feature", branchType: "feat" },
|
|
9
|
+
{ value: "bug", label: "Bug", labelColor: "bug", branchType: "fix" },
|
|
10
|
+
{ value: "task", label: "Task", labelColor: "task", branchType: "chore" },
|
|
11
|
+
{ value: "spike", label: "Spike", labelColor: "spike", branchType: "chore" },
|
|
12
|
+
{ value: "tech-debt", label: "Tech Debt", labelColor: "tech-debt", branchType: "refactor" },
|
|
13
|
+
];
|
|
14
|
+
async function collectUserStory() {
|
|
15
|
+
const asA = await input({
|
|
16
|
+
message: "As a:",
|
|
17
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
18
|
+
});
|
|
19
|
+
const iWant = await input({
|
|
20
|
+
message: "I want to:",
|
|
21
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
22
|
+
});
|
|
23
|
+
const soThat = await input({
|
|
24
|
+
message: "So that:",
|
|
25
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
26
|
+
});
|
|
27
|
+
console.log(dim("\nAdd acceptance criteria (one per line). Empty line to finish:\n"));
|
|
28
|
+
const criteria = [];
|
|
29
|
+
let adding = true;
|
|
30
|
+
while (adding) {
|
|
31
|
+
const criterion = await input({
|
|
32
|
+
message: ` ${criteria.length + 1}.${criteria.length > 0 ? " (blank to finish)" : ""}`,
|
|
33
|
+
});
|
|
34
|
+
if (!criterion.trim()) {
|
|
35
|
+
adding = false;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
criteria.push(criterion.trim());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const notes = await input({
|
|
42
|
+
message: "Additional notes (optional):",
|
|
43
|
+
});
|
|
44
|
+
const title = iWant.trim();
|
|
45
|
+
const body = `## User Story
|
|
46
|
+
|
|
47
|
+
**As a** ${asA.trim()}
|
|
48
|
+
**I want to** ${iWant.trim()}
|
|
49
|
+
**So that** ${soThat.trim()}
|
|
50
|
+
|
|
51
|
+
## Acceptance Criteria
|
|
52
|
+
|
|
53
|
+
${criteria.map((c) => `- [ ] ${c}`).join("\n")}
|
|
54
|
+
${notes.trim() ? `\n## Notes\n\n${notes.trim()}` : ""}`;
|
|
55
|
+
return { title, body };
|
|
56
|
+
}
|
|
57
|
+
async function collectBug() {
|
|
58
|
+
const description = await input({
|
|
59
|
+
message: "What happened?",
|
|
60
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
61
|
+
});
|
|
62
|
+
const expected = await input({
|
|
63
|
+
message: "What was expected?",
|
|
64
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
65
|
+
});
|
|
66
|
+
console.log(dim("\nSteps to reproduce (one per line). Empty line to finish:\n"));
|
|
67
|
+
const steps = [];
|
|
68
|
+
let adding = true;
|
|
69
|
+
while (adding) {
|
|
70
|
+
const step = await input({
|
|
71
|
+
message: ` ${steps.length + 1}.${steps.length > 0 ? " (blank to finish)" : ""}`,
|
|
72
|
+
});
|
|
73
|
+
if (!step.trim()) {
|
|
74
|
+
adding = false;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
steps.push(step.trim());
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const environment = await input({
|
|
81
|
+
message: "Environment (browser, OS, version - optional):",
|
|
82
|
+
});
|
|
83
|
+
const logs = await input({
|
|
84
|
+
message: "Error logs or screenshots URL (optional):",
|
|
85
|
+
});
|
|
86
|
+
const title = description.trim();
|
|
87
|
+
const body = `## Bug Report
|
|
88
|
+
|
|
89
|
+
### Description
|
|
90
|
+
${description.trim()}
|
|
91
|
+
|
|
92
|
+
### Expected Behavior
|
|
93
|
+
${expected.trim()}
|
|
94
|
+
|
|
95
|
+
### Steps to Reproduce
|
|
96
|
+
${steps.map((s, i) => `${i + 1}. ${s}`).join("\n")}
|
|
97
|
+
${environment.trim() ? `\n### Environment\n${environment.trim()}` : ""}
|
|
98
|
+
${logs.trim() ? `\n### Logs / Screenshots\n${logs.trim()}` : ""}`;
|
|
99
|
+
return { title, body };
|
|
100
|
+
}
|
|
101
|
+
async function collectTask() {
|
|
102
|
+
const what = await input({
|
|
103
|
+
message: "What needs to be done?",
|
|
104
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
105
|
+
});
|
|
106
|
+
const why = await input({
|
|
107
|
+
message: "Why is this needed?",
|
|
108
|
+
});
|
|
109
|
+
console.log(dim("\nDone criteria (one per line). Empty line to finish:\n"));
|
|
110
|
+
const criteria = [];
|
|
111
|
+
let adding = true;
|
|
112
|
+
while (adding) {
|
|
113
|
+
const criterion = await input({
|
|
114
|
+
message: ` ${criteria.length + 1}.${criteria.length > 0 ? " (blank to finish)" : ""}`,
|
|
115
|
+
});
|
|
116
|
+
if (!criterion.trim()) {
|
|
117
|
+
adding = false;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
criteria.push(criterion.trim());
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const title = what.trim();
|
|
124
|
+
const body = `## Task
|
|
125
|
+
|
|
126
|
+
### Description
|
|
127
|
+
${what.trim()}
|
|
128
|
+
${why.trim() ? `\n### Context\n${why.trim()}` : ""}
|
|
129
|
+
|
|
130
|
+
### Done Criteria
|
|
131
|
+
|
|
132
|
+
${criteria.map((c) => `- [ ] ${c}`).join("\n")}`;
|
|
133
|
+
return { title, body };
|
|
134
|
+
}
|
|
135
|
+
async function collectSpike() {
|
|
136
|
+
const question = await input({
|
|
137
|
+
message: "What question needs to be answered?",
|
|
138
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
139
|
+
});
|
|
140
|
+
const timebox = await select({
|
|
141
|
+
message: "Timebox:",
|
|
142
|
+
choices: [
|
|
143
|
+
{ value: "2 hours", name: "2 hours" },
|
|
144
|
+
{ value: "4 hours", name: "4 hours" },
|
|
145
|
+
{ value: "1 day", name: "1 day" },
|
|
146
|
+
{ value: "2 days", name: "2 days" },
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
const output = await select({
|
|
150
|
+
message: "Expected output:",
|
|
151
|
+
choices: [
|
|
152
|
+
{ value: "Document with findings", name: "Document with findings" },
|
|
153
|
+
{ value: "Proof of concept", name: "Proof of concept" },
|
|
154
|
+
{ value: "Recommendation", name: "Recommendation" },
|
|
155
|
+
{ value: "Prototype", name: "Prototype" },
|
|
156
|
+
],
|
|
157
|
+
});
|
|
158
|
+
const context = await input({
|
|
159
|
+
message: "Background context (optional):",
|
|
160
|
+
});
|
|
161
|
+
const title = question.trim();
|
|
162
|
+
const body = `## Spike
|
|
163
|
+
|
|
164
|
+
### Question to Answer
|
|
165
|
+
${question.trim()}
|
|
166
|
+
|
|
167
|
+
### Timebox
|
|
168
|
+
${timebox}
|
|
169
|
+
|
|
170
|
+
### Expected Output
|
|
171
|
+
${output}
|
|
172
|
+
${context.trim() ? `\n### Background Context\n${context.trim()}` : ""}
|
|
173
|
+
|
|
174
|
+
### Findings
|
|
175
|
+
_To be filled after investigation_`;
|
|
176
|
+
return { title, body };
|
|
177
|
+
}
|
|
178
|
+
async function collectTechDebt() {
|
|
179
|
+
const what = await input({
|
|
180
|
+
message: "What technical debt needs to be addressed?",
|
|
181
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
182
|
+
});
|
|
183
|
+
const impact = await input({
|
|
184
|
+
message: "Why does it matter? (impact on codebase/team)",
|
|
185
|
+
validate: (val) => val.trim().length > 0 || "Required",
|
|
186
|
+
});
|
|
187
|
+
const approach = await input({
|
|
188
|
+
message: "Proposed approach (optional):",
|
|
189
|
+
});
|
|
190
|
+
const title = what.trim();
|
|
191
|
+
const body = `## Tech Debt
|
|
192
|
+
|
|
193
|
+
### Description
|
|
194
|
+
${what.trim()}
|
|
195
|
+
|
|
196
|
+
### Impact
|
|
197
|
+
${impact.trim()}
|
|
198
|
+
${approach.trim() ? `\n### Proposed Approach\n${approach.trim()}` : ""}`;
|
|
199
|
+
return { title, body };
|
|
200
|
+
}
|
|
201
|
+
async function collectIssueData(issueType) {
|
|
202
|
+
switch (issueType.value) {
|
|
203
|
+
case "user-story":
|
|
204
|
+
return collectUserStory();
|
|
205
|
+
case "bug":
|
|
206
|
+
return collectBug();
|
|
207
|
+
case "task":
|
|
208
|
+
return collectTask();
|
|
209
|
+
case "spike":
|
|
210
|
+
return collectSpike();
|
|
211
|
+
case "tech-debt":
|
|
212
|
+
return collectTechDebt();
|
|
213
|
+
default:
|
|
214
|
+
throw new Error(`Unknown issue type: ${issueType.value}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function formatIssuePreview(data) {
|
|
218
|
+
const lines = [
|
|
219
|
+
`${dim("───")} ${bold("Issue Preview")} ${dim("───")}`,
|
|
220
|
+
"",
|
|
221
|
+
`${bold("Type:")} ${data.type.label}`,
|
|
222
|
+
`${bold("Title:")} ${cyan(data.title)}`,
|
|
223
|
+
`${bold("Labels:")} ${data.labels.join(", ")}`,
|
|
224
|
+
"",
|
|
225
|
+
gray("─── Body ───"),
|
|
226
|
+
"",
|
|
227
|
+
data.body,
|
|
228
|
+
"",
|
|
229
|
+
dim("─────────────────────"),
|
|
230
|
+
];
|
|
231
|
+
return lines.join("\n");
|
|
232
|
+
}
|
|
233
|
+
export async function issueCommand(options = {}) {
|
|
234
|
+
try {
|
|
235
|
+
checkGhInstalled();
|
|
236
|
+
const config = loadConfig();
|
|
237
|
+
// Select issue type
|
|
238
|
+
const issueType = await select({
|
|
239
|
+
message: "Select issue type:",
|
|
240
|
+
choices: ISSUE_TYPES.map((t) => ({
|
|
241
|
+
value: t,
|
|
242
|
+
name: `${t.label}`,
|
|
243
|
+
})),
|
|
244
|
+
});
|
|
245
|
+
// Collect type-specific data
|
|
246
|
+
console.log("");
|
|
247
|
+
const { title, body } = await collectIssueData(issueType);
|
|
248
|
+
// Determine labels
|
|
249
|
+
const labels = [issueType.labelColor];
|
|
250
|
+
// Build issue data
|
|
251
|
+
const issueData = {
|
|
252
|
+
type: issueType,
|
|
253
|
+
title,
|
|
254
|
+
body,
|
|
255
|
+
labels,
|
|
256
|
+
};
|
|
257
|
+
// Preview
|
|
258
|
+
console.log("\n" + formatIssuePreview(issueData));
|
|
259
|
+
if (options.dryRun) {
|
|
260
|
+
console.log(dim("[dry-run] No issue created."));
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const confirmed = await confirm({
|
|
264
|
+
message: "Create this issue?",
|
|
265
|
+
default: true,
|
|
266
|
+
});
|
|
267
|
+
if (!confirmed) {
|
|
268
|
+
console.log("Aborted.");
|
|
269
|
+
process.exit(0);
|
|
270
|
+
}
|
|
271
|
+
// Create the issue using gh CLI
|
|
272
|
+
const labelArg = labels.length > 0 ? `--label "${labels.join(",")}"` : "";
|
|
273
|
+
const cmd = `gh issue create --title ${JSON.stringify(title)} --body ${JSON.stringify(body)} ${labelArg}`;
|
|
274
|
+
const result = execSync(cmd, { encoding: "utf-8" }).trim();
|
|
275
|
+
// Extract issue number from URL (format: https://github.com/owner/repo/issues/123)
|
|
276
|
+
const issueUrlMatch = result.match(/\/issues\/(\d+)/);
|
|
277
|
+
const issueNumber = issueUrlMatch ? issueUrlMatch[1] : null;
|
|
278
|
+
console.log(green(`\n✓ Issue created: ${result}`));
|
|
279
|
+
// Offer to create a branch
|
|
280
|
+
const createBranch = await confirm({
|
|
281
|
+
message: "Create a branch and start working on this issue?",
|
|
282
|
+
default: true,
|
|
283
|
+
});
|
|
284
|
+
if (createBranch) {
|
|
285
|
+
const description = await input({
|
|
286
|
+
message: "Short branch description:",
|
|
287
|
+
default: title
|
|
288
|
+
.toLowerCase()
|
|
289
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
290
|
+
.replace(/^-|-$/g, "")
|
|
291
|
+
.slice(0, 50),
|
|
292
|
+
validate: (val) => val.trim().length > 0 || "Description is required",
|
|
293
|
+
});
|
|
294
|
+
const ticketPart = issueNumber ? `#${issueNumber}` : "UNTRACKED";
|
|
295
|
+
const kebab = description
|
|
296
|
+
.trim()
|
|
297
|
+
.toLowerCase()
|
|
298
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
299
|
+
.replace(/^-|-$/g, "");
|
|
300
|
+
const branchName = `${issueType.branchType}/${ticketPart}_${kebab}`;
|
|
301
|
+
console.log(`\n${dim("Branch:")} ${cyan(branchName)}`);
|
|
302
|
+
const confirmBranch = await confirm({
|
|
303
|
+
message: "Create this branch?",
|
|
304
|
+
default: true,
|
|
305
|
+
});
|
|
306
|
+
if (confirmBranch) {
|
|
307
|
+
execSync(`git checkout -b ${branchName}`, { stdio: "inherit" });
|
|
308
|
+
console.log(green(`✓ Branch created: ${branchName}`));
|
|
309
|
+
// Offer test plan for user stories and bugs
|
|
310
|
+
if (issueType.value === "user-story" || issueType.value === "bug") {
|
|
311
|
+
const addTestPlan = await confirm({
|
|
312
|
+
message: "Add test plan steps?",
|
|
313
|
+
default: false,
|
|
314
|
+
});
|
|
315
|
+
if (addTestPlan) {
|
|
316
|
+
const steps = [];
|
|
317
|
+
console.log(dim("\nAdd testing steps. Empty line to finish.\n"));
|
|
318
|
+
let adding = true;
|
|
319
|
+
while (adding) {
|
|
320
|
+
const step = await input({
|
|
321
|
+
message: `Step ${steps.length + 1}${steps.length > 0 ? " (blank to finish)" : ""}:`,
|
|
322
|
+
});
|
|
323
|
+
if (!step.trim()) {
|
|
324
|
+
adding = false;
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
steps.push(step.trim());
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (steps.length > 0) {
|
|
331
|
+
setTestPlan(branchName, steps);
|
|
332
|
+
console.log(green(`✓ Saved ${steps.length} test plan step${steps.length > 1 ? "s" : ""}`));
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
console.log(dim("\nYou're ready to start working!"));
|
|
337
|
+
console.log(dim(` Make changes, then: ${cyan("devflow commit")}`));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
if (error.name === "ExitPromptError") {
|
|
343
|
+
console.log("\nCancelled.");
|
|
344
|
+
process.exit(0);
|
|
345
|
+
}
|
|
346
|
+
throw error;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ import { logCommand } from "./commands/log.js";
|
|
|
22
22
|
import { statsCommand } from "./commands/stats.js";
|
|
23
23
|
import { lintConfigCommand } from "./commands/lint-config.js";
|
|
24
24
|
import { commentsCommand } from "./commands/comments.js";
|
|
25
|
+
import { issueCommand } from "./commands/issue.js";
|
|
25
26
|
import { loadPlugins } from "./plugins.js";
|
|
26
27
|
import { checkForUpdates } from "./update-notifier.js";
|
|
27
28
|
const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
|
|
@@ -93,6 +94,12 @@ program
|
|
|
93
94
|
.option("--resolved", "Show only resolved comments")
|
|
94
95
|
.option("--unresolved", "Show only unresolved comments")
|
|
95
96
|
.action((opts) => commentsCommand(opts));
|
|
97
|
+
program
|
|
98
|
+
.command("issue")
|
|
99
|
+
.alias("i")
|
|
100
|
+
.description("Create a GitHub issue with Scrum templates (story, bug, task, spike, tech-debt)")
|
|
101
|
+
.option("--dry-run", "Preview without creating the issue")
|
|
102
|
+
.action((opts) => issueCommand(opts));
|
|
96
103
|
program
|
|
97
104
|
.command("stash")
|
|
98
105
|
.alias("st")
|
|
@@ -167,7 +174,7 @@ function generateBashCompletions() {
|
|
|
167
174
|
# Add to ~/.bashrc: eval "$(devflow completions --shell bash)"
|
|
168
175
|
_devflow_completions() {
|
|
169
176
|
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
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"
|
|
177
|
+
local commands="branch commit pr amend undo fixup merge release review comments issue stash worktree log status test-plan changelog cleanup stats lint-config init doctor completions"
|
|
171
178
|
|
|
172
179
|
if [ "\${COMP_CWORD}" -eq 1 ]; then
|
|
173
180
|
COMPREPLY=($(compgen -W "\${commands}" -- "\${cur}"))
|
|
@@ -193,6 +200,7 @@ _devflow() {
|
|
|
193
200
|
'release:Create a release (alias: rel)'
|
|
194
201
|
'review:List and interact with PRs (alias: rv)'
|
|
195
202
|
'comments:Show PR reviews and inline comments (alias: cm)'
|
|
203
|
+
'issue:Create GitHub issue with Scrum templates (alias: i)'
|
|
196
204
|
'stash:Manage named stashes (alias: st)'
|
|
197
205
|
'worktree:Manage git worktrees (alias: wt)'
|
|
198
206
|
'log:Interactive commit log (alias: l)'
|
|
@@ -217,7 +225,7 @@ _devflow() {
|
|
|
217
225
|
;;
|
|
218
226
|
args)
|
|
219
227
|
case "\${words[1]}" in
|
|
220
|
-
branch|commit|pr|amend|undo|fixup|merge|cleanup|changelog)
|
|
228
|
+
branch|commit|pr|amend|undo|fixup|merge|cleanup|changelog|issue)
|
|
221
229
|
_arguments '--dry-run[Preview without executing]'
|
|
222
230
|
;;
|
|
223
231
|
completions)
|
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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"}
|