@alejandrochaves/devflow-cli 0.7.0 → 0.8.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/dist/config.js CHANGED
@@ -7,6 +7,251 @@ const DEFAULT_PR_TEMPLATE = {
7
7
  sections: ["summary", "ticket", "type", "screenshots", "testPlan", "checklist"],
8
8
  screenshotsTable: true,
9
9
  };
10
+ // Scrum preset - full Agile workflow with user stories, acceptance criteria
11
+ export const SCRUM_PRESET = {
12
+ branchFormat: "{type}/{ticket}_{description}",
13
+ issueTypes: [
14
+ {
15
+ value: "user-story",
16
+ label: "User Story",
17
+ labelColor: "feature",
18
+ branchType: "feat",
19
+ fields: [
20
+ { name: "asA", prompt: "As a:", type: "input", required: true },
21
+ { name: "iWant", prompt: "I want to:", type: "input", required: true },
22
+ { name: "soThat", prompt: "So that:", type: "input", required: true },
23
+ { name: "criteria", prompt: "Acceptance criteria:", type: "list", required: true },
24
+ { name: "notes", prompt: "Additional notes (optional):", type: "input", required: false },
25
+ ],
26
+ template: `## User Story
27
+
28
+ **As a** {asA}
29
+ **I want to** {iWant}
30
+ **So that** {soThat}
31
+
32
+ ## Acceptance Criteria
33
+
34
+ {criteria:checkbox}
35
+ {notes:section:Notes}`,
36
+ },
37
+ {
38
+ value: "bug",
39
+ label: "Bug",
40
+ labelColor: "bug",
41
+ branchType: "fix",
42
+ fields: [
43
+ { name: "description", prompt: "What happened?", type: "input", required: true },
44
+ { name: "expected", prompt: "What was expected?", type: "input", required: true },
45
+ { name: "steps", prompt: "Steps to reproduce:", type: "list", required: true },
46
+ { name: "environment", prompt: "Environment (browser, OS, version - optional):", type: "input", required: false },
47
+ { name: "logs", prompt: "Error logs or screenshots URL (optional):", type: "input", required: false },
48
+ ],
49
+ template: `## Bug Report
50
+
51
+ ### Description
52
+ {description}
53
+
54
+ ### Expected Behavior
55
+ {expected}
56
+
57
+ ### Steps to Reproduce
58
+ {steps:numbered}
59
+ {environment:section:Environment}
60
+ {logs:section:Logs / Screenshots}`,
61
+ },
62
+ {
63
+ value: "task",
64
+ label: "Task",
65
+ labelColor: "task",
66
+ branchType: "chore",
67
+ fields: [
68
+ { name: "what", prompt: "What needs to be done?", type: "input", required: true },
69
+ { name: "why", prompt: "Why is this needed? (optional):", type: "input", required: false },
70
+ { name: "criteria", prompt: "Done criteria:", type: "list", required: true },
71
+ ],
72
+ template: `## Task
73
+
74
+ ### Description
75
+ {what}
76
+ {why:section:Context}
77
+
78
+ ### Done Criteria
79
+
80
+ {criteria:checkbox}`,
81
+ },
82
+ {
83
+ value: "spike",
84
+ label: "Spike",
85
+ labelColor: "spike",
86
+ branchType: "chore",
87
+ fields: [
88
+ { name: "question", prompt: "What question needs to be answered?", type: "input", required: true },
89
+ { name: "timebox", prompt: "Timebox:", type: "select", required: true, options: ["2 hours", "4 hours", "1 day", "2 days"] },
90
+ { name: "output", prompt: "Expected output:", type: "select", required: true, options: ["Document with findings", "Proof of concept", "Recommendation", "Prototype"] },
91
+ { name: "context", prompt: "Background context (optional):", type: "input", required: false },
92
+ ],
93
+ template: `## Spike
94
+
95
+ ### Question to Answer
96
+ {question}
97
+
98
+ ### Timebox
99
+ {timebox}
100
+
101
+ ### Expected Output
102
+ {output}
103
+ {context:section:Background Context}
104
+
105
+ ### Findings
106
+ _To be filled after investigation_`,
107
+ },
108
+ {
109
+ value: "tech-debt",
110
+ label: "Tech Debt",
111
+ labelColor: "tech-debt",
112
+ branchType: "refactor",
113
+ fields: [
114
+ { name: "what", prompt: "What technical debt needs to be addressed?", type: "input", required: true },
115
+ { name: "impact", prompt: "Why does it matter? (impact on codebase/team):", type: "input", required: true },
116
+ { name: "approach", prompt: "Proposed approach (optional):", type: "input", required: false },
117
+ ],
118
+ template: `## Tech Debt
119
+
120
+ ### Description
121
+ {what}
122
+
123
+ ### Impact
124
+ {impact}
125
+ {approach:section:Proposed Approach}`,
126
+ },
127
+ ],
128
+ prTemplate: {
129
+ sections: ["summary", "ticket", "type", "screenshots", "testPlan", "checklist"],
130
+ screenshotsTable: true,
131
+ },
132
+ };
133
+ // Kanban preset - simpler flow-based workflow
134
+ export const KANBAN_PRESET = {
135
+ branchFormat: "{type}/{ticket}_{description}",
136
+ issueTypes: [
137
+ {
138
+ value: "feature",
139
+ label: "Feature",
140
+ labelColor: "enhancement",
141
+ branchType: "feat",
142
+ fields: [
143
+ { name: "description", prompt: "Describe the feature:", type: "input", required: true },
144
+ { name: "value", prompt: "Business value (optional):", type: "input", required: false },
145
+ { name: "criteria", prompt: "Done criteria:", type: "list", required: true },
146
+ ],
147
+ template: `## Feature
148
+
149
+ {description}
150
+ {value:section:Business Value}
151
+
152
+ ### Done Criteria
153
+
154
+ {criteria:checkbox}`,
155
+ },
156
+ {
157
+ value: "bug",
158
+ label: "Bug",
159
+ labelColor: "bug",
160
+ branchType: "fix",
161
+ fields: [
162
+ { name: "description", prompt: "What's broken?", type: "input", required: true },
163
+ { name: "expected", prompt: "Expected behavior (optional):", type: "input", required: false },
164
+ { name: "steps", prompt: "Steps to reproduce:", type: "list", required: false },
165
+ ],
166
+ template: `## Bug
167
+
168
+ {description}
169
+ {expected:section:Expected Behavior}
170
+ {steps:section:Steps to Reproduce:numbered}`,
171
+ },
172
+ {
173
+ value: "improvement",
174
+ label: "Improvement",
175
+ labelColor: "enhancement",
176
+ branchType: "refactor",
177
+ fields: [
178
+ { name: "description", prompt: "What should be improved?", type: "input", required: true },
179
+ { name: "benefit", prompt: "What's the benefit?", type: "input", required: false },
180
+ ],
181
+ template: `## Improvement
182
+
183
+ {description}
184
+ {benefit:section:Benefit}`,
185
+ },
186
+ {
187
+ value: "task",
188
+ label: "Task",
189
+ labelColor: "task",
190
+ branchType: "chore",
191
+ fields: [
192
+ { name: "description", prompt: "What needs to be done?", type: "input", required: true },
193
+ { name: "criteria", prompt: "Done criteria:", type: "list", required: false },
194
+ ],
195
+ template: `## Task
196
+
197
+ {description}
198
+
199
+ {criteria:checkbox}`,
200
+ },
201
+ ],
202
+ prTemplate: {
203
+ sections: ["summary", "ticket", "type", "checklist"],
204
+ screenshotsTable: false,
205
+ },
206
+ };
207
+ // Simple preset - minimal configuration, no ticket required
208
+ export const SIMPLE_PRESET = {
209
+ branchFormat: "{type}/{description}",
210
+ issueTypes: [
211
+ {
212
+ value: "feature",
213
+ label: "Feature",
214
+ labelColor: "enhancement",
215
+ branchType: "feat",
216
+ fields: [
217
+ { name: "description", prompt: "What needs to be built?", type: "input", required: true },
218
+ ],
219
+ template: `{description}`,
220
+ },
221
+ {
222
+ value: "bug",
223
+ label: "Bug",
224
+ labelColor: "bug",
225
+ branchType: "fix",
226
+ fields: [
227
+ { name: "description", prompt: "What's broken?", type: "input", required: true },
228
+ { name: "expected", prompt: "Expected behavior (optional):", type: "input", required: false },
229
+ ],
230
+ template: `{description}
231
+ {expected:section:Expected Behavior}`,
232
+ },
233
+ {
234
+ value: "task",
235
+ label: "Task",
236
+ labelColor: "task",
237
+ branchType: "chore",
238
+ fields: [
239
+ { name: "description", prompt: "What needs to be done?", type: "input", required: true },
240
+ ],
241
+ template: `{description}`,
242
+ },
243
+ ],
244
+ prTemplate: {
245
+ sections: ["summary", "checklist"],
246
+ screenshotsTable: false,
247
+ },
248
+ };
249
+ export const PRESETS = {
250
+ scrum: SCRUM_PRESET,
251
+ kanban: KANBAN_PRESET,
252
+ simple: SIMPLE_PRESET,
253
+ custom: SCRUM_PRESET, // Custom starts with Scrum defaults
254
+ };
10
255
  const DEFAULT_CONFIG = {
11
256
  scopes: [],
12
257
  branchTypes: ["feat", "fix", "chore", "refactor", "docs", "test", "release", "hotfix"],
@@ -29,12 +274,15 @@ const DEFAULT_CONFIG = {
29
274
  ],
30
275
  commitFormat: "{type}[{ticket}]{breaking}({scope}): {message}",
31
276
  prTemplate: DEFAULT_PR_TEMPLATE,
277
+ branchFormat: SCRUM_PRESET.branchFormat,
278
+ issueTypes: SCRUM_PRESET.issueTypes,
32
279
  };
