github-issue-tower-defence-management 2.153.9 → 2.154.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/bin/adapter/entry-points/cli/index.js +54 -0
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/cli/storyGateCommands.js +101 -0
- package/bin/adapter/entry-points/cli/storyGateCommands.js.map +1 -0
- package/bin/adapter/repositories/GithubStoryGateIssueRepository.js +256 -0
- package/bin/adapter/repositories/GithubStoryGateIssueRepository.js.map +1 -0
- package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js +107 -0
- package/bin/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.js.map +1 -0
- package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js +41 -0
- package/bin/adapter/repositories/YamlStoryGateProjectConfigRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js +11 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateIssueRepository.js.map +1 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.js.map +1 -0
- package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js +76 -0
- package/bin/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js +84 -0
- package/bin/domain/usecases/storyGate/SpecificationTaskStartUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js +446 -0
- package/bin/domain/usecases/storyGate/StoryGateCheckUseCase.js.map +1 -0
- package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js +23 -0
- package/bin/domain/usecases/storyGate/githubIssueReferenceParse.js.map +1 -0
- package/bin/domain/usecases/storyGate/issueCommentSplit.js +37 -0
- package/bin/domain/usecases/storyGate/issueCommentSplit.js.map +1 -0
- package/bin/domain/usecases/storyGate/specificationRoutingDetect.js +27 -0
- package/bin/domain/usecases/storyGate/specificationRoutingDetect.js.map +1 -0
- package/bin/domain/usecases/storyGate/specificationSectionDetect.js +50 -0
- package/bin/domain/usecases/storyGate/specificationSectionDetect.js.map +1 -0
- package/bin/domain/usecases/storyGate/storyValueClassify.js +20 -0
- package/bin/domain/usecases/storyGate/storyValueClassify.js.map +1 -0
- package/package.json +1 -1
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/cli/storyGateCommands.d.ts +32 -0
- package/types/adapter/entry-points/cli/storyGateCommands.d.ts.map +1 -0
- package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts +24 -0
- package/types/adapter/repositories/GithubStoryGateIssueRepository.d.ts.map +1 -0
- package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts +11 -0
- package/types/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.d.ts.map +1 -0
- package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts +7 -0
- package/types/adapter/repositories/YamlStoryGateProjectConfigRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts +25 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts +63 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateIssueRepository.d.ts.map +1 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts +9 -0
- package/types/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts +22 -0
- package/types/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts +24 -0
- package/types/domain/usecases/storyGate/SpecificationTaskStartUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts +123 -0
- package/types/domain/usecases/storyGate/StoryGateCheckUseCase.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts +4 -0
- package/types/domain/usecases/storyGate/githubIssueReferenceParse.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/issueCommentSplit.d.ts +18 -0
- package/types/domain/usecases/storyGate/issueCommentSplit.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts +4 -0
- package/types/domain/usecases/storyGate/specificationRoutingDetect.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts +8 -0
- package/types/domain/usecases/storyGate/specificationSectionDetect.d.ts.map +1 -0
- package/types/domain/usecases/storyGate/storyValueClassify.d.ts +10 -0
- package/types/domain/usecases/storyGate/storyValueClassify.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GithubStoryGateIssueRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GithubStoryGateIssueRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LocalStorageStoryGateBoardCacheRepository = exports.BOARD_CACHE_FILE_NAME = exports.BOARD_CACHE_DIRECTORY_PREFIX = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const isRecord_1 = require("../../domain/usecases/isRecord");
|
|
10
|
+
exports.BOARD_CACHE_DIRECTORY_PREFIX = 'allIssues-';
|
|
11
|
+
exports.BOARD_CACHE_FILE_NAME = 'latest.json';
|
|
12
|
+
const fieldOf = (value, key) => (0, isRecord_1.isRecord)(value) ? value[key] : undefined;
|
|
13
|
+
const stringFieldOf = (value, key) => {
|
|
14
|
+
const field = fieldOf(value, key);
|
|
15
|
+
return typeof field === 'string' ? field : null;
|
|
16
|
+
};
|
|
17
|
+
const arrayFieldOf = (value, key) => {
|
|
18
|
+
const field = fieldOf(value, key);
|
|
19
|
+
return Array.isArray(field) ? field : [];
|
|
20
|
+
};
|
|
21
|
+
const storyOptionsParse = (story) => arrayFieldOf(story, 'stories').flatMap((option) => {
|
|
22
|
+
const id = stringFieldOf(option, 'id');
|
|
23
|
+
const name = stringFieldOf(option, 'name');
|
|
24
|
+
return id !== null && name !== null
|
|
25
|
+
? [{ id, name, color: stringFieldOf(option, 'color') ?? '' }]
|
|
26
|
+
: [];
|
|
27
|
+
});
|
|
28
|
+
const issuesParse = (json) => arrayFieldOf(json, 'issues').flatMap((issue) => {
|
|
29
|
+
const url = stringFieldOf(issue, 'url');
|
|
30
|
+
if (url === null) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
url,
|
|
36
|
+
story: stringFieldOf(issue, 'story'),
|
|
37
|
+
labels: arrayFieldOf(issue, 'labels').filter((label) => typeof label === 'string'),
|
|
38
|
+
body: stringFieldOf(issue, 'body') ?? '',
|
|
39
|
+
itemId: stringFieldOf(issue, 'itemId') ?? '',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
});
|
|
43
|
+
const storyIssueUrlByOptionNameParse = (json) => {
|
|
44
|
+
const map = fieldOf(json, 'storyIssueUrlByOptionName');
|
|
45
|
+
if (!(0, isRecord_1.isRecord)(map)) {
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
return Object.fromEntries(Object.entries(map).flatMap(([name, url]) => typeof url === 'string' ? [[name, url]] : []));
|
|
49
|
+
};
|
|
50
|
+
class LocalStorageStoryGateBoardCacheRepository {
|
|
51
|
+
constructor(cacheBaseDirectory) {
|
|
52
|
+
this.cacheBaseDirectory = cacheBaseDirectory;
|
|
53
|
+
this.listBoardCachesNewestFirst = async () => {
|
|
54
|
+
const caches = [];
|
|
55
|
+
for (const filePath of this.boardCacheFilePathsList()) {
|
|
56
|
+
const cache = await this.boardCacheRead(filePath);
|
|
57
|
+
if (cache !== null) {
|
|
58
|
+
caches.push(cache);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return caches.sort((left, right) => right.modifiedAt.getTime() - left.modifiedAt.getTime());
|
|
62
|
+
};
|
|
63
|
+
this.boardCacheFilePathsList = () => {
|
|
64
|
+
if (!node_fs_1.default.existsSync(this.cacheBaseDirectory)) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
return node_fs_1.default
|
|
68
|
+
.readdirSync(this.cacheBaseDirectory, { withFileTypes: true })
|
|
69
|
+
.filter((projectEntry) => projectEntry.isDirectory())
|
|
70
|
+
.flatMap((projectEntry) => {
|
|
71
|
+
const projectDirectory = node_path_1.default.join(this.cacheBaseDirectory, projectEntry.name);
|
|
72
|
+
return node_fs_1.default
|
|
73
|
+
.readdirSync(projectDirectory, { withFileTypes: true })
|
|
74
|
+
.filter((boardEntry) => boardEntry.isDirectory() &&
|
|
75
|
+
boardEntry.name.startsWith(exports.BOARD_CACHE_DIRECTORY_PREFIX))
|
|
76
|
+
.map((boardEntry) => node_path_1.default.join(projectDirectory, boardEntry.name, exports.BOARD_CACHE_FILE_NAME))
|
|
77
|
+
.filter((filePath) => node_fs_1.default.existsSync(filePath));
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
this.boardCacheRead = async (filePath) => {
|
|
81
|
+
try {
|
|
82
|
+
const [stat, content] = await Promise.all([
|
|
83
|
+
node_fs_1.default.promises.stat(filePath),
|
|
84
|
+
node_fs_1.default.promises.readFile(filePath, 'utf8'),
|
|
85
|
+
]);
|
|
86
|
+
const json = JSON.parse(content);
|
|
87
|
+
const project = fieldOf(json, 'project');
|
|
88
|
+
const story = fieldOf(project, 'story');
|
|
89
|
+
return {
|
|
90
|
+
filePath,
|
|
91
|
+
modifiedAt: stat.mtime,
|
|
92
|
+
projectId: stringFieldOf(project, 'id') ?? '',
|
|
93
|
+
storyFieldId: stringFieldOf(story, 'fieldId'),
|
|
94
|
+
storyOptions: storyOptionsParse(story),
|
|
95
|
+
storyIssueUrlByOptionName: storyIssueUrlByOptionNameParse(json),
|
|
96
|
+
issues: issuesParse(json),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.warn(`Skipping unreadable board cache ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.LocalStorageStoryGateBoardCacheRepository = LocalStorageStoryGateBoardCacheRepository;
|
|
107
|
+
//# sourceMappingURL=LocalStorageStoryGateBoardCacheRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorageStoryGateBoardCacheRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/LocalStorageStoryGateBoardCacheRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.YamlStoryGateProjectConfigRepository = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
10
|
+
const isRecord_1 = require("../../domain/usecases/isRecord");
|
|
11
|
+
const PROJECT_CONFIG_FILE_PATTERN = /\.config\.ya?ml$/;
|
|
12
|
+
class YamlStoryGateProjectConfigRepository {
|
|
13
|
+
constructor(configDirectory) {
|
|
14
|
+
this.configDirectory = configDirectory;
|
|
15
|
+
this.listProjectConfigs = async () => {
|
|
16
|
+
const fileNames = (await node_fs_1.default.promises.readdir(this.configDirectory))
|
|
17
|
+
.filter((fileName) => PROJECT_CONFIG_FILE_PATTERN.test(fileName))
|
|
18
|
+
.sort();
|
|
19
|
+
const configs = [];
|
|
20
|
+
for (const fileName of fileNames) {
|
|
21
|
+
const filePath = node_path_1.default.join(this.configDirectory, fileName);
|
|
22
|
+
const parsed = yaml_1.default.parse(await node_fs_1.default.promises.readFile(filePath, 'utf8'));
|
|
23
|
+
const org = (0, isRecord_1.isRecord)(parsed) ? parsed.org : undefined;
|
|
24
|
+
const agents = (0, isRecord_1.isRecord)(parsed) ? parsed.agents : undefined;
|
|
25
|
+
if (typeof org !== 'string' || org === '') {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
configs.push({
|
|
29
|
+
filePath,
|
|
30
|
+
org,
|
|
31
|
+
agents: Array.isArray(agents)
|
|
32
|
+
? agents.filter((agent) => typeof agent === 'string')
|
|
33
|
+
: [],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return configs;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.YamlStoryGateProjectConfigRepository = YamlStoryGateProjectConfigRepository;
|
|
41
|
+
//# sourceMappingURL=YamlStoryGateProjectConfigRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YamlStoryGateProjectConfigRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/YamlStoryGateProjectConfigRepository.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,gDAAwB;AACxB,6DAA0D;AAM1D,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAEvD,MAAa,oCAAoC;IAC/C,YAA6B,eAAuB;QAAvB,oBAAe,GAAf,eAAe,CAAQ;QAEpD,uBAAkB,GAAG,KAAK,IAAuC,EAAE;YACjE,MAAM,SAAS,GAAG,CAAC,MAAM,iBAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBAChE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAChE,IAAI,EAAE,CAAC;YACV,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAY,cAAI,CAAC,KAAK,CAChC,MAAM,iBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC7C,CAAC;gBACF,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ;oBACR,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;wBACtE,CAAC,CAAC,EAAE;iBACP,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IA1BqD,CAAC;CA2BzD;AA5BD,oFA4BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateBoardCacheRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateBoardCacheRepository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoryGateGithubRequestError = void 0;
|
|
4
|
+
class StoryGateGithubRequestError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'StoryGateGithubRequestError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.StoryGateGithubRequestError = StoryGateGithubRequestError;
|
|
11
|
+
//# sourceMappingURL=StoryGateIssueRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateIssueRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateIssueRepository.ts"],"names":[],"mappings":";;;AA+DA,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AALD,kEAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryGateProjectConfigRepository.js","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/StoryGateProjectConfigRepository.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IssueStorySetIfUnsetUseCase = void 0;
|
|
4
|
+
const StoryGateIssueRepository_1 = require("../adapter-interfaces/StoryGateIssueRepository");
|
|
5
|
+
const storyValueClassify_1 = require("./storyValueClassify");
|
|
6
|
+
class IssueStorySetIfUnsetUseCase {
|
|
7
|
+
constructor(issueRepository) {
|
|
8
|
+
this.issueRepository = issueRepository;
|
|
9
|
+
this.run = async (input) => {
|
|
10
|
+
const result = {
|
|
11
|
+
issueUrl: input.issue.url,
|
|
12
|
+
requestedStory: input.storyName,
|
|
13
|
+
dryRun: input.dryRun,
|
|
14
|
+
outcome: 'ISSUE_NOT_IN_PROJECT',
|
|
15
|
+
liveStory: null,
|
|
16
|
+
projectId: null,
|
|
17
|
+
itemId: null,
|
|
18
|
+
};
|
|
19
|
+
const snapshot = await this.issueRepository.findIssueProjectItems(input.issue);
|
|
20
|
+
if (snapshot === null) {
|
|
21
|
+
throw new StoryGateIssueRepository_1.StoryGateGithubRequestError(`Issue not found or not readable with the given token: ${input.issue.url}`);
|
|
22
|
+
}
|
|
23
|
+
if (snapshot.items.length === 0) {
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
const itemWithStory = snapshot.items.find((item) => !(0, storyValueClassify_1.isStoryUnset)(item.storyName));
|
|
27
|
+
if (itemWithStory !== undefined) {
|
|
28
|
+
return {
|
|
29
|
+
...result,
|
|
30
|
+
outcome: 'LIVE_STORY_ALREADY_SET',
|
|
31
|
+
liveStory: itemWithStory.storyName,
|
|
32
|
+
projectId: itemWithStory.projectId,
|
|
33
|
+
itemId: itemWithStory.itemId,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const target = snapshot.items
|
|
37
|
+
.map((item) => ({
|
|
38
|
+
item,
|
|
39
|
+
storyField: item.storyField,
|
|
40
|
+
option: item.storyField?.options.find((candidate) => candidate.name === input.storyName),
|
|
41
|
+
}))
|
|
42
|
+
.find((candidate) => candidate.option !== undefined);
|
|
43
|
+
if (target === undefined ||
|
|
44
|
+
target.option === undefined ||
|
|
45
|
+
target.storyField === null ||
|
|
46
|
+
target.option.color === storyValueClassify_1.DISABLED_STORY_OPTION_COLOR) {
|
|
47
|
+
return { ...result, outcome: 'OPTION_NOT_ACTIVE' };
|
|
48
|
+
}
|
|
49
|
+
const targetResult = {
|
|
50
|
+
...result,
|
|
51
|
+
liveStory: target.item.storyName,
|
|
52
|
+
projectId: target.item.projectId,
|
|
53
|
+
itemId: target.item.itemId,
|
|
54
|
+
};
|
|
55
|
+
if (input.dryRun) {
|
|
56
|
+
return { ...targetResult, outcome: 'SKIPPED_DRY_RUN' };
|
|
57
|
+
}
|
|
58
|
+
await this.issueRepository.updateProjectItemSingleSelectValue({
|
|
59
|
+
projectId: target.item.projectId,
|
|
60
|
+
itemId: target.item.itemId,
|
|
61
|
+
fieldId: target.storyField.fieldId,
|
|
62
|
+
optionId: target.option.id,
|
|
63
|
+
});
|
|
64
|
+
const readBack = await this.issueRepository.findIssueProjectItems(input.issue);
|
|
65
|
+
const readBackStory = readBack?.items.find((item) => item.itemId === target.item.itemId)
|
|
66
|
+
?.storyName ?? null;
|
|
67
|
+
return {
|
|
68
|
+
...targetResult,
|
|
69
|
+
liveStory: readBackStory,
|
|
70
|
+
outcome: readBackStory === input.storyName ? 'WRITTEN' : 'READ_BACK_MISMATCH',
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.IssueStorySetIfUnsetUseCase = IssueStorySetIfUnsetUseCase;
|
|
76
|
+
//# sourceMappingURL=IssueStorySetIfUnsetUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueStorySetIfUnsetUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/IssueStorySetIfUnsetUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpecificationTaskStartUseCase = void 0;
|
|
4
|
+
const WorkflowStatus_1 = require("../../entities/WorkflowStatus");
|
|
5
|
+
const StoryGateIssueRepository_1 = require("../adapter-interfaces/StoryGateIssueRepository");
|
|
6
|
+
class SpecificationTaskStartUseCase {
|
|
7
|
+
constructor(issueRepository) {
|
|
8
|
+
this.issueRepository = issueRepository;
|
|
9
|
+
this.run = async (input) => {
|
|
10
|
+
const result = {
|
|
11
|
+
issueUrl: input.issue.url,
|
|
12
|
+
specificationAgentName: input.specificationAgentName,
|
|
13
|
+
statusName: WorkflowStatus_1.AWAITING_WORKSPACE_STATUS_NAME,
|
|
14
|
+
dryRun: input.dryRun,
|
|
15
|
+
outcome: 'ISSUE_NOT_IN_PROJECT',
|
|
16
|
+
projectId: null,
|
|
17
|
+
itemId: null,
|
|
18
|
+
readBackAgentName: null,
|
|
19
|
+
readBackStatusName: null,
|
|
20
|
+
};
|
|
21
|
+
const snapshot = await this.issueRepository.findIssueProjectItems(input.issue);
|
|
22
|
+
if (snapshot === null) {
|
|
23
|
+
throw new StoryGateIssueRepository_1.StoryGateGithubRequestError(`Issue not found or not readable with the given token: ${input.issue.url}`);
|
|
24
|
+
}
|
|
25
|
+
if (snapshot.state === 'CLOSED') {
|
|
26
|
+
return { ...result, outcome: 'ISSUE_CLOSED' };
|
|
27
|
+
}
|
|
28
|
+
if (snapshot.items.length === 0) {
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
const target = snapshot.items
|
|
32
|
+
.map((item) => ({
|
|
33
|
+
item,
|
|
34
|
+
agentField: item.agentField,
|
|
35
|
+
agentOption: item.agentField?.options.find((option) => option.name === input.specificationAgentName),
|
|
36
|
+
}))
|
|
37
|
+
.find((candidate) => candidate.agentOption !== undefined);
|
|
38
|
+
if (target === undefined ||
|
|
39
|
+
target.agentOption === undefined ||
|
|
40
|
+
target.agentField === null) {
|
|
41
|
+
return { ...result, outcome: 'AGENT_OPTION_NOT_FOUND' };
|
|
42
|
+
}
|
|
43
|
+
const targetResult = {
|
|
44
|
+
...result,
|
|
45
|
+
projectId: target.item.projectId,
|
|
46
|
+
itemId: target.item.itemId,
|
|
47
|
+
};
|
|
48
|
+
const statusField = target.item.statusField;
|
|
49
|
+
const statusOption = statusField?.options.find((option) => option.name === WorkflowStatus_1.AWAITING_WORKSPACE_STATUS_NAME);
|
|
50
|
+
if (statusField === null || statusOption === undefined) {
|
|
51
|
+
return { ...targetResult, outcome: 'STATUS_OPTION_NOT_FOUND' };
|
|
52
|
+
}
|
|
53
|
+
if (input.dryRun) {
|
|
54
|
+
return { ...targetResult, outcome: 'SKIPPED_DRY_RUN' };
|
|
55
|
+
}
|
|
56
|
+
await this.issueRepository.updateProjectItemSingleSelectValue({
|
|
57
|
+
projectId: target.item.projectId,
|
|
58
|
+
itemId: target.item.itemId,
|
|
59
|
+
fieldId: target.agentField.fieldId,
|
|
60
|
+
optionId: target.agentOption.id,
|
|
61
|
+
});
|
|
62
|
+
await this.issueRepository.updateProjectItemSingleSelectValue({
|
|
63
|
+
projectId: target.item.projectId,
|
|
64
|
+
itemId: target.item.itemId,
|
|
65
|
+
fieldId: statusField.fieldId,
|
|
66
|
+
optionId: statusOption.id,
|
|
67
|
+
});
|
|
68
|
+
const readBackItem = (await this.issueRepository.findIssueProjectItems(input.issue))?.items.find((item) => item.itemId === target.item.itemId) ?? null;
|
|
69
|
+
const readBackAgentName = readBackItem?.agentName ?? null;
|
|
70
|
+
const readBackStatusName = readBackItem?.statusName ?? null;
|
|
71
|
+
return {
|
|
72
|
+
...targetResult,
|
|
73
|
+
readBackAgentName,
|
|
74
|
+
readBackStatusName,
|
|
75
|
+
outcome: readBackAgentName === input.specificationAgentName &&
|
|
76
|
+
readBackStatusName === WorkflowStatus_1.AWAITING_WORKSPACE_STATUS_NAME
|
|
77
|
+
? 'STARTED'
|
|
78
|
+
: 'READ_BACK_MISMATCH',
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.SpecificationTaskStartUseCase = SpecificationTaskStartUseCase;
|
|
84
|
+
//# sourceMappingURL=SpecificationTaskStartUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpecificationTaskStartUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/storyGate/SpecificationTaskStartUseCase.ts"],"names":[],"mappings":"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"}
|