specweave 0.28.19 → 0.28.20
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/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +8 -6
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +230 -165
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
- package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +2 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +25 -5
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +186 -19
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
- package/dist/src/config/types.d.ts +6 -6
- package/dist/src/core/background/index.d.ts +11 -0
- package/dist/src/core/background/index.d.ts.map +1 -0
- package/dist/src/core/background/index.js +11 -0
- package/dist/src/core/background/index.js.map +1 -0
- package/dist/src/core/background/job-manager.d.ts +65 -0
- package/dist/src/core/background/job-manager.d.ts.map +1 -0
- package/dist/src/core/background/job-manager.js +192 -0
- package/dist/src/core/background/job-manager.js.map +1 -0
- package/dist/src/core/background/types.d.ts +59 -0
- package/dist/src/core/background/types.d.ts.map +1 -0
- package/dist/src/core/background/types.js +8 -0
- package/dist/src/core/background/types.js.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.js +252 -0
- package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/types/spec-metadata.d.ts +2 -0
- package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.d.ts +20 -0
- package/dist/src/importers/import-coordinator.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +2 -2
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/specweave/commands/specweave-jobs.md +160 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
- package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
- package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +6 -0
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +268 -155
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +313 -209
- package/plugins/specweave-github/lib/github-status-sync.js +37 -1
- package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
- package/plugins/specweave-github/lib/increment-issue-builder.js +26 -5
- package/plugins/specweave-github/lib/increment-issue-builder.ts +36 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
- package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
- package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +9 -0
|
@@ -3,17 +3,19 @@
|
|
|
3
3
|
* GitHub Increment Sync CLI
|
|
4
4
|
*
|
|
5
5
|
* For brownfield projects without living docs structure.
|
|
6
|
-
* Creates GitHub issues directly from increment spec.md with
|
|
6
|
+
* Creates GitHub issues directly from increment spec.md with CORRECT format.
|
|
7
7
|
*
|
|
8
|
-
* CORRECT FORMAT:
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
8
|
+
* CORRECT FORMAT (SpecWeave Universal Hierarchy):
|
|
9
|
+
* - Feature (FS-XXX) → GitHub Milestone
|
|
10
|
+
* - User Story (US-XXX) → GitHub Issue with [FS-XXX][US-YYY] Title
|
|
11
|
+
* - Tasks (T-XXX) → Checkboxes in User Story issue
|
|
12
|
+
* - ACs → Checkboxes in User Story issue
|
|
11
13
|
*
|
|
12
14
|
* Usage:
|
|
13
15
|
* node github-increment-sync-cli.js <increment-id>
|
|
14
|
-
* node github-increment-sync-cli.js
|
|
16
|
+
* node github-increment-sync-cli.js 0002-thumbnail-optimizer-mvp
|
|
15
17
|
*
|
|
16
|
-
* @see
|
|
18
|
+
* @see CLAUDE.md (GitHub Issue Format rules)
|
|
17
19
|
*/
|
|
18
20
|
import { existsSync, readFileSync } from 'fs';
|
|
19
21
|
import * as fs from 'fs/promises';
|
|
@@ -111,150 +113,233 @@ async function findIncrementFolder(incrementId) {
|
|
|
111
113
|
return null;
|
|
112
114
|
}
|
|
113
115
|
/**
|
|
114
|
-
*
|
|
116
|
+
* Load existing GitHub links from metadata.json
|
|
115
117
|
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
`repo:${owner}/${repo}`,
|
|
121
|
-
`"[${featureId}]" in:title`,
|
|
122
|
-
'is:open',
|
|
123
|
-
'--json', 'number,title',
|
|
124
|
-
'--limit', '5'
|
|
125
|
-
]);
|
|
126
|
-
if (result.exitCode !== 0 || !result.stdout.trim()) {
|
|
127
|
-
return null;
|
|
118
|
+
function loadExistingGitHubLinks(incrementPath) {
|
|
119
|
+
const metadataPath = path.join(incrementPath, 'metadata.json');
|
|
120
|
+
if (!existsSync(metadataPath)) {
|
|
121
|
+
return { userStoryIssues: {} };
|
|
128
122
|
}
|
|
129
123
|
try {
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
124
|
+
const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|
|
125
|
+
return {
|
|
126
|
+
milestone: metadata.github?.milestone,
|
|
127
|
+
userStoryIssues: metadata.github?.userStoryIssues || {}
|
|
128
|
+
};
|
|
134
129
|
}
|
|
135
130
|
catch {
|
|
136
|
-
|
|
131
|
+
return { userStoryIssues: {} };
|
|
137
132
|
}
|
|
138
|
-
return null;
|
|
139
133
|
}
|
|
140
134
|
/**
|
|
141
|
-
*
|
|
135
|
+
* Update increment metadata with GitHub links
|
|
142
136
|
*/
|
|
143
|
-
async function
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
const result = await execFileNoThrow('gh', args);
|
|
155
|
-
if (result.exitCode !== 0) {
|
|
156
|
-
throw new Error(`Failed to create issue: ${result.stderr || result.stdout}`);
|
|
157
|
-
}
|
|
158
|
-
// Parse issue URL from output
|
|
159
|
-
const urlMatch = result.stdout.match(/https:\/\/github\.com\/[^\s]+\/issues\/(\d+)/);
|
|
160
|
-
if (!urlMatch) {
|
|
161
|
-
throw new Error('Could not parse issue URL from gh output');
|
|
137
|
+
async function updateIncrementMetadata(incrementPath, milestoneNumber, userStoryIssues) {
|
|
138
|
+
const metadataPath = path.join(incrementPath, 'metadata.json');
|
|
139
|
+
let metadata = {};
|
|
140
|
+
if (existsSync(metadataPath)) {
|
|
141
|
+
try {
|
|
142
|
+
metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Start fresh
|
|
146
|
+
}
|
|
162
147
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
148
|
+
// Update github section
|
|
149
|
+
metadata.github = {
|
|
150
|
+
milestone: milestoneNumber,
|
|
151
|
+
userStoryIssues,
|
|
152
|
+
lastSync: new Date().toISOString()
|
|
166
153
|
};
|
|
154
|
+
await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2) + '\n');
|
|
167
155
|
}
|
|
168
156
|
/**
|
|
169
|
-
*
|
|
157
|
+
* Create or get GitHub milestone for the feature
|
|
170
158
|
*/
|
|
171
|
-
async function
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
159
|
+
async function createOrGetMilestone(owner, repo, featureId, title, existingMilestone) {
|
|
160
|
+
// If we have an existing milestone, verify it exists
|
|
161
|
+
if (existingMilestone) {
|
|
162
|
+
const verifyResult = await execFileNoThrow('gh', [
|
|
163
|
+
'api', `repos/${owner}/${repo}/milestones/${existingMilestone}`,
|
|
164
|
+
'--jq', '.number'
|
|
165
|
+
]);
|
|
166
|
+
if (verifyResult.exitCode === 0) {
|
|
167
|
+
return {
|
|
168
|
+
number: existingMilestone,
|
|
169
|
+
url: `https://github.com/${owner}/${repo}/milestone/${existingMilestone}`
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Search for existing milestone by title
|
|
174
|
+
const searchResult = await execFileNoThrow('gh', [
|
|
175
|
+
'api', `repos/${owner}/${repo}/milestones`,
|
|
176
|
+
'--jq', `.[] | select(.title | contains("${featureId}")) | .number`
|
|
177
177
|
]);
|
|
178
|
-
if (
|
|
179
|
-
|
|
178
|
+
if (searchResult.exitCode === 0 && searchResult.stdout.trim()) {
|
|
179
|
+
const milestoneNumber = parseInt(searchResult.stdout.trim().split('\n')[0], 10);
|
|
180
|
+
return {
|
|
181
|
+
number: milestoneNumber,
|
|
182
|
+
url: `https://github.com/${owner}/${repo}/milestone/${milestoneNumber}`
|
|
183
|
+
};
|
|
180
184
|
}
|
|
185
|
+
// Create new milestone
|
|
186
|
+
const milestoneTitle = `[${featureId}] ${title}`;
|
|
187
|
+
const createResult = await execFileNoThrow('gh', [
|
|
188
|
+
'api', `repos/${owner}/${repo}/milestones`,
|
|
189
|
+
'-X', 'POST',
|
|
190
|
+
'-f', `title=${milestoneTitle}`,
|
|
191
|
+
'-f', `description=Feature milestone for ${featureId}`,
|
|
192
|
+
'--jq', '.number'
|
|
193
|
+
]);
|
|
194
|
+
if (createResult.exitCode !== 0) {
|
|
195
|
+
throw new Error(`Failed to create milestone: ${createResult.stderr || createResult.stdout}`);
|
|
196
|
+
}
|
|
197
|
+
const milestoneNumber = parseInt(createResult.stdout.trim(), 10);
|
|
198
|
+
return {
|
|
199
|
+
number: milestoneNumber,
|
|
200
|
+
url: `https://github.com/${owner}/${repo}/milestone/${milestoneNumber}`
|
|
201
|
+
};
|
|
181
202
|
}
|
|
182
203
|
/**
|
|
183
|
-
*
|
|
184
|
-
* This is the PRIMARY source for existing issue detection
|
|
204
|
+
* Build issue body for a single user story
|
|
185
205
|
*/
|
|
186
|
-
function
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
|
|
206
|
+
function buildUserStoryIssueBody(story, tasks, incrementData, githubRepo) {
|
|
207
|
+
const incrementId = incrementData.frontmatter.increment;
|
|
208
|
+
let body = '';
|
|
209
|
+
// Header with metadata
|
|
210
|
+
body += `**Feature**: ${incrementData.frontmatter.feature_id || 'N/A'}\n`;
|
|
211
|
+
body += `**Status**: ${story.acceptanceCriteria.every(ac => ac.completed) ? 'complete' : 'in-progress'}\n`;
|
|
212
|
+
body += `**Priority**: ${story.priority || incrementData.frontmatter.priority || 'P2'}\n`;
|
|
213
|
+
body += `\n---\n\n`;
|
|
214
|
+
// User Story description
|
|
215
|
+
body += `## User Story\n\n`;
|
|
216
|
+
if (story.asA && story.iWant && story.soThat) {
|
|
217
|
+
body += `**As a** ${story.asA}\n`;
|
|
218
|
+
body += `**I want** ${story.iWant}\n`;
|
|
219
|
+
body += `**So that** ${story.soThat}\n\n`;
|
|
190
220
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
};
|
|
221
|
+
else {
|
|
222
|
+
body += `${story.title}\n\n`;
|
|
223
|
+
}
|
|
224
|
+
body += `---\n\n`;
|
|
225
|
+
// Acceptance Criteria
|
|
226
|
+
body += `## Acceptance Criteria\n\n`;
|
|
227
|
+
if (story.acceptanceCriteria.length > 0) {
|
|
228
|
+
const completed = story.acceptanceCriteria.filter(ac => ac.completed).length;
|
|
229
|
+
const total = story.acceptanceCriteria.length;
|
|
230
|
+
const percentage = total > 0 ? Math.round((completed / total) * 100) : 0;
|
|
231
|
+
body += `Progress: ${completed}/${total} criteria met (${percentage}%)\n\n`;
|
|
232
|
+
for (const ac of story.acceptanceCriteria) {
|
|
233
|
+
const checkbox = ac.completed ? '[x]' : '[ ]';
|
|
234
|
+
body += `- ${checkbox} **${ac.id}**: ${ac.description}\n`;
|
|
206
235
|
}
|
|
207
|
-
|
|
236
|
+
body += '\n';
|
|
208
237
|
}
|
|
209
|
-
|
|
210
|
-
|
|
238
|
+
else {
|
|
239
|
+
body += `*No acceptance criteria defined*\n\n`;
|
|
240
|
+
}
|
|
241
|
+
body += `---\n\n`;
|
|
242
|
+
// Tasks for this user story
|
|
243
|
+
const storyTasks = tasks.filter(t => t.userStories.includes(story.id) ||
|
|
244
|
+
t.userStories.some(us => us.includes(story.id.replace('US-', ''))));
|
|
245
|
+
if (storyTasks.length > 0) {
|
|
246
|
+
body += `## Implementation Tasks\n\n`;
|
|
247
|
+
const completedTasks = storyTasks.filter(t => t.completed).length;
|
|
248
|
+
const totalTasks = storyTasks.length;
|
|
249
|
+
const taskPercentage = totalTasks > 0 ? Math.round((completedTasks / totalTasks) * 100) : 0;
|
|
250
|
+
body += `Progress: ${completedTasks}/${totalTasks} tasks (${taskPercentage}%)\n\n`;
|
|
251
|
+
for (const task of storyTasks) {
|
|
252
|
+
const checkbox = task.completed ? '[x]' : '[ ]';
|
|
253
|
+
body += `- ${checkbox} **${task.id}**: ${task.title}\n`;
|
|
254
|
+
}
|
|
255
|
+
body += '\n';
|
|
256
|
+
body += `---\n\n`;
|
|
211
257
|
}
|
|
258
|
+
// Link to increment
|
|
259
|
+
body += `## SpecWeave Increment\n\n`;
|
|
260
|
+
body += `**Increment**: [${incrementId}](https://github.com/${githubRepo}/tree/develop/.specweave/increments/${incrementId})\n\n`;
|
|
261
|
+
body += `---\n\n`;
|
|
262
|
+
body += `🤖 Auto-synced by SpecWeave`;
|
|
263
|
+
return body;
|
|
212
264
|
}
|
|
213
265
|
/**
|
|
214
|
-
*
|
|
266
|
+
* Create or update GitHub issue for a user story
|
|
215
267
|
*/
|
|
216
|
-
async function
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
268
|
+
async function syncUserStoryIssue(owner, repo, featureId, story, tasks, incrementData, milestoneNumber, existingIssueNumber) {
|
|
269
|
+
// CORRECT FORMAT: [FS-XXX][US-YYY] User Story Title
|
|
270
|
+
const title = `[${featureId}][${story.id}] ${story.title}`;
|
|
271
|
+
const body = buildUserStoryIssueBody(story, tasks, incrementData, `${owner}/${repo}`);
|
|
272
|
+
// Labels
|
|
273
|
+
const labels = ['specweave', 'user-story'];
|
|
274
|
+
const priority = story.priority?.toLowerCase() || incrementData.frontmatter.priority?.toLowerCase() || 'p2';
|
|
275
|
+
labels.push(priority);
|
|
276
|
+
if (existingIssueNumber) {
|
|
277
|
+
// Update existing issue
|
|
278
|
+
const updateResult = await execFileNoThrow('gh', [
|
|
279
|
+
'issue', 'edit',
|
|
280
|
+
String(existingIssueNumber),
|
|
281
|
+
'--repo', `${owner}/${repo}`,
|
|
282
|
+
'--title', title,
|
|
283
|
+
'--body', body
|
|
284
|
+
]);
|
|
285
|
+
if (updateResult.exitCode !== 0) {
|
|
286
|
+
throw new Error(`Failed to update issue #${existingIssueNumber}: ${updateResult.stderr}`);
|
|
225
287
|
}
|
|
288
|
+
return {
|
|
289
|
+
number: existingIssueNumber,
|
|
290
|
+
url: `https://github.com/${owner}/${repo}/issues/${existingIssueNumber}`
|
|
291
|
+
};
|
|
226
292
|
}
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
issue
|
|
230
|
-
|
|
231
|
-
|
|
293
|
+
// Create new issue
|
|
294
|
+
const createArgs = [
|
|
295
|
+
'issue', 'create',
|
|
296
|
+
'--repo', `${owner}/${repo}`,
|
|
297
|
+
'--title', title,
|
|
298
|
+
'--body', body,
|
|
299
|
+
'--milestone', String(milestoneNumber)
|
|
300
|
+
];
|
|
301
|
+
if (labels.length > 0) {
|
|
302
|
+
createArgs.push('--label', labels.join(','));
|
|
303
|
+
}
|
|
304
|
+
const createResult = await execFileNoThrow('gh', createArgs);
|
|
305
|
+
if (createResult.exitCode !== 0) {
|
|
306
|
+
throw new Error(`Failed to create issue: ${createResult.stderr || createResult.stdout}`);
|
|
307
|
+
}
|
|
308
|
+
// Parse issue URL from output
|
|
309
|
+
const urlMatch = createResult.stdout.match(/https:\/\/github\.com\/[^\s]+\/issues\/(\d+)/);
|
|
310
|
+
if (!urlMatch) {
|
|
311
|
+
throw new Error('Could not parse issue URL from gh output');
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
number: parseInt(urlMatch[1], 10),
|
|
315
|
+
url: urlMatch[0]
|
|
232
316
|
};
|
|
233
|
-
await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2) + '\n');
|
|
234
317
|
}
|
|
235
318
|
async function main() {
|
|
236
319
|
const args = process.argv.slice(2);
|
|
237
320
|
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
238
321
|
console.log('Usage: node github-increment-sync-cli.js <increment-id> [options]');
|
|
239
322
|
console.log('');
|
|
323
|
+
console.log('Creates GitHub issues with CORRECT format:');
|
|
324
|
+
console.log(' - Milestone: [FS-XXX] Feature Title');
|
|
325
|
+
console.log(' - Issues: [FS-XXX][US-YYY] User Story Title (one per US)');
|
|
326
|
+
console.log('');
|
|
240
327
|
console.log('Arguments:');
|
|
241
|
-
console.log(' increment-id Increment ID (e.g.,
|
|
328
|
+
console.log(' increment-id Increment ID (e.g., 0002 or 0002-thumbnail-mvp)');
|
|
242
329
|
console.log('');
|
|
243
330
|
console.log('Options:');
|
|
244
|
-
console.log(' --
|
|
245
|
-
console.log(' --dry-run Preview issue without creating');
|
|
331
|
+
console.log(' --dry-run Preview issues without creating');
|
|
246
332
|
console.log('');
|
|
247
333
|
console.log('Environment:');
|
|
248
334
|
console.log(' GITHUB_TOKEN Required - GitHub personal access token');
|
|
249
335
|
console.log('');
|
|
250
336
|
console.log('Example:');
|
|
251
|
-
console.log(' GITHUB_TOKEN=ghp_xxx node github-increment-sync-cli.js
|
|
337
|
+
console.log(' GITHUB_TOKEN=ghp_xxx node github-increment-sync-cli.js 0002');
|
|
252
338
|
process.exit(args.length === 0 ? 1 : 0);
|
|
253
339
|
}
|
|
254
340
|
const incrementId = args[0];
|
|
255
|
-
const force = args.includes('--force');
|
|
256
341
|
const dryRun = args.includes('--dry-run');
|
|
257
|
-
console.log(`\n🐙 GitHub Increment Sync CLI`);
|
|
342
|
+
console.log(`\n🐙 GitHub Increment Sync CLI (Per-User-Story Mode)`);
|
|
258
343
|
console.log(` Increment: ${incrementId}`);
|
|
259
344
|
// Find increment folder
|
|
260
345
|
const incrementPath = await findIncrementFolder(incrementId);
|
|
@@ -275,7 +360,6 @@ async function main() {
|
|
|
275
360
|
console.log(` Repository: ${config.owner}/${config.repo}`);
|
|
276
361
|
}
|
|
277
362
|
else {
|
|
278
|
-
// Try to detect repo for dry-run preview (non-fatal)
|
|
279
363
|
config = await loadGitHubConfig().catch(() => null);
|
|
280
364
|
if (config) {
|
|
281
365
|
console.log(` Repository: ${config.owner}/${config.repo}`);
|
|
@@ -284,26 +368,39 @@ async function main() {
|
|
|
284
368
|
console.log(` Repository: (not detected - dry run mode)`);
|
|
285
369
|
}
|
|
286
370
|
}
|
|
287
|
-
// Parse increment
|
|
371
|
+
// Parse increment
|
|
288
372
|
const projectRoot = process.cwd();
|
|
289
373
|
const builder = new IncrementIssueBuilder(incrementPath, projectRoot);
|
|
290
374
|
try {
|
|
291
375
|
console.log(`\n🔄 Parsing increment spec.md...`);
|
|
292
376
|
const incrementData = await builder.parse();
|
|
377
|
+
const featureId = incrementData.frontmatter.feature_id ||
|
|
378
|
+
`FS-${fullIncrementId.match(/^(\d+)/)?.[1]?.padStart(3, '0') || 'UNKNOWN'}`;
|
|
379
|
+
console.log(` 📦 Feature: ${featureId}`);
|
|
293
380
|
console.log(` 📦 Title: ${incrementData.title}`);
|
|
294
381
|
console.log(` 📝 User Stories: ${incrementData.userStories.length}`);
|
|
295
382
|
const totalACs = incrementData.userStories.reduce((sum, us) => sum + us.acceptanceCriteria.length, 0);
|
|
296
383
|
console.log(` ✓ Acceptance Criteria: ${totalACs}`);
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
384
|
+
console.log(` 🔧 Tasks: ${incrementData.tasks.length}`);
|
|
385
|
+
if (incrementData.userStories.length === 0) {
|
|
386
|
+
console.error(`\n❌ No user stories found in spec.md`);
|
|
387
|
+
console.error(' Ensure spec.md has ### US-XXX: Title sections');
|
|
388
|
+
process.exit(1);
|
|
389
|
+
}
|
|
390
|
+
// Preview issues
|
|
391
|
+
console.log(`\n📋 Issues to Create/Update:`);
|
|
392
|
+
console.log(` 🎯 Milestone: [${featureId}] ${incrementData.title}`);
|
|
393
|
+
for (const story of incrementData.userStories) {
|
|
394
|
+
const storyTasks = incrementData.tasks.filter(t => t.userStories.includes(story.id) ||
|
|
395
|
+
t.userStories.some(us => us.includes(story.id.replace('US-', ''))));
|
|
396
|
+
console.log(` 📝 [${featureId}][${story.id}] ${story.title}`);
|
|
397
|
+
console.log(` └─ ${story.acceptanceCriteria.length} ACs, ${storyTasks.length} tasks`);
|
|
398
|
+
}
|
|
303
399
|
if (dryRun) {
|
|
304
|
-
console.log(`\n📄 Issue Body
|
|
305
|
-
|
|
306
|
-
console.log(
|
|
400
|
+
console.log(`\n📄 Sample Issue Body (${incrementData.userStories[0].id}):\n`);
|
|
401
|
+
const sampleBody = buildUserStoryIssueBody(incrementData.userStories[0], incrementData.tasks, incrementData, config ? `${config.owner}/${config.repo}` : 'owner/repo');
|
|
402
|
+
console.log(sampleBody);
|
|
403
|
+
console.log(`\n✅ Dry run complete (no issues created)`);
|
|
307
404
|
process.exit(0);
|
|
308
405
|
}
|
|
309
406
|
// After dry-run check, config is guaranteed to be non-null
|
|
@@ -311,60 +408,28 @@ async function main() {
|
|
|
311
408
|
console.error('❌ GitHub config not available');
|
|
312
409
|
process.exit(1);
|
|
313
410
|
}
|
|
314
|
-
//
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
]);
|
|
330
|
-
if (updateTitleResult.exitCode === 0) {
|
|
331
|
-
console.log(` ✅ Title updated to: ${issue.title}`);
|
|
332
|
-
}
|
|
333
|
-
else {
|
|
334
|
-
console.log(` ⚠️ Could not update title (may need permissions)`);
|
|
335
|
-
}
|
|
336
|
-
// Update metadata with lastSync
|
|
337
|
-
await updateIncrementMetadata(incrementPath, metadataLink.issue, `https://github.com/${config.owner}/${config.repo}/issues/${metadataLink.issue}`);
|
|
338
|
-
console.log(`\n✅ Sync complete!`);
|
|
339
|
-
console.log(` 🔗 https://github.com/${config.owner}/${config.repo}/issues/${metadataLink.issue}`);
|
|
340
|
-
process.exit(0);
|
|
341
|
-
}
|
|
342
|
-
// STEP 2: Search GitHub by feature ID (fallback)
|
|
343
|
-
const featureId = incrementData.frontmatter.feature_id ||
|
|
344
|
-
`FS-${fullIncrementId.match(/^(\d+)/)?.[1]?.padStart(3, '0') || 'UNKNOWN'}`;
|
|
345
|
-
console.log(`\n🔍 Searching GitHub for existing issue [${featureId}]...`);
|
|
346
|
-
const existingIssue = await findExistingIssue(config.owner, config.repo, featureId);
|
|
347
|
-
if (existingIssue) {
|
|
348
|
-
console.log(` Found existing issue: #${existingIssue}`);
|
|
349
|
-
// Update existing issue
|
|
350
|
-
console.log(`🔄 Updating issue #${existingIssue}...`);
|
|
351
|
-
await updateGitHubIssue(config.owner, config.repo, existingIssue, issue.body);
|
|
352
|
-
console.log(` ✅ Issue #${existingIssue} updated`);
|
|
353
|
-
await updateIncrementMetadata(incrementPath, existingIssue, `https://github.com/${config.owner}/${config.repo}/issues/${existingIssue}`);
|
|
354
|
-
console.log(`\n✅ Sync complete!`);
|
|
355
|
-
console.log(` 🔗 https://github.com/${config.owner}/${config.repo}/issues/${existingIssue}`);
|
|
356
|
-
process.exit(0);
|
|
411
|
+
// Load existing links
|
|
412
|
+
const existingLinks = loadExistingGitHubLinks(incrementPath);
|
|
413
|
+
// Create or get milestone
|
|
414
|
+
console.log(`\n🎯 Creating/updating milestone...`);
|
|
415
|
+
const milestone = await createOrGetMilestone(config.owner, config.repo, featureId, incrementData.title, existingLinks.milestone);
|
|
416
|
+
console.log(` ✅ Milestone #${milestone.number}: [${featureId}] ${incrementData.title}`);
|
|
417
|
+
// Create/update issues for each user story
|
|
418
|
+
console.log(`\n📝 Creating/updating user story issues...`);
|
|
419
|
+
const userStoryIssues = {};
|
|
420
|
+
for (const story of incrementData.userStories) {
|
|
421
|
+
const existingIssue = existingLinks.userStoryIssues[story.id];
|
|
422
|
+
const issue = await syncUserStoryIssue(config.owner, config.repo, featureId, story, incrementData.tasks, incrementData, milestone.number, existingIssue);
|
|
423
|
+
userStoryIssues[story.id] = issue.number;
|
|
424
|
+
const action = existingIssue ? '♻️ Updated' : '✅ Created';
|
|
425
|
+
console.log(` ${action} #${issue.number}: [${featureId}][${story.id}] ${story.title}`);
|
|
357
426
|
}
|
|
358
|
-
// STEP 3: Create new issue (no existing found)
|
|
359
|
-
console.log(` No existing issue found`);
|
|
360
|
-
console.log(`\n🚀 Creating GitHub issue...`);
|
|
361
|
-
const created = await createGitHubIssue(config.owner, config.repo, issue.title, issue.body, issue.labels);
|
|
362
|
-
console.log(` ✅ Issue #${created.number} created`);
|
|
363
427
|
// Update metadata
|
|
364
|
-
await updateIncrementMetadata(incrementPath,
|
|
365
|
-
console.log(
|
|
428
|
+
await updateIncrementMetadata(incrementPath, milestone.number, userStoryIssues);
|
|
429
|
+
console.log(`\n📝 Metadata updated`);
|
|
366
430
|
console.log(`\n✅ Sync complete!`);
|
|
367
|
-
console.log(`
|
|
431
|
+
console.log(` 🎯 Milestone: ${milestone.url}`);
|
|
432
|
+
console.log(` 📝 Issues: ${Object.keys(userStoryIssues).length} user stories synced`);
|
|
368
433
|
process.exit(0);
|
|
369
434
|
}
|
|
370
435
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-increment-sync-cli.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-increment-sync-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-increment-sync-cli.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-increment-sync-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,10 +27,20 @@ export declare class GitHubStatusSync {
|
|
|
27
27
|
/**
|
|
28
28
|
* Update GitHub issue status
|
|
29
29
|
*
|
|
30
|
+
* Preserves existing labels that are not status-related.
|
|
31
|
+
* Only replaces labels that start with "status:" prefix.
|
|
32
|
+
*
|
|
30
33
|
* @param issueNumber - GitHub issue number
|
|
31
34
|
* @param status - New status (state and labels)
|
|
32
35
|
*/
|
|
33
36
|
updateStatus(issueNumber: number, status: ExternalStatus): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Get current labels from GitHub issue
|
|
39
|
+
*
|
|
40
|
+
* @param issueNumber - GitHub issue number
|
|
41
|
+
* @returns Array of current label names
|
|
42
|
+
*/
|
|
43
|
+
private getCurrentLabels;
|
|
34
44
|
/**
|
|
35
45
|
* Post status change comment to GitHub issue
|
|
36
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-status-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;gBAET,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMtD;;;;;OAKG;IACU,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBpE
|
|
1
|
+
{"version":3,"file":"github-status-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;gBAET,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMtD;;;;;OAKG;IACU,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBpE;;;;;;;;OAQG;IACU,YAAY,CACvB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IA+ChB;;;;;OAKG;YACW,gBAAgB;IAgB9B;;;;;;OAMG;IACU,iBAAiB,CAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAkBjB"}
|