33
280
  export function validateConfig(raw) {
34
281
  const warnings = [];
35
282
  const validFields = [
36
283
  "extends", "ticketBaseUrl", "scopes", "branchTypes", "commitTypes",
37
284
  "checklist", "commitFormat", "prTemplate", "prReviewers",
285
+ "preset", "branchFormat", "issueTypes", "ticketProvider",
38
286
  ];
39
287
  for (const key of Object.keys(raw)) {
40
288
  if (!validFields.includes(key)) {
@@ -63,6 +311,42 @@ export function validateConfig(raw) {
63
311
  }
64
312
  }
65
313
  }
314
+ // Validate branchFormat
315
+ if (raw.branchFormat && typeof raw.branchFormat === "string") {
316
+ const format = raw.branchFormat;
317
+ if (!format.includes("{type}") || !format.includes("{description}")) {
318
+ warnings.push({ field: "branchFormat", message: "Format should include at least {type} and {description} placeholders" });
319
+ }
320
+ }
321
+ // Validate preset
322
+ if (raw.preset && typeof raw.preset === "string") {
323
+ const validPresets = ["scrum", "kanban", "simple", "custom"];
324
+ if (!validPresets.includes(raw.preset)) {
325
+ warnings.push({ field: "preset", message: `Invalid preset "${raw.preset}". Valid: ${validPresets.join(", ")}` });
326
+ }
327
+ }
328
+ // Validate issueTypes
329
+ if (raw.issueTypes && Array.isArray(raw.issueTypes)) {
330
+ for (let i = 0; i < raw.issueTypes.length; i++) {
331
+ const it = raw.issueTypes[i];
332
+ if (!it.value || !it.label || !it.branchType) {
333
+ warnings.push({ field: `issueTypes[${i}]`, message: "Issue type is missing \"value\", \"label\", or \"branchType\"" });
334
+ }
335
+ }
336
+ }
337
+ // Validate ticketProvider
338
+ if (raw.ticketProvider) {
339
+ const tp = raw.ticketProvider;
340
+ if (!tp.type || typeof tp.type !== "string") {
341
+ warnings.push({ field: "ticketProvider", message: "ticketProvider must have a \"type\" field" });
342
+ }
343
+ else {
344
+ const validTypes = ["github"];
345
+ if (!validTypes.includes(tp.type)) {
346
+ warnings.push({ field: "ticketProvider.type", message: `Unknown provider type "${tp.type}". Valid: ${validTypes.join(", ")}` });
347
+ }
348
+ }
349
+ }
66
350
  return warnings;
67
351
  }
