specweave 0.8.16 → 0.8.18
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/.claude-plugin/README.md +3 -3
- package/CLAUDE.md +77 -21
- package/README.md +11 -3
- package/README.md.bak +304 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +76 -22
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/ado.js +1 -1
- package/dist/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/github.js +1 -1
- package/dist/cli/helpers/issue-tracker/github.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/cli/helpers/issue-tracker/index.js +8 -3
- package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/jira.js +1 -1
- package/dist/cli/helpers/issue-tracker/jira.js.map +1 -1
- package/dist/cli/helpers/issue-tracker/utils.d.ts +5 -2
- package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -1
- package/dist/cli/helpers/issue-tracker/utils.js +13 -6
- package/dist/cli/helpers/issue-tracker/utils.js.map +1 -1
- package/dist/locales/en/cli.json +1 -1
- package/dist/utils/agents-md-compiler.js +2 -2
- package/dist/utils/env-multi-project-parser.d.ts +210 -0
- package/dist/utils/env-multi-project-parser.d.ts.map +1 -0
- package/dist/utils/env-multi-project-parser.js +406 -0
- package/dist/utils/env-multi-project-parser.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/hooks/post-first-increment.sh +79 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +50 -16
- package/plugins/specweave/skills/plugin-expert/SKILL.md +344 -0
- package/plugins/specweave/skills/specweave-framework/SKILL.md +2 -2
- package/plugins/specweave/skills/translator/SKILL.md +29 -0
- package/plugins/specweave/skills/translator/SKILL.md.bak +172 -0
- package/src/templates/.gitignore.template +1 -0
- package/src/templates/AGENTS.md.template +6 -6
- package/src/templates/CLAUDE.md.template +10 -10
|
@@ -65,22 +65,29 @@ export function isClaudeCliAvailable() {
|
|
|
65
65
|
* Install tracker plugin via Claude CLI
|
|
66
66
|
*
|
|
67
67
|
* @param tracker - Tracker type
|
|
68
|
-
* @returns
|
|
68
|
+
* @returns Object with success status and optional error message
|
|
69
69
|
*/
|
|
70
70
|
export function installTrackerPlugin(tracker) {
|
|
71
71
|
if (tracker === 'none')
|
|
72
|
-
return true;
|
|
72
|
+
return { success: true };
|
|
73
73
|
const pluginName = `specweave-${tracker}`;
|
|
74
74
|
try {
|
|
75
75
|
const result = execFileNoThrowSync('claude', [
|
|
76
76
|
'plugin',
|
|
77
77
|
'install',
|
|
78
|
-
|
|
78
|
+
pluginName // NO @marketplace suffix - Claude Code resolves from registered marketplaces
|
|
79
79
|
]);
|
|
80
|
-
|
|
80
|
+
if (result.success) {
|
|
81
|
+
return { success: true };
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Return detailed error for debugging
|
|
85
|
+
const error = result.stderr || result.stdout || 'Unknown error';
|
|
86
|
+
return { success: false, error };
|
|
87
|
+
}
|
|
81
88
|
}
|
|
82
|
-
catch {
|
|
83
|
-
return false;
|
|
89
|
+
catch (error) {
|
|
90
|
+
return { success: false, error: error.message || 'Failed to execute claude command' };
|
|
84
91
|
}
|
|
85
92
|
}
|
|
86
93
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/helpers/issue-tracker/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAG7G;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,iEAAiE;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEvD,qCAAqC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACvH,8BAA8B;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,+BAA+B;QACtH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,4BAA4B,EAAE,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/cli/helpers/issue-tracker/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAG7G;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,iEAAiE;IACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEvD,qCAAqC;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACvH,8BAA8B;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,+BAA+B;QACtH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,4BAA4B,EAAE,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEjD,MAAM,UAAU,GAAG,aAAa,OAAO,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE;YAC3C,QAAQ;YACR,SAAS;YACT,UAAU,CAAE,6EAA6E;SAC1F,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,kCAAkC,EAAE,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,OAAO,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAoB,EACpB,aAAqB,CAAC;IAEtB,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,SAAS,GAAG,KAAK,CAAC;YAElB,mCAAmC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACpC,MAAM,cAAc,GAAG,KAAuB,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;gBAE5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9F,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB;gBAC5C,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,OAAO,GAAG,CAAC,IAAI,UAAU,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC;gBACxF,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAE/C,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,4BAA4B,CAAC;IAChD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5C,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,aAAa,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,cAAc,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/locales/en/cli.json
CHANGED
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"installGitHub": "/plugin install specweave-github",
|
|
131
131
|
"installFrontend": "/plugin install specweave-frontend",
|
|
132
132
|
"step4": "Start building:",
|
|
133
|
-
"example": "\"/specweave:
|
|
133
|
+
"example": "\"/specweave:increment 'user authentication'\"",
|
|
134
134
|
"autoActivate": "Skills and agents auto-activate based on context"
|
|
135
135
|
},
|
|
136
136
|
"cursor": {
|
|
@@ -257,10 +257,10 @@ This project uses SpecWeave for spec-driven development. SpecWeave provides spec
|
|
|
257
257
|
/plugin marketplace add anton-abyzov/specweave
|
|
258
258
|
|
|
259
259
|
# Install core framework
|
|
260
|
-
/plugin install specweave
|
|
260
|
+
/plugin install specweave
|
|
261
261
|
|
|
262
262
|
# Install GitHub plugin (optional)
|
|
263
|
-
/plugin install specweave-github
|
|
263
|
+
/plugin install specweave-github
|
|
264
264
|
\`\`\`
|
|
265
265
|
|
|
266
266
|
### For Other Tools (Cursor, Copilot, etc.)
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Multi-Project Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses comma-separated project lists from .env:
|
|
5
|
+
* - JIRA_PROJECT_KEYS=BACKEND,FRONTEND,MOBILE
|
|
6
|
+
* - GITHUB_REPOS=owner/backend-api,owner/frontend-web
|
|
7
|
+
* - AZURE_DEVOPS_PROJECTS=backend-api,frontend-web
|
|
8
|
+
*
|
|
9
|
+
* Auto-creates sync profiles for each project.
|
|
10
|
+
*/
|
|
11
|
+
import { SyncProfile } from '../core/types/sync-profile.js';
|
|
12
|
+
export interface JiraProjectConfig {
|
|
13
|
+
projectKey: string;
|
|
14
|
+
domain: string;
|
|
15
|
+
email: string;
|
|
16
|
+
apiToken: string;
|
|
17
|
+
}
|
|
18
|
+
export interface GitHubRepoConfig {
|
|
19
|
+
owner: string;
|
|
20
|
+
repo: string;
|
|
21
|
+
token: string;
|
|
22
|
+
}
|
|
23
|
+
export interface AdoProjectConfig {
|
|
24
|
+
organization: string;
|
|
25
|
+
project: string;
|
|
26
|
+
pat: string;
|
|
27
|
+
}
|
|
28
|
+
export interface MultiProjectEnvConfig {
|
|
29
|
+
jira: JiraProjectConfig[];
|
|
30
|
+
github: GitHubRepoConfig[];
|
|
31
|
+
ado: AdoProjectConfig[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse comma-separated list from environment variable
|
|
35
|
+
*
|
|
36
|
+
* Handles:
|
|
37
|
+
* - Comma separation
|
|
38
|
+
* - Whitespace trimming
|
|
39
|
+
* - Empty values filtering
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* parseCommaSeparated("BACKEND, FRONTEND, MOBILE")
|
|
43
|
+
* // Returns: ["BACKEND", "FRONTEND", "MOBILE"]
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseCommaSeparated(value: string | undefined): string[];
|
|
46
|
+
/**
|
|
47
|
+
* Parse JIRA project keys from .env
|
|
48
|
+
*
|
|
49
|
+
* Reads:
|
|
50
|
+
* - JIRA_PROJECT_KEYS (comma-separated, NEW format)
|
|
51
|
+
* - JIRA_PROJECT_KEY (single, legacy format)
|
|
52
|
+
* - JIRA_DOMAIN, JIRA_EMAIL, JIRA_API_TOKEN (shared credentials)
|
|
53
|
+
*
|
|
54
|
+
* @returns Array of JIRA project configurations
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* // .env:
|
|
58
|
+
* // JIRA_PROJECT_KEYS=BACKEND,FRONTEND,MOBILE
|
|
59
|
+
* // JIRA_DOMAIN=mycompany.atlassian.net
|
|
60
|
+
* // JIRA_EMAIL=user@example.com
|
|
61
|
+
* // JIRA_API_TOKEN=abc123
|
|
62
|
+
*
|
|
63
|
+
* parseJiraProjects()
|
|
64
|
+
* // Returns: [
|
|
65
|
+
* // { projectKey: "BACKEND", domain: "...", email: "...", apiToken: "..." },
|
|
66
|
+
* // { projectKey: "FRONTEND", ... },
|
|
67
|
+
* // { projectKey: "MOBILE", ... }
|
|
68
|
+
* // ]
|
|
69
|
+
*/
|
|
70
|
+
export declare function parseJiraProjects(): JiraProjectConfig[];
|
|
71
|
+
/**
|
|
72
|
+
* Parse GitHub repositories from .env
|
|
73
|
+
*
|
|
74
|
+
* Reads:
|
|
75
|
+
* - GITHUB_REPOS (comma-separated, format: "owner/repo,owner2/repo2")
|
|
76
|
+
* - GITHUB_TOKEN (shared credential)
|
|
77
|
+
*
|
|
78
|
+
* @returns Array of GitHub repository configurations
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // .env:
|
|
82
|
+
* // GITHUB_REPOS=myorg/backend-api,myorg/frontend-web
|
|
83
|
+
* // GITHUB_TOKEN=ghp_abc123
|
|
84
|
+
*
|
|
85
|
+
* parseGitHubRepos()
|
|
86
|
+
* // Returns: [
|
|
87
|
+
* // { owner: "myorg", repo: "backend-api", token: "..." },
|
|
88
|
+
* // { owner: "myorg", repo: "frontend-web", token: "..." }
|
|
89
|
+
* // ]
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseGitHubRepos(): GitHubRepoConfig[];
|
|
92
|
+
/**
|
|
93
|
+
* Parse Azure DevOps projects from .env
|
|
94
|
+
*
|
|
95
|
+
* Reads:
|
|
96
|
+
* - AZURE_DEVOPS_PROJECTS (comma-separated)
|
|
97
|
+
* - AZURE_DEVOPS_ORG (shared organization)
|
|
98
|
+
* - AZURE_DEVOPS_PAT (shared credential)
|
|
99
|
+
*
|
|
100
|
+
* @returns Array of Azure DevOps project configurations
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* // .env:
|
|
104
|
+
* // AZURE_DEVOPS_PROJECTS=backend-api,frontend-web
|
|
105
|
+
* // AZURE_DEVOPS_ORG=easychamp
|
|
106
|
+
* // AZURE_DEVOPS_PAT=xyz789
|
|
107
|
+
*
|
|
108
|
+
* parseAdoProjects()
|
|
109
|
+
* // Returns: [
|
|
110
|
+
* // { organization: "easychamp", project: "backend-api", pat: "..." },
|
|
111
|
+
* // { organization: "easychamp", project: "frontend-web", pat: "..." }
|
|
112
|
+
* // ]
|
|
113
|
+
*/
|
|
114
|
+
export declare function parseAdoProjects(): AdoProjectConfig[];
|
|
115
|
+
/**
|
|
116
|
+
* Parse all multi-project configurations from .env
|
|
117
|
+
*
|
|
118
|
+
* @returns All detected project configurations
|
|
119
|
+
*/
|
|
120
|
+
export declare function parseMultiProjectEnv(): MultiProjectEnvConfig;
|
|
121
|
+
/**
|
|
122
|
+
* Generate sync profile ID from project identifier
|
|
123
|
+
*
|
|
124
|
+
* Format: "{provider}-{project-id}"
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* generateProfileId("jira", "BACKEND")
|
|
128
|
+
* // Returns: "jira-backend"
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* generateProfileId("github", "backend-api")
|
|
132
|
+
* // Returns: "github-backend-api"
|
|
133
|
+
*/
|
|
134
|
+
export declare function generateProfileId(provider: string, projectId: string): string;
|
|
135
|
+
/**
|
|
136
|
+
* Create JIRA sync profile from project configuration
|
|
137
|
+
*/
|
|
138
|
+
export declare function createJiraSyncProfile(config: JiraProjectConfig): {
|
|
139
|
+
id: string;
|
|
140
|
+
profile: Omit<SyncProfile, 'id'>;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Create GitHub sync profile from repository configuration
|
|
144
|
+
*/
|
|
145
|
+
export declare function createGitHubSyncProfile(config: GitHubRepoConfig): {
|
|
146
|
+
id: string;
|
|
147
|
+
profile: Omit<SyncProfile, 'id'>;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Create Azure DevOps sync profile from project configuration
|
|
151
|
+
*/
|
|
152
|
+
export declare function createAdoSyncProfile(config: AdoProjectConfig): {
|
|
153
|
+
id: string;
|
|
154
|
+
profile: Omit<SyncProfile, 'id'>;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Generate all sync profiles from environment variables
|
|
158
|
+
*
|
|
159
|
+
* @returns Array of { id, profile } objects ready to be created
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* // .env:
|
|
163
|
+
* // JIRA_PROJECT_KEYS=BACKEND,FRONTEND
|
|
164
|
+
* // GITHUB_REPOS=myorg/backend-api
|
|
165
|
+
*
|
|
166
|
+
* const profiles = generateSyncProfilesFromEnv();
|
|
167
|
+
* // Returns: [
|
|
168
|
+
* // { id: "jira-backend", profile: { ... } },
|
|
169
|
+
* // { id: "jira-frontend", profile: { ... } },
|
|
170
|
+
* // { id: "github-backend-api", profile: { ... } }
|
|
171
|
+
* // ]
|
|
172
|
+
*/
|
|
173
|
+
export declare function generateSyncProfilesFromEnv(): Array<{
|
|
174
|
+
id: string;
|
|
175
|
+
profile: Omit<SyncProfile, 'id'>;
|
|
176
|
+
}>;
|
|
177
|
+
/**
|
|
178
|
+
* Validate JIRA project key format
|
|
179
|
+
*
|
|
180
|
+
* Rules:
|
|
181
|
+
* - 2-10 characters
|
|
182
|
+
* - Uppercase letters only
|
|
183
|
+
* - No special characters
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* validateJiraProjectKey("BACKEND") // → true
|
|
187
|
+
* validateJiraProjectKey("backend") // → "Must be uppercase"
|
|
188
|
+
* validateJiraProjectKey("BACK") // → true
|
|
189
|
+
* validateJiraProjectKey("B") // → "Must be 2-10 characters"
|
|
190
|
+
*/
|
|
191
|
+
export declare function validateJiraProjectKey(key: string): true | string;
|
|
192
|
+
/**
|
|
193
|
+
* Validate GitHub repo format
|
|
194
|
+
*
|
|
195
|
+
* Format: "owner/repo"
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* validateGitHubRepo("myorg/backend-api") // → true
|
|
199
|
+
* validateGitHubRepo("backend-api") // → "Must be owner/repo format"
|
|
200
|
+
*/
|
|
201
|
+
export declare function validateGitHubRepo(repo: string): true | string;
|
|
202
|
+
/**
|
|
203
|
+
* Validate Azure DevOps project name
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* validateAdoProject("backend-api") // → true
|
|
207
|
+
* validateAdoProject("") // → "Project name is required"
|
|
208
|
+
*/
|
|
209
|
+
export declare function validateAdoProject(project: string): true | string;
|
|
210
|
+
//# sourceMappingURL=env-multi-project-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-multi-project-parser.d.ts","sourceRoot":"","sources":["../../src/utils/env-multi-project-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,GAAG,EAAE,gBAAgB,EAAE,CAAC;CACzB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CASvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAoCvD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CA8BrD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,EAAE,CAiCrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,CAM5D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAwBA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAuBA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAwBA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,IAAI,KAAK,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CAClC,CAAC,CAoBD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAcjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAqB9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAUjE"}
|