specweave 1.0.488 ā 1.0.489
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 +1 -1
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.d.ts +13 -5
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +28 -26
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts +10 -0
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-client.js +14 -0
- package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-pull-sync.d.ts +35 -0
- package/dist/plugins/specweave-ado/lib/ado-pull-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-pull-sync.js +53 -0
- package/dist/plugins/specweave-ado/lib/ado-pull-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-rate-limiter.d.ts +46 -0
- package/dist/plugins/specweave-ado/lib/ado-rate-limiter.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-rate-limiter.js +65 -0
- package/dist/plugins/specweave-ado/lib/ado-rate-limiter.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +7 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +25 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +17 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js +51 -9
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-push-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-push-sync.js +15 -3
- package/dist/plugins/specweave-github/lib/github-push-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +31 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +170 -97
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +36 -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 +185 -82
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
- package/dist/src/adapters/adapter-loader.d.ts.map +1 -1
- package/dist/src/adapters/adapter-loader.js +8 -2
- package/dist/src/adapters/adapter-loader.js.map +1 -1
- package/dist/src/adapters/codex/adapter.d.ts.map +1 -1
- package/dist/src/adapters/codex/adapter.js +1 -0
- package/dist/src/adapters/codex/adapter.js.map +1 -1
- package/dist/src/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/src/adapters/cursor/adapter.js +1 -0
- package/dist/src/adapters/cursor/adapter.js.map +1 -1
- package/dist/src/adapters/generic/adapter.d.ts +6 -3
- package/dist/src/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/src/adapters/generic/adapter.js +53 -47
- package/dist/src/adapters/generic/adapter.js.map +1 -1
- package/dist/src/adapters/kimi/adapter.d.ts +21 -0
- package/dist/src/adapters/kimi/adapter.d.ts.map +1 -0
- package/dist/src/adapters/kimi/adapter.js +57 -0
- package/dist/src/adapters/kimi/adapter.js.map +1 -0
- package/dist/src/adapters/opencode/adapter.d.ts +24 -0
- package/dist/src/adapters/opencode/adapter.d.ts.map +1 -0
- package/dist/src/adapters/opencode/adapter.js +71 -0
- package/dist/src/adapters/opencode/adapter.js.map +1 -0
- package/dist/src/adapters/registry.yaml +59 -0
- package/dist/src/adapters/trae/adapter.d.ts +21 -0
- package/dist/src/adapters/trae/adapter.d.ts.map +1 -0
- package/dist/src/adapters/trae/adapter.js +64 -0
- package/dist/src/adapters/trae/adapter.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +156 -5
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/update-instructions.d.ts.map +1 -1
- package/dist/src/cli/commands/update-instructions.js +10 -0
- package/dist/src/cli/commands/update-instructions.js.map +1 -1
- package/dist/src/cli/helpers/init/index.d.ts +1 -0
- package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/index.js +2 -0
- package/dist/src/cli/helpers/init/index.js.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.js +52 -0
- package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
- package/dist/src/cli/helpers/init/skill-creator-installer.d.ts +24 -0
- package/dist/src/cli/helpers/init/skill-creator-installer.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/skill-creator-installer.js +54 -0
- package/dist/src/cli/helpers/init/skill-creator-installer.js.map +1 -0
- package/dist/src/core/ado-description-updater.d.ts +22 -0
- package/dist/src/core/ado-description-updater.d.ts.map +1 -0
- package/dist/src/core/ado-description-updater.js +46 -0
- package/dist/src/core/ado-description-updater.js.map +1 -0
- package/dist/src/core/closure-dispatcher.d.ts +96 -0
- package/dist/src/core/closure-dispatcher.d.ts.map +1 -0
- package/dist/src/core/closure-dispatcher.js +116 -0
- package/dist/src/core/closure-dispatcher.js.map +1 -0
- package/dist/src/core/config/types.d.ts +2 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/errors/sync-error.d.ts +12 -0
- package/dist/src/core/errors/sync-error.d.ts.map +1 -0
- package/dist/src/core/errors/sync-error.js +19 -0
- package/dist/src/core/errors/sync-error.js.map +1 -0
- package/dist/src/core/skill-gen/rule-collector.d.ts +28 -0
- package/dist/src/core/skill-gen/rule-collector.d.ts.map +1 -0
- package/dist/src/core/skill-gen/rule-collector.js +112 -0
- package/dist/src/core/skill-gen/rule-collector.js.map +1 -0
- package/dist/src/core/skill-gen/signal-collector.d.ts +2 -1
- package/dist/src/core/skill-gen/signal-collector.d.ts.map +1 -1
- package/dist/src/core/skill-gen/signal-collector.js +21 -5
- package/dist/src/core/skill-gen/signal-collector.js.map +1 -1
- package/dist/src/core/sync/persistent-circuit-breaker.d.ts +22 -0
- package/dist/src/core/sync/persistent-circuit-breaker.d.ts.map +1 -0
- package/dist/src/core/sync/persistent-circuit-breaker.js +65 -0
- package/dist/src/core/sync/persistent-circuit-breaker.js.map +1 -0
- package/dist/src/core/sync/retry-wrapper.d.ts +13 -0
- package/dist/src/core/sync/retry-wrapper.d.ts.map +1 -0
- package/dist/src/core/sync/retry-wrapper.js +37 -0
- package/dist/src/core/sync/retry-wrapper.js.map +1 -0
- package/dist/src/importers/ac-parser.d.ts +27 -0
- package/dist/src/importers/ac-parser.d.ts.map +1 -0
- package/dist/src/importers/ac-parser.js +47 -0
- package/dist/src/importers/ac-parser.js.map +1 -0
- package/dist/src/sync/types.d.ts +8 -0
- package/dist/src/sync/types.d.ts.map +1 -1
- package/dist/src/sync/types.js +12 -0
- package/dist/src/sync/types.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/skills/code-reviewer/agents/reviewer-silent-failures.md +65 -0
- package/plugins/specweave/skills/code-reviewer/agents/reviewer-spec-compliance.md +83 -0
- package/plugins/specweave/skills/code-reviewer/agents/reviewer-types.md +68 -0
- package/plugins/specweave/skills/skill-gen/SKILL.md +20 -3
- package/plugins/specweave/skills/team-lead/agents/architect.md +52 -0
- package/plugins/specweave/skills/team-lead/agents/pm.md +50 -0
- package/plugins/specweave/skills/team-lead/agents/researcher.md +64 -0
- package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +23 -21
- package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts +37 -29
- package/plugins/specweave-ado/lib/ado-client.js +14 -0
- package/plugins/specweave-ado/lib/ado-client.ts +18 -0
- package/plugins/specweave-ado/lib/ado-pull-sync.js +35 -0
- package/plugins/specweave-ado/lib/ado-pull-sync.ts +74 -0
- package/plugins/specweave-ado/lib/ado-rate-limiter.js +56 -0
- package/plugins/specweave-ado/lib/ado-rate-limiter.ts +86 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +25 -1
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +32 -2
- package/plugins/specweave-ado/lib/ado-status-sync.js +52 -14
- package/plugins/specweave-ado/lib/ado-status-sync.ts +64 -16
- package/plugins/specweave-github/lib/github-client-v2.ts +1 -1
- package/plugins/specweave-github/lib/github-push-sync.js +11 -3
- package/plugins/specweave-github/lib/github-push-sync.ts +16 -3
- package/plugins/specweave-jira/lib/jira-spec-sync.js +60 -1
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +93 -1
- package/plugins/specweave-jira/lib/jira-status-sync.js +151 -109
- package/plugins/specweave-jira/lib/jira-status-sync.ts +161 -39
package/README.md
CHANGED
|
@@ -290,7 +290,7 @@ Claude: *automatically uses React Hook Form + Zod*
|
|
|
290
290
|
|
|
291
291
|
**[Skills deep dive](https://verified-skill.com/docs/overview/skills-as-programs)** | **[Skill development guidelines](https://verified-skill.com/docs/guides/skill-development-guidelines)** | **[Skill generation](https://verified-skill.com/docs/skills/extensible/skill-generation)**
|
|
292
292
|
|
|
293
|
-
**
|
|
293
|
+
**AI-Powered Skill Generation:** SpecWeave automatically detects recurring patterns across your project's living docs using LLM analysis -- not hardcoded keyword matching. When patterns mature, it suggests generating project-specific Claude Code skills complete with evals and benchmarks. Use `--seed` mode to bootstrap instantly on existing projects. [Learn more](https://verified-skill.com/docs/skills/extensible/skill-generation).
|
|
294
294
|
|
|
295
295
|
---
|
|
296
296
|
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* ADO AC Checkbox Sync
|
|
3
3
|
*
|
|
4
4
|
* When ACs are marked complete in spec.md, updates the HTML description
|
|
5
|
-
* of the linked ADO work item
|
|
5
|
+
* of the linked ADO work item using API-based section update (not regex).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Uses AdoDescriptionUpdater for clean HTML section manipulation via
|
|
8
|
+
* sentinel comments (<!-- AC_SECTION_START/END -->).
|
|
9
9
|
*/
|
|
10
|
+
import { AxiosInstance } from 'axios';
|
|
10
11
|
import { Logger } from '../../specweave/lib/vendor/utils/logger.js';
|
|
11
12
|
import type { SpecWeaveConfig } from '../../../src/core/config/types.js';
|
|
12
13
|
export interface AdoACCheckboxSyncResult {
|
|
@@ -25,8 +26,15 @@ export declare class AdoACCheckboxSync {
|
|
|
25
26
|
});
|
|
26
27
|
syncACCheckboxesToAdo(config: SpecWeaveConfig): Promise<AdoACCheckboxSyncResult>;
|
|
27
28
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
29
|
+
* Update a work item's AC section using API-based section manipulation.
|
|
30
|
+
*
|
|
31
|
+
* GET description ā formatACCheckboxes ā updateAcSection ā PATCH with
|
|
32
|
+
* JSON Patch op:"replace". No regex used at any point.
|
|
33
|
+
*/
|
|
34
|
+
updateWorkItemACSection(client: AxiosInstance, storyId: number, acStatus: Map<string, boolean>): Promise<number>;
|
|
35
|
+
/**
|
|
36
|
+
* Legacy: Fetch current HTML description, regex-flip checkboxes, PATCH back.
|
|
37
|
+
* Kept for backward compatibility. New code should use updateWorkItemACSection.
|
|
30
38
|
*/
|
|
31
39
|
private updateStoryCheckboxes;
|
|
32
40
|
private buildClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-ac-checkbox-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"ado-ac-checkbox-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAiB,MAAM,4CAA4C,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAMK,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA2FtF;;;;;OAKG;IACG,uBAAuB,CAC3B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC;IA+ClB;;;OAGG;YACW,qBAAqB;IASnC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,gBAAgB;YA8BV,2BAA2B;CAiE1C"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* ADO AC Checkbox Sync
|
|
3
3
|
*
|
|
4
4
|
* When ACs are marked complete in spec.md, updates the HTML description
|
|
5
|
-
* of the linked ADO work item
|
|
5
|
+
* of the linked ADO work item using API-based section update (not regex).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Uses AdoDescriptionUpdater for clean HTML section manipulation via
|
|
8
|
+
* sentinel comments (<!-- AC_SECTION_START/END -->).
|
|
9
9
|
*/
|
|
10
10
|
import { promises as fs, existsSync } from 'fs';
|
|
11
11
|
import path from 'path';
|
|
@@ -14,6 +14,7 @@ import axios from 'axios';
|
|
|
14
14
|
import { consoleLogger } from '../../specweave/lib/vendor/utils/logger.js';
|
|
15
15
|
import { deriveFeatureId } from '../../specweave/lib/vendor/utils/feature-id-derivation.js';
|
|
16
16
|
import { GitHubACCheckboxSync } from '../../specweave-github/lib/github-ac-checkbox-sync.js';
|
|
17
|
+
import { AdoDescriptionUpdater } from '../../../src/core/ado-description-updater.js';
|
|
17
18
|
export class AdoACCheckboxSync {
|
|
18
19
|
constructor(options) {
|
|
19
20
|
this.projectRoot = options.projectRoot;
|
|
@@ -89,29 +90,23 @@ export class AdoACCheckboxSync {
|
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
93
|
+
* Update a work item's AC section using API-based section manipulation.
|
|
94
|
+
*
|
|
95
|
+
* GET description ā formatACCheckboxes ā updateAcSection ā PATCH with
|
|
96
|
+
* JSON Patch op:"replace". No regex used at any point.
|
|
94
97
|
*/
|
|
95
|
-
async
|
|
98
|
+
async updateWorkItemACSection(client, storyId, acStatus) {
|
|
99
|
+
const updater = new AdoDescriptionUpdater();
|
|
96
100
|
const resp = await client.get(`/wit/workitems/${storyId}?fields=System.Description&api-version=7.0`);
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const beforeRegex = new RegExp(`(ā|ā)\\s+(${escaped}:)`, 'g');
|
|
104
|
-
const newCheckbox = completed ? 'ā' : 'ā';
|
|
105
|
-
const replaced = description.replace(beforeRegex, `${newCheckbox} $2`);
|
|
106
|
-
if (replaced !== description) {
|
|
107
|
-
updatedCount++;
|
|
108
|
-
description = replaced;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (description === original)
|
|
101
|
+
const currentDescription = resp.data?.fields?.['System.Description'] ?? '';
|
|
102
|
+
const newAcHtml = updater.formatACCheckboxes(acStatus);
|
|
103
|
+
if (!newAcHtml)
|
|
104
|
+
return 0;
|
|
105
|
+
const updatedDescription = updater.updateAcSection(currentDescription, newAcHtml);
|
|
106
|
+
if (updatedDescription === currentDescription)
|
|
112
107
|
return 0;
|
|
113
|
-
// PATCH description
|
|
114
|
-
await client.patch(`/wit/workitems/${storyId}?api-version=7.0`, [{ op: 'replace', path: '/fields/System.Description', value:
|
|
108
|
+
// PATCH description via JSON Patch
|
|
109
|
+
await client.patch(`/wit/workitems/${storyId}?api-version=7.0`, [{ op: 'replace', path: '/fields/System.Description', value: updatedDescription }], { headers: { 'Content-Type': 'application/json-patch+json' } });
|
|
115
110
|
// Post progress comment
|
|
116
111
|
const completedCount = [...acStatus.values()].filter(Boolean).length;
|
|
117
112
|
const totalCount = acStatus.size;
|
|
@@ -119,14 +114,21 @@ export class AdoACCheckboxSync {
|
|
|
119
114
|
const acLines = [...acStatus.entries()]
|
|
120
115
|
.map(([id, done]) => `<li>${done ? 'ā
' : 'ā¬'} ${id}</li>`)
|
|
121
116
|
.join('\n');
|
|
122
|
-
const commentHtml = `<h3
|
|
117
|
+
const commentHtml = `<h3>AC Progress Update</h3>
|
|
123
118
|
<p><strong>Acceptance Criteria</strong>: ${completedCount}/${totalCount} (${percentage}%)</p>
|
|
124
119
|
<ul>
|
|
125
120
|
${acLines}
|
|
126
121
|
</ul>
|
|
127
|
-
<p
|
|
122
|
+
<p>Auto-updated by SpecWeave</p>`;
|
|
128
123
|
await client.post(`/wit/workItems/${storyId}/comments?api-version=7.1-preview.3`, { text: commentHtml });
|
|
129
|
-
return
|
|
124
|
+
return acStatus.size;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Legacy: Fetch current HTML description, regex-flip checkboxes, PATCH back.
|
|
128
|
+
* Kept for backward compatibility. New code should use updateWorkItemACSection.
|
|
129
|
+
*/
|
|
130
|
+
async updateStoryCheckboxes(client, adoConfig, storyId, acStatus) {
|
|
131
|
+
return this.updateWorkItemACSection(client, storyId, acStatus);
|
|
130
132
|
}
|
|
131
133
|
buildClient(adoConfig) {
|
|
132
134
|
const token = Buffer.from(`:${adoConfig.pat}`).toString('base64');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-ac-checkbox-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAU,aAAa,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,2DAA2D,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"ado-ac-checkbox-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,6 +83,16 @@ export declare class AdoClient {
|
|
|
83
83
|
* @see https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/work-items/delete
|
|
84
84
|
*/
|
|
85
85
|
deleteWorkItem(id: number): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Pull the current state of a work item for bidirectional sync.
|
|
88
|
+
*
|
|
89
|
+
* @param id - ADO work item ID
|
|
90
|
+
* @returns state and last-modified timestamp
|
|
91
|
+
*/
|
|
92
|
+
pullWorkItemState(id: number): Promise<{
|
|
93
|
+
state: string;
|
|
94
|
+
modifiedAt: Date;
|
|
95
|
+
}>;
|
|
86
96
|
/**
|
|
87
97
|
* Add comment to work item
|
|
88
98
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-client.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACxB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,SAAS;IAY7B;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoDvE;;;;OAIG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhD;;;;OAIG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0CnF;;;;OAIG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ado-client.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,6 +127,20 @@ export class AdoClient {
|
|
|
127
127
|
const url = `${this.baseUrl}/_apis/wit/workitems/${id}?api-version=7.1`;
|
|
128
128
|
await this.request('DELETE', url);
|
|
129
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Pull the current state of a work item for bidirectional sync.
|
|
132
|
+
*
|
|
133
|
+
* @param id - ADO work item ID
|
|
134
|
+
* @returns state and last-modified timestamp
|
|
135
|
+
*/
|
|
136
|
+
async pullWorkItemState(id) {
|
|
137
|
+
const url = `${this.baseUrl}/_apis/wit/workitems/${id}?$select=System.State,System.ChangedDate&api-version=7.1`;
|
|
138
|
+
const item = await this.request('GET', url);
|
|
139
|
+
return {
|
|
140
|
+
state: item.fields['System.State'],
|
|
141
|
+
modifiedAt: new Date(item.fields['System.ChangedDate']),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
130
144
|
// ==========================================================================
|
|
131
145
|
// Comment Operations
|
|
132
146
|
// ==========================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-client.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ado-client.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADO Pull Sync ā Bidirectional state synchronization
|
|
3
|
+
*
|
|
4
|
+
* Implements last-write-wins conflict resolution for pulling
|
|
5
|
+
* ADO work item state changes back into SpecWeave metadata.
|
|
6
|
+
*
|
|
7
|
+
* @module ado-pull-sync
|
|
8
|
+
*/
|
|
9
|
+
export interface PullSyncContext {
|
|
10
|
+
localStatus: string;
|
|
11
|
+
localUpdatedAt: Date;
|
|
12
|
+
adoState: string;
|
|
13
|
+
adoModifiedAt: Date;
|
|
14
|
+
workItemId: number;
|
|
15
|
+
canUpsertInternalItems: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface PullSyncResult {
|
|
18
|
+
changed: boolean;
|
|
19
|
+
newStatus?: string;
|
|
20
|
+
reason?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Map ADO work item states to SpecWeave statuses.
|
|
24
|
+
*
|
|
25
|
+
* Covers Agile/Scrum/Basic process templates.
|
|
26
|
+
*/
|
|
27
|
+
export declare function mapAdoStateToSpecweave(adoState: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Determine if ADO changes should override local state.
|
|
30
|
+
*
|
|
31
|
+
* Uses last-write-wins: if ADO was modified more recently than local,
|
|
32
|
+
* and the mapped state differs, update local metadata.
|
|
33
|
+
*/
|
|
34
|
+
export declare function pullAdoChanges(ctx: PullSyncContext): PullSyncResult;
|
|
35
|
+
//# sourceMappingURL=ado-pull-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ado-pull-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-pull-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAc/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,cAAc,CAsBnE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADO Pull Sync ā Bidirectional state synchronization
|
|
3
|
+
*
|
|
4
|
+
* Implements last-write-wins conflict resolution for pulling
|
|
5
|
+
* ADO work item state changes back into SpecWeave metadata.
|
|
6
|
+
*
|
|
7
|
+
* @module ado-pull-sync
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Map ADO work item states to SpecWeave statuses.
|
|
11
|
+
*
|
|
12
|
+
* Covers Agile/Scrum/Basic process templates.
|
|
13
|
+
*/
|
|
14
|
+
export function mapAdoStateToSpecweave(adoState) {
|
|
15
|
+
const map = {
|
|
16
|
+
'New': 'planned',
|
|
17
|
+
'To Do': 'planned',
|
|
18
|
+
'Active': 'active',
|
|
19
|
+
'Doing': 'active',
|
|
20
|
+
'In Progress': 'active',
|
|
21
|
+
'Resolved': 'completed',
|
|
22
|
+
'Closed': 'completed',
|
|
23
|
+
'Done': 'completed',
|
|
24
|
+
'Removed': 'abandoned',
|
|
25
|
+
};
|
|
26
|
+
return map[adoState] ?? 'active';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Determine if ADO changes should override local state.
|
|
30
|
+
*
|
|
31
|
+
* Uses last-write-wins: if ADO was modified more recently than local,
|
|
32
|
+
* and the mapped state differs, update local metadata.
|
|
33
|
+
*/
|
|
34
|
+
export function pullAdoChanges(ctx) {
|
|
35
|
+
if (!ctx.canUpsertInternalItems) {
|
|
36
|
+
return { changed: false, reason: 'canUpsertInternalItems is false' };
|
|
37
|
+
}
|
|
38
|
+
const mappedStatus = mapAdoStateToSpecweave(ctx.adoState);
|
|
39
|
+
// Same effective status ā no change needed
|
|
40
|
+
if (mappedStatus === ctx.localStatus) {
|
|
41
|
+
return { changed: false, reason: 'states are equivalent' };
|
|
42
|
+
}
|
|
43
|
+
// Last-write-wins: ADO must be newer
|
|
44
|
+
if (ctx.adoModifiedAt.getTime() <= ctx.localUpdatedAt.getTime()) {
|
|
45
|
+
return { changed: false, reason: 'local is newer' };
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
changed: true,
|
|
49
|
+
newStatus: mappedStatus,
|
|
50
|
+
reason: `ADO state "${ctx.adoState}" is newer ā updating to "${mappedStatus}"`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ado-pull-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ado-pull-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-pull-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,GAAG,GAA2B;QAClC,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,WAAW;KACvB,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE1D,2CAA2C;IAC3C,IAAI,YAAY,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAC7D,CAAC;IAED,qCAAqC;IACrC,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACtD,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,cAAc,GAAG,CAAC,QAAQ,6BAA6B,YAAY,GAAG;KAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADO Token Bucket Rate Limiter
|
|
3
|
+
*
|
|
4
|
+
* Simple token bucket that prevents exceeding Azure DevOps API rate limits.
|
|
5
|
+
* ADO's documented limit is ~200 requests per minute for PAT-based auth.
|
|
6
|
+
*
|
|
7
|
+
* Supports Retry-After header handling: when ADO returns 429, call
|
|
8
|
+
* applyRetryAfter(seconds) to block consumption until the cooldown expires.
|
|
9
|
+
*
|
|
10
|
+
* @module ado-rate-limiter
|
|
11
|
+
*/
|
|
12
|
+
export interface AdoRateLimiterOptions {
|
|
13
|
+
/** Max tokens per window (default: 200) */
|
|
14
|
+
capacity?: number;
|
|
15
|
+
/** Window duration in ms (default: 60000 = 1 minute) */
|
|
16
|
+
windowMs?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class AdoRateLimiter {
|
|
19
|
+
private readonly capacity;
|
|
20
|
+
private readonly windowMs;
|
|
21
|
+
private tokens;
|
|
22
|
+
private windowStart;
|
|
23
|
+
private retryAfterUntil;
|
|
24
|
+
constructor(options?: AdoRateLimiterOptions);
|
|
25
|
+
/**
|
|
26
|
+
* Try to consume one token. Returns true if allowed, false if exhausted.
|
|
27
|
+
*/
|
|
28
|
+
consume(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Number of tokens remaining in the current window.
|
|
31
|
+
*/
|
|
32
|
+
remaining(): number;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the bucket is fully exhausted (0 tokens remaining).
|
|
35
|
+
*/
|
|
36
|
+
isExhausted(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Apply a Retry-After delay (from ADO 429 response).
|
|
39
|
+
* Blocks all consumption until the delay expires.
|
|
40
|
+
*
|
|
41
|
+
* @param seconds - Number of seconds to wait
|
|
42
|
+
*/
|
|
43
|
+
applyRetryAfter(seconds: number): void;
|
|
44
|
+
private refillIfWindowExpired;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ado-rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ado-rate-limiter.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;gBAEpB,OAAO,CAAC,EAAE,qBAAqB;IAQ3C;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,WAAW,IAAI,OAAO;IAKtB;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAItC,OAAO,CAAC,qBAAqB;CAO9B"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADO Token Bucket Rate Limiter
|
|
3
|
+
*
|
|
4
|
+
* Simple token bucket that prevents exceeding Azure DevOps API rate limits.
|
|
5
|
+
* ADO's documented limit is ~200 requests per minute for PAT-based auth.
|
|
6
|
+
*
|
|
7
|
+
* Supports Retry-After header handling: when ADO returns 429, call
|
|
8
|
+
* applyRetryAfter(seconds) to block consumption until the cooldown expires.
|
|
9
|
+
*
|
|
10
|
+
* @module ado-rate-limiter
|
|
11
|
+
*/
|
|
12
|
+
export class AdoRateLimiter {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.capacity = options?.capacity ?? 200;
|
|
15
|
+
this.windowMs = options?.windowMs ?? 60000;
|
|
16
|
+
this.tokens = this.capacity;
|
|
17
|
+
this.windowStart = Date.now();
|
|
18
|
+
this.retryAfterUntil = 0;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Try to consume one token. Returns true if allowed, false if exhausted.
|
|
22
|
+
*/
|
|
23
|
+
consume() {
|
|
24
|
+
this.refillIfWindowExpired();
|
|
25
|
+
if (Date.now() < this.retryAfterUntil) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (this.tokens <= 0) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
this.tokens--;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Number of tokens remaining in the current window.
|
|
36
|
+
*/
|
|
37
|
+
remaining() {
|
|
38
|
+
this.refillIfWindowExpired();
|
|
39
|
+
return this.tokens;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Whether the bucket is fully exhausted (0 tokens remaining).
|
|
43
|
+
*/
|
|
44
|
+
isExhausted() {
|
|
45
|
+
this.refillIfWindowExpired();
|
|
46
|
+
return this.tokens <= 0;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Apply a Retry-After delay (from ADO 429 response).
|
|
50
|
+
* Blocks all consumption until the delay expires.
|
|
51
|
+
*
|
|
52
|
+
* @param seconds - Number of seconds to wait
|
|
53
|
+
*/
|
|
54
|
+
applyRetryAfter(seconds) {
|
|
55
|
+
this.retryAfterUntil = Date.now() + seconds * 1000;
|
|
56
|
+
}
|
|
57
|
+
refillIfWindowExpired() {
|
|
58
|
+
const now = Date.now();
|
|
59
|
+
if (now - this.windowStart >= this.windowMs) {
|
|
60
|
+
this.tokens = this.capacity;
|
|
61
|
+
this.windowStart = now;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=ado-rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ado-rate-limiter.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,MAAM,OAAO,cAAc;IAOzB,YAAY,OAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAM,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAAe;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC;IACrD,CAAC;IAEO,qBAAqB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* @module ado-spec-sync
|
|
14
14
|
*/
|
|
15
15
|
import { SpecSyncResult } from '../../../src/core/types/spec-metadata.js';
|
|
16
|
+
import { SyncCircuitBreaker } from '../../../src/core/increment/sync-circuit-breaker.js';
|
|
16
17
|
export interface AdoFeature {
|
|
17
18
|
id: number;
|
|
18
19
|
url: string;
|
|
@@ -45,7 +46,8 @@ export declare class AdoSpecSync {
|
|
|
45
46
|
private config;
|
|
46
47
|
private projectRoot;
|
|
47
48
|
private availableTypes;
|
|
48
|
-
|
|
49
|
+
private breaker;
|
|
50
|
+
constructor(config: AdoConfig, projectRoot?: string, projectId?: string, breaker?: SyncCircuitBreaker);
|
|
49
51
|
/**
|
|
50
52
|
* Detect available work item types for this ADO project.
|
|
51
53
|
* Basic process has Epic/Issue/Task; Agile/Scrum has Feature/User Story/Bug/Task.
|
|
@@ -137,5 +139,9 @@ export declare class AdoSpecSync {
|
|
|
137
139
|
* Supports: Feature, User Story, Bug, Task
|
|
138
140
|
*/
|
|
139
141
|
private mapTypeToAdo;
|
|
142
|
+
/**
|
|
143
|
+
* Check whether the circuit is closed (sync allowed).
|
|
144
|
+
*/
|
|
145
|
+
canSync(): boolean;
|
|
140
146
|
}
|
|
141
147
|
//# sourceMappingURL=ado-spec-sync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAQzF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,SAAS,EAAE,WAAW,GAAE,MAAsB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAsBpH;;;OAGG;YACW,oBAAoB;IAYlC;;;OAGG;YACW,mBAAmB;IAiBjC;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAkC;YACtC,oBAAoB;IA+BlC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAwE5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+E1D;;OAEG;YACW,gBAAgB;IAqD9B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;YACW,eAAe;IA4E7B;;OAEG;YACW,kBAAkB;IAqChC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,WAAW;IAiEzB;;OAEG;YACW,WAAW;IA2DzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
|
|
16
16
|
import { SpecParser } from '../../../src/core/specs/spec-parser.js';
|
|
17
|
+
import { SyncCircuitBreaker } from '../../../src/core/increment/sync-circuit-breaker.js';
|
|
17
18
|
import axios from 'axios';
|
|
18
19
|
import { promises as fsPromises, existsSync } from 'fs';
|
|
19
20
|
import path from 'path';
|
|
20
21
|
import yaml from 'yaml';
|
|
21
22
|
export class AdoSpecSync {
|
|
22
|
-
constructor(config, projectRoot = process.cwd(), projectId) {
|
|
23
|
+
constructor(config, projectRoot = process.cwd(), projectId, breaker) {
|
|
23
24
|
this.availableTypes = null;
|
|
24
25
|
/**
|
|
25
26
|
* Resolve a work item state name for the given type.
|
|
@@ -32,6 +33,7 @@ export class AdoSpecSync {
|
|
|
32
33
|
this.projectRoot = projectRoot;
|
|
33
34
|
this.specManager = new SpecMetadataManager(projectRoot, projectId);
|
|
34
35
|
this.config = config;
|
|
36
|
+
this.breaker = breaker ?? new SyncCircuitBreaker();
|
|
35
37
|
// Create ADO API client
|
|
36
38
|
// NOTE: Do NOT set a default Content-Type here. Work item create/update
|
|
37
39
|
// requires 'application/json-patch+json', but WIQL queries require
|
|
@@ -116,6 +118,14 @@ export class AdoSpecSync {
|
|
|
116
118
|
*/
|
|
117
119
|
async syncSpecToAdo(specId) {
|
|
118
120
|
console.log(`\nš Syncing spec ${specId} to ADO Feature...`);
|
|
121
|
+
if (!this.breaker.canSync()) {
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
specId,
|
|
125
|
+
provider: 'ado',
|
|
126
|
+
error: 'Circuit breaker open ā sync blocked',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
119
129
|
try {
|
|
120
130
|
// 1. Load spec
|
|
121
131
|
const spec = await this.specManager.loadSpec(specId);
|
|
@@ -174,6 +184,14 @@ export class AdoSpecSync {
|
|
|
174
184
|
*/
|
|
175
185
|
async syncFromAdo(specId) {
|
|
176
186
|
console.log(`\nš Syncing FROM ADO to spec ${specId}...`);
|
|
187
|
+
if (!this.breaker.canSync()) {
|
|
188
|
+
return {
|
|
189
|
+
success: false,
|
|
190
|
+
specId,
|
|
191
|
+
provider: 'ado',
|
|
192
|
+
error: 'Circuit breaker open ā sync blocked',
|
|
193
|
+
};
|
|
194
|
+
}
|
|
177
195
|
try {
|
|
178
196
|
// 1. Load spec
|
|
179
197
|
const spec = await this.specManager.loadSpec(specId);
|
|
@@ -721,5 +739,11 @@ ${acList}
|
|
|
721
739
|
};
|
|
722
740
|
return map[normalizedType] || defaultType;
|
|
723
741
|
}
|
|
742
|
+
/**
|
|
743
|
+
* Check whether the circuit is closed (sync allowed).
|
|
744
|
+
*/
|
|
745
|
+
canSync() {
|
|
746
|
+
return this.breaker.canSync();
|
|
747
|
+
}
|
|
724
748
|
}
|
|
725
749
|
//# sourceMappingURL=ado-spec-sync.js.map
|