68
352
  function resolveExtends(extendsPath, cwd) {
@@ -122,6 +406,9 @@ export function loadConfig(cwd = process.cwd()) {
122
406
  scopes = workspacesToScopes(mono);
123
407
  }
124
408
  }
409
+ // Determine preset and its defaults
410
+ const preset = raw.preset;
411
+ const presetDefaults = preset ? PRESETS[preset] : undefined;
125
412
  return {
126
413
  ticketBaseUrl: raw.ticketBaseUrl ?? DEFAULT_CONFIG.ticketBaseUrl,
127
414
  scopes,
@@ -129,8 +416,12 @@ export function loadConfig(cwd = process.cwd()) {
129
416
  commitTypes: raw.commitTypes ?? DEFAULT_CONFIG.commitTypes,
130
417
  checklist: raw.checklist ?? DEFAULT_CONFIG.checklist,
131
418
  commitFormat: raw.commitFormat ?? DEFAULT_CONFIG.commitFormat,
132
- prTemplate: raw.prTemplate ?? DEFAULT_CONFIG.prTemplate,
419
+ prTemplate: raw.prTemplate ?? presetDefaults?.prTemplate ?? DEFAULT_CONFIG.prTemplate,
133
420
  prReviewers: raw.prReviewers,
421
+ preset,
422
+ branchFormat: raw.branchFormat ?? presetDefaults?.branchFormat ?? DEFAULT_CONFIG.branchFormat,
423
+ issueTypes: raw.issueTypes ?? presetDefaults?.issueTypes ?? DEFAULT_CONFIG.issueTypes,
424
+ ticketProvider: raw.ticketProvider,
134
425
  };
135
426
  }
136
427
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/git.d.ts CHANGED
@@ -1,18 +1,16 @@
1
1
  export declare function getBranch(): string;
2
- export declare function parseBranch(branch: string): {
3
- type: undefined;
2
+ interface ParsedBranch {
3
+ type: string | undefined;
4
4
  ticket: string;
5
5
  description: string;
6
- } | {
7
- type: string;
8
- ticket: string;
9
- description: string;
10
- };
11
- export declare function inferTicket(): string;
6
+ }
7
+ export declare function parseBranch(branch: string, format?: string): ParsedBranch;
8
+ export declare function inferTicket(format?: string): string;
12
9
  export declare function inferScope(): string | undefined;
13
10
  export declare function getCommits(base: string): string[];
14
11
  export declare function getScopesFromCommits(commits: string[]): string[];
15
12
  export declare function getDefaultBase(currentBranch: string): string;
16
13
  export declare function checkGhInstalled(): void;
17
14
  export declare function isProtectedBranch(branch?: string): boolean;
15
+ export {};
18
16
  //# sourceMappingURL=git.d.ts.map
package/dist/git.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM;;;;;;;;EAIzC;AAED,wBAAgB,WAAW,IAAI,MAAM,CASpC;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAe/C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOjD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhE;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiC5D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAG1D"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAwCzE;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAe/C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOjD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhE;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiC5D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAG1D"}
package/dist/git.js CHANGED
@@ -3,18 +3,46 @@ const PROTECTED_BRANCHES = ["main", "master", "develop", "production"];
3
3
  export function getBranch() {
4
4
  return execSync("git branch --show-current", { encoding: "utf-8" }).trim();
5
5
  }
6
- export function parseBranch(branch) {
7
- const match = branch.match(/^([^/]+)\/([^_]+)_(.+)$/);
8
- if (!match)
6
+ export function parseBranch(branch, format) {
7
+ // Default format for backwards compatibility
8
+ const fmt = format || "{type}/{ticket}_{description}";
9
+ // Determine which placeholders exist in the format
10
+ const hasTicket = fmt.includes("{ticket}");
11
+ // Build regex from format - replace placeholders with capture groups
12
+ // Escape special regex chars first, then replace placeholders
13
+ let regexStr = fmt
14
+ .replace(/[.*+?^${}()|[\]\\]/g, (c) => (c === "{" || c === "}" ? c : "\\" + c))
15
+ .replace("{type}", "([^/]+)")
16
+ .replace("{ticket}", "([^_]+)")
17
+ .replace("{description}", "(.+)")
18
+ .replace("{scope}", "([^/]+)");
19
+ // Find the order of placeholders in the format
20
+ const placeholderOrder = [];
21
+ const placeholderRegex = /\{(type|ticket|description|scope)\}/g;
22
+ let placeholderMatch;
23
+ while ((placeholderMatch = placeholderRegex.exec(fmt)) !== null) {
24
+ placeholderOrder.push(placeholderMatch[1]);
25
+ }
26
+ const match = branch.match(new RegExp(`^${regexStr}$`));
27
+ if (!match) {
9
28
  return { type: undefined, ticket: "UNTRACKED", description: branch };
10
- return { type: match[1], ticket: match[2], description: match[3].replace(/-/g, " ") };
29
+ }
30
+ // Map captures back to field names based on placeholder order
31
+ const result = {};
32
+ for (let i = 0; i < placeholderOrder.length; i++) {
33
+ result[placeholderOrder[i]] = match[i + 1];
34
+ }
35
+ return {
36
+ type: result.type,
37
+ ticket: hasTicket ? (result.ticket || "UNTRACKED") : "UNTRACKED",
38
+ description: (result.description || branch).replace(/-/g, " "),
39
+ };
11
40
  }
12
- export function inferTicket() {
41
+ export function inferTicket(format) {
13
42
  try {
14
43
  const branch = getBranch();
15
- const match = branch.match(/^[^/]+\/([^_]+)_/);
16
- if (match)
17
- return match[1];
44
+ const parsed = parseBranch(branch, format);
45
+ return parsed.ticket;
18
46
  }
19
47
  catch {
20
48
  // Not on a branch
package/dist/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface Ticket {
2
+ id: string;
3
+ title: string;
4
+ labels: string[];
5
+ url?: string;
6
+ }
7
+ export interface TicketProvider {
8
+ listOpen(options?: {
9
+ assignee?: string;
10
+ }): Ticket[];
11
+ getById(id: string): Ticket | undefined;
12
+ }
13
+ export interface TicketProviderConfig {
14
+ type: string;
15
+ [key: string]: unknown;
16
+ }
17
+ export declare const LABEL_TO_BRANCH_TYPE: Record<string, string>;
18
+ export declare function inferBranchTypeFromLabels(labels: string[]): string | undefined;
19
+ export declare class GitHubTicketProvider implements TicketProvider {
20
+ listOpen(options?: {
21
+ assignee?: string;
22
+ }): Ticket[];
23
+ getById(id: string): Ticket | undefined;
24
+ }
25
+ export declare function createTicketProvider(config?: TicketProviderConfig): TicketProvider | undefined;
26
+ //# sourceMappingURL=tickets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/providers/tickets.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgBvD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAQ9E;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAyBnD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAqBxC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,cAAc,GAAG,SAAS,CAa9F"}
@@ -0,0 +1,80 @@
1
+ import { execSync } from "child_process";
2
+ import { yellow } from "../colors.js";
3
+ // Maps GitHub issue labels to branch types
4
+ export const LABEL_TO_BRANCH_TYPE = {
5
+ bug: "fix",
6
+ enhancement: "feat",
7
+ feature: "feat",
8
+ documentation: "docs",
9
+ docs: "docs",
10
+ refactor: "refactor",
11
+ test: "test",
12
+ testing: "test",
13
+ chore: "chore",
14
+ maintenance: "chore",
15
+ dependencies: "chore",
16
+ "tech-debt": "refactor",
17
+ "tech debt": "refactor",
18
+ spike: "chore",
19
+ task: "chore",
20
+ };
21
+ export function inferBranchTypeFromLabels(labels) {
22
+ for (const label of labels) {
23
+ const normalized = label.toLowerCase();
24
+ if (LABEL_TO_BRANCH_TYPE[normalized]) {
25
+ return LABEL_TO_BRANCH_TYPE[normalized];
26
+ }
27
+ }
28
+ return undefined;
29
+ }
30
+ export class GitHubTicketProvider {
31
+ listOpen(options) {
32
+ try {
33
+ const assigneeArg = options?.assignee ? `--assignee ${options.assignee}` : "--assignee @me";
34
+ const cmd = `gh issue list ${assigneeArg} --state open --json number,title,labels,url --limit 50`;
35
+ const output = execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
36
+ const issues = JSON.parse(output);
37
+ return issues.map((issue) => ({
38
+ id: String(issue.number),
39
+ title: issue.title,
40
+ labels: issue.labels.map((l) => l.name),
41
+ url: issue.url,
42
+ }));
43
+ }
44
+ catch (error) {
45
+ // Soft fail - return empty array if gh command fails
46
+ console.error(yellow("⚠ Could not fetch GitHub issues. Falling back to manual input."));
47
+ return [];
48
+ }
49
+ }
50
+ getById(id) {
51
+ try {
52
+ const cmd = `gh issue view ${id} --json number,title,labels,url`;
53
+ const output = execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
54
+ const issue = JSON.parse(output);
55
+ return {
56
+ id: String(issue.number),
57
+ title: issue.title,
58
+ labels: issue.labels.map((l) => l.name),
59
+ url: issue.url,
60
+ };
61
+ }
62
+ catch {
63
+ return undefined;
64
+ }
65
+ }
66
+ }
67
+ export function createTicketProvider(config) {
68
+ if (!config || !config.type) {
69
+ return undefined;
70
+ }
71
+ switch (config.type) {
72
+ case "github":
73
+ return new GitHubTicketProvider();
74
+ default:
75
+ // Unknown provider type - plugins would register here
76
+ console.error(yellow(`⚠ Unknown ticket provider type: "${config.type}"`));
77
+ return undefined;
78
+ }
79
+ }
80
+ //# sourceMappingURL=tickets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/providers/tickets.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.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Interactive CLI for branch creation, conventional commits, and PR management",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,7 +11,6 @@
11
11
  "dev": "tsc --watch",
12
12
  "test": "vitest run",
13
13
  "test:watch": "vitest",
14
- "publish:public": "npm publish --access=public",
15
14
  "prepublishOnly": "npm run build",
16
15
  "docs:dev": "vitepress dev docs",
17
16
  "docs:build": "vitepress build docs",