github-issue-tower-defence-management 1.48.0 → 1.49.1
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/CHANGELOG.md +14 -0
- package/README.md +4 -8
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +36 -61
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/domain/entities/WorkflowStatus.js +32 -12
- package/bin/domain/entities/WorkflowStatus.js.map +1 -1
- package/bin/domain/usecases/AnalyzeStoriesUseCase.js +1 -1
- package/bin/domain/usecases/AnalyzeStoriesUseCase.js.map +1 -1
- package/bin/domain/usecases/ChangeStatusByStoryColorUseCase.js +4 -4
- package/bin/domain/usecases/ChangeStatusByStoryColorUseCase.js.map +1 -1
- package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js +1 -1
- package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js.map +1 -1
- package/bin/domain/usecases/CreateEstimationIssueUseCase.js +1 -1
- package/bin/domain/usecases/CreateEstimationIssueUseCase.js.map +1 -1
- package/bin/domain/usecases/HandleScheduledEventUseCase.js +2 -15
- package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js +2 -1
- package/bin/domain/usecases/RevertOrphanedPreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js +4 -2
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +1 -16
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +1 -24
- package/src/domain/entities/WorkflowStatus.ts +31 -12
- package/src/domain/usecases/AnalyzeStoriesUseCase.ts +2 -2
- package/src/domain/usecases/ChangeStatusByStoryColorUseCase.test.ts +5 -5
- package/src/domain/usecases/ChangeStatusByStoryColorUseCase.ts +5 -5
- package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.test.ts +2 -2
- package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.ts +2 -2
- package/src/domain/usecases/CreateEstimationIssueUseCase.ts +2 -2
- package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +37 -4
- package/src/domain/usecases/HandleScheduledEventUseCase.ts +3 -23
- package/src/domain/usecases/RevertOrphanedPreparationUseCase.ts +4 -1
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.test.ts +100 -21
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.ts +6 -2
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/domain/entities/WorkflowStatus.d.ts +6 -2
- package/types/domain/entities/WorkflowStatus.d.ts.map +1 -1
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +2 -7
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
- package/types/domain/usecases/RevertOrphanedPreparationUseCase.d.ts +1 -0
- package/types/domain/usecases/RevertOrphanedPreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/SetupTowerDefenceProjectUseCase.d.ts.map +1 -1
|
@@ -38,6 +38,7 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
38
38
|
preparationProcessCheckCommand: string;
|
|
39
39
|
awLogDirectoryPath?: string;
|
|
40
40
|
awLogStaleThresholdMinutes?: number;
|
|
41
|
+
awaitingQualityCheckStatus?: string | null;
|
|
41
42
|
}): Promise<void> => {
|
|
42
43
|
const projectId = await this.projectRepository.findProjectIdByUrl(
|
|
43
44
|
params.projectUrl,
|
|
@@ -67,8 +68,10 @@ export class RevertOrphanedPreparationUseCase {
|
|
|
67
68
|
return;
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
const resolvedQualityCheckStatusName =
|
|
72
|
+
params.awaitingQualityCheckStatus ?? AWAITING_QUALITY_CHECK_STATUS_NAME;
|
|
70
73
|
const awaitingQualityCheckStatusOption = project.status.statuses.find(
|
|
71
|
-
(s) => s.name ===
|
|
74
|
+
(s) => s.name === resolvedQualityCheckStatusName,
|
|
72
75
|
);
|
|
73
76
|
|
|
74
77
|
for (const issue of preparationIssues) {
|
|
@@ -4,11 +4,16 @@ import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
|
4
4
|
import { FieldOption, Project } from '../entities/Project';
|
|
5
5
|
import {
|
|
6
6
|
AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
7
|
+
AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
7
8
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
8
9
|
DEFAULT_STATUS_NAME,
|
|
9
|
-
|
|
10
|
+
DONE_STATUS_NAME,
|
|
11
|
+
ICEBOX_STATUS_NAME,
|
|
12
|
+
IN_TMUX_STATUS_NAME,
|
|
13
|
+
PC_TODO_STATUS_NAME,
|
|
10
14
|
PREPARATION_STATUS_NAME,
|
|
11
15
|
REQUIRED_WORKFLOW_STATUSES,
|
|
16
|
+
TODO_STATUS_NAME,
|
|
12
17
|
} from '../entities/WorkflowStatus';
|
|
13
18
|
|
|
14
19
|
const buildProject = (statuses: FieldOption[]): Project => ({
|
|
@@ -34,11 +39,29 @@ const buildCanonicalStatuses = (): FieldOption[] =>
|
|
|
34
39
|
id: `id-${index}`,
|
|
35
40
|
name: required.name,
|
|
36
41
|
color: required.color,
|
|
37
|
-
description:
|
|
42
|
+
description: '',
|
|
38
43
|
}));
|
|
39
44
|
|
|
40
45
|
describe('SetupTowerDefenceProjectUseCase', () => {
|
|
41
|
-
it('should
|
|
46
|
+
it('should define exactly the 10 required statuses in the documented order with the documented colors and no descriptions', () => {
|
|
47
|
+
expect(REQUIRED_WORKFLOW_STATUSES).toEqual([
|
|
48
|
+
{ name: DEFAULT_STATUS_NAME, color: 'ORANGE' },
|
|
49
|
+
{ name: AWAITING_TASK_BREAKDOWN_STATUS_NAME, color: 'ORANGE' },
|
|
50
|
+
{ name: AWAITING_WORKSPACE_STATUS_NAME, color: 'BLUE' },
|
|
51
|
+
{ name: PREPARATION_STATUS_NAME, color: 'YELLOW' },
|
|
52
|
+
{ name: AWAITING_QUALITY_CHECK_STATUS_NAME, color: 'GREEN' },
|
|
53
|
+
{ name: TODO_STATUS_NAME, color: 'PINK' },
|
|
54
|
+
{ name: PC_TODO_STATUS_NAME, color: 'PINK' },
|
|
55
|
+
{ name: IN_TMUX_STATUS_NAME, color: 'RED' },
|
|
56
|
+
{ name: DONE_STATUS_NAME, color: 'PURPLE' },
|
|
57
|
+
{ name: ICEBOX_STATUS_NAME, color: 'GRAY' },
|
|
58
|
+
]);
|
|
59
|
+
for (const required of REQUIRED_WORKFLOW_STATUSES) {
|
|
60
|
+
expect(required).not.toHaveProperty('description');
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should skip update when project already has required statuses in canonical order with no descriptions', async () => {
|
|
42
65
|
const mockProjectRepository =
|
|
43
66
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
44
67
|
const project = buildProject(buildCanonicalStatuses());
|
|
@@ -57,7 +80,7 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
57
80
|
...buildCanonicalStatuses(),
|
|
58
81
|
{
|
|
59
82
|
id: 'extra-1',
|
|
60
|
-
name: '
|
|
83
|
+
name: 'Custom Extra Status',
|
|
61
84
|
color: 'GREEN' as const,
|
|
62
85
|
description: '',
|
|
63
86
|
},
|
|
@@ -71,6 +94,27 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
71
94
|
expect(mockProjectRepository.updateStatusList).not.toHaveBeenCalled();
|
|
72
95
|
});
|
|
73
96
|
|
|
97
|
+
it('should rewrite required statuses with empty descriptions when an existing status carries a description', async () => {
|
|
98
|
+
const mockProjectRepository =
|
|
99
|
+
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
100
|
+
const statuses = buildCanonicalStatuses();
|
|
101
|
+
statuses[0] = { ...statuses[0], description: 'stale description' };
|
|
102
|
+
const project = buildProject(statuses);
|
|
103
|
+
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
104
|
+
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
105
|
+
|
|
106
|
+
const useCase = new SetupTowerDefenceProjectUseCase(mockProjectRepository);
|
|
107
|
+
await useCase.run({ projectUrl: project.url });
|
|
108
|
+
|
|
109
|
+
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
110
|
+
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
111
|
+
expect(
|
|
112
|
+
payload
|
|
113
|
+
.slice(0, REQUIRED_WORKFLOW_STATUSES.length)
|
|
114
|
+
.every((status) => status.description === ''),
|
|
115
|
+
).toBe(true);
|
|
116
|
+
});
|
|
117
|
+
|
|
74
118
|
it('should add missing required statuses while preserving existing custom statuses', async () => {
|
|
75
119
|
const mockProjectRepository =
|
|
76
120
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
@@ -78,12 +122,12 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
78
122
|
{
|
|
79
123
|
id: 'unread-id',
|
|
80
124
|
name: DEFAULT_STATUS_NAME,
|
|
81
|
-
color: '
|
|
82
|
-
description: '
|
|
125
|
+
color: 'ORANGE',
|
|
126
|
+
description: '',
|
|
83
127
|
},
|
|
84
128
|
{
|
|
85
129
|
id: 'extra-1',
|
|
86
|
-
name: '
|
|
130
|
+
name: 'Custom Extra Status',
|
|
87
131
|
color: 'GREEN',
|
|
88
132
|
description: '',
|
|
89
133
|
},
|
|
@@ -102,36 +146,66 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
102
146
|
{
|
|
103
147
|
id: 'unread-id',
|
|
104
148
|
name: DEFAULT_STATUS_NAME,
|
|
105
|
-
color: '
|
|
106
|
-
description: '
|
|
149
|
+
color: 'ORANGE',
|
|
150
|
+
description: '',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: null,
|
|
154
|
+
name: AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
155
|
+
color: 'ORANGE',
|
|
156
|
+
description: '',
|
|
107
157
|
},
|
|
108
158
|
{
|
|
109
159
|
id: null,
|
|
110
160
|
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
111
|
-
color: '
|
|
112
|
-
description: '
|
|
161
|
+
color: 'BLUE',
|
|
162
|
+
description: '',
|
|
113
163
|
},
|
|
114
164
|
{
|
|
115
165
|
id: null,
|
|
116
166
|
name: PREPARATION_STATUS_NAME,
|
|
117
|
-
color: '
|
|
118
|
-
description: '
|
|
167
|
+
color: 'YELLOW',
|
|
168
|
+
description: '',
|
|
119
169
|
},
|
|
120
170
|
{
|
|
121
171
|
id: null,
|
|
122
172
|
name: AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
123
|
-
color: '
|
|
124
|
-
description: '
|
|
173
|
+
color: 'GREEN',
|
|
174
|
+
description: '',
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
id: null,
|
|
178
|
+
name: TODO_STATUS_NAME,
|
|
179
|
+
color: 'PINK',
|
|
180
|
+
description: '',
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
id: null,
|
|
184
|
+
name: PC_TODO_STATUS_NAME,
|
|
185
|
+
color: 'PINK',
|
|
186
|
+
description: '',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: null,
|
|
190
|
+
name: IN_TMUX_STATUS_NAME,
|
|
191
|
+
color: 'RED',
|
|
192
|
+
description: '',
|
|
125
193
|
},
|
|
126
194
|
{
|
|
127
195
|
id: null,
|
|
128
|
-
name:
|
|
196
|
+
name: DONE_STATUS_NAME,
|
|
197
|
+
color: 'PURPLE',
|
|
198
|
+
description: '',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: null,
|
|
202
|
+
name: ICEBOX_STATUS_NAME,
|
|
129
203
|
color: 'GRAY',
|
|
130
|
-
description: '
|
|
204
|
+
description: '',
|
|
131
205
|
},
|
|
132
206
|
{
|
|
133
207
|
id: 'extra-1',
|
|
134
|
-
name: '
|
|
208
|
+
name: 'Custom Extra Status',
|
|
135
209
|
color: 'GREEN',
|
|
136
210
|
description: '',
|
|
137
211
|
},
|
|
@@ -148,7 +222,7 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
148
222
|
id: `reversed-id-${index}`,
|
|
149
223
|
name: required.name,
|
|
150
224
|
color: required.color,
|
|
151
|
-
description:
|
|
225
|
+
description: '',
|
|
152
226
|
}));
|
|
153
227
|
const project = buildProject(reversedStatuses);
|
|
154
228
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
@@ -161,10 +235,15 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
161
235
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
162
236
|
expect(payload.map((status) => status.name)).toEqual([
|
|
163
237
|
DEFAULT_STATUS_NAME,
|
|
238
|
+
AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
164
239
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
165
240
|
PREPARATION_STATUS_NAME,
|
|
166
241
|
AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
167
|
-
|
|
242
|
+
TODO_STATUS_NAME,
|
|
243
|
+
PC_TODO_STATUS_NAME,
|
|
244
|
+
IN_TMUX_STATUS_NAME,
|
|
245
|
+
DONE_STATUS_NAME,
|
|
246
|
+
ICEBOX_STATUS_NAME,
|
|
168
247
|
]);
|
|
169
248
|
});
|
|
170
249
|
|
|
@@ -182,6 +261,6 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
182
261
|
|
|
183
262
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
184
263
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
185
|
-
expect(payload[2].color).toBe(
|
|
264
|
+
expect(payload[2].color).toBe(REQUIRED_WORKFLOW_STATUSES[2].color);
|
|
186
265
|
});
|
|
187
266
|
});
|
|
@@ -39,7 +39,7 @@ export class SetupTowerDefenceProjectUseCase {
|
|
|
39
39
|
id: found ? found.id : null,
|
|
40
40
|
name: required.name,
|
|
41
41
|
color: required.color,
|
|
42
|
-
description:
|
|
42
|
+
description: '',
|
|
43
43
|
};
|
|
44
44
|
}),
|
|
45
45
|
...others.map((other) => ({
|
|
@@ -62,7 +62,11 @@ export class SetupTowerDefenceProjectUseCase {
|
|
|
62
62
|
return REQUIRED_WORKFLOW_STATUSES.every(
|
|
63
63
|
(required: WorkflowStatusDefinition, index: number) => {
|
|
64
64
|
const actual = existing[index];
|
|
65
|
-
return
|
|
65
|
+
return (
|
|
66
|
+
actual.name === required.name &&
|
|
67
|
+
actual.color === required.color &&
|
|
68
|
+
actual.description === ''
|
|
69
|
+
);
|
|
66
70
|
},
|
|
67
71
|
);
|
|
68
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAuB3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,KAChB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CAoOP;CACH"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { FieldOption } from './Project';
|
|
2
2
|
export declare const DEFAULT_STATUS_NAME = "Unread";
|
|
3
|
+
export declare const AWAITING_TASK_BREAKDOWN_STATUS_NAME = "Awaiting Task Breakdown";
|
|
3
4
|
export declare const AWAITING_WORKSPACE_STATUS_NAME = "Awaiting Workspace";
|
|
4
5
|
export declare const PREPARATION_STATUS_NAME = "Preparation";
|
|
5
6
|
export declare const AWAITING_QUALITY_CHECK_STATUS_NAME = "Awaiting Quality Check";
|
|
6
|
-
export declare const
|
|
7
|
+
export declare const TODO_STATUS_NAME = "Todo";
|
|
8
|
+
export declare const PC_TODO_STATUS_NAME = "PC Todo";
|
|
9
|
+
export declare const IN_TMUX_STATUS_NAME = "In Tmux";
|
|
10
|
+
export declare const DONE_STATUS_NAME = "Done";
|
|
11
|
+
export declare const ICEBOX_STATUS_NAME = "Icebox";
|
|
7
12
|
export type WorkflowStatusDefinition = {
|
|
8
13
|
name: string;
|
|
9
14
|
color: FieldOption['color'];
|
|
10
|
-
description: string;
|
|
11
15
|
};
|
|
12
16
|
export declare const REQUIRED_WORKFLOW_STATUSES: WorkflowStatusDefinition[];
|
|
13
17
|
//# sourceMappingURL=WorkflowStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowStatus.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/WorkflowStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,kCAAkC,2BAA2B,CAAC;AAC3E,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkflowStatus.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/WorkflowStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,mCAAmC,4BAA4B,CAAC;AAC7E,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,kCAAkC,2BAA2B,CAAC;AAC3E,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,wBAAwB,EAyChE,CAAC"}
|
|
@@ -20,7 +20,6 @@ import { CreateNewStoryByLabelUseCase } from './CreateNewStoryByLabelUseCase';
|
|
|
20
20
|
import { AssignNoAssigneeIssueToManagerUseCase } from './AssignNoAssigneeIssueToManagerUseCase';
|
|
21
21
|
import { UpdateIssueStatusByLabelUseCase } from './UpdateIssueStatusByLabelUseCase';
|
|
22
22
|
import { StartPreparationUseCase } from './StartPreparationUseCase';
|
|
23
|
-
import { NotifyFinishedIssuePreparationUseCase } from './NotifyFinishedIssuePreparationUseCase';
|
|
24
23
|
import { RevertOrphanedPreparationUseCase } from './RevertOrphanedPreparationUseCase';
|
|
25
24
|
import { SetupTowerDefenceProjectUseCase } from './SetupTowerDefenceProjectUseCase';
|
|
26
25
|
export declare class ProjectNotFoundError extends Error {
|
|
@@ -42,13 +41,12 @@ export declare class HandleScheduledEventUseCase {
|
|
|
42
41
|
readonly assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase;
|
|
43
42
|
readonly updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase;
|
|
44
43
|
readonly startPreparationUseCase: StartPreparationUseCase;
|
|
45
|
-
readonly notifyFinishedIssuePreparationUseCase: NotifyFinishedIssuePreparationUseCase;
|
|
46
44
|
readonly revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase;
|
|
47
45
|
readonly dateRepository: DateRepository;
|
|
48
46
|
readonly spreadsheetRepository: SpreadsheetRepository;
|
|
49
47
|
readonly projectRepository: ProjectRepository;
|
|
50
48
|
readonly issueRepository: IssueRepository;
|
|
51
|
-
constructor(setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase,
|
|
49
|
+
constructor(setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
|
|
52
50
|
run: (input: {
|
|
53
51
|
projectName: string;
|
|
54
52
|
org: string;
|
|
@@ -74,10 +72,7 @@ export declare class HandleScheduledEventUseCase {
|
|
|
74
72
|
codexHomeCandidates?: string[] | null;
|
|
75
73
|
awLogDirectoryPath?: string;
|
|
76
74
|
awLogStaleThresholdMinutes?: number;
|
|
77
|
-
|
|
78
|
-
notifyFinishedPreparation?: {
|
|
79
|
-
thresholdForAutoReject: number;
|
|
80
|
-
workflowBlockerResolvedWebhookUrl: string | null;
|
|
75
|
+
awaitingQualityCheckStatus?: string | null;
|
|
81
76
|
} | null;
|
|
82
77
|
}) => Promise<{
|
|
83
78
|
project: Project;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wCAAwC,EAAE,MAAM,4CAA4C,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yCAAyC,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare class RevertOrphanedPreparationUseCase {
|
|
|
14
14
|
preparationProcessCheckCommand: string;
|
|
15
15
|
awLogDirectoryPath?: string;
|
|
16
16
|
awLogStaleThresholdMinutes?: number;
|
|
17
|
+
awaitingQualityCheckStatus?: string | null;
|
|
17
18
|
}) => Promise<void>;
|
|
18
19
|
private evaluateHasRejections;
|
|
19
20
|
private resolveOpenPrsForPrItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAQ7E,qBAAa,gCAAgC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC;IACD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB;IACD,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,CACvB;IACD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;gBAftC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB,EACQ,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,CACvB,EACQ,kBAAkB,EAAE,kBAAkB;IAGjD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,8BAA8B,EAAE,MAAM,CAAC;QACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RevertOrphanedPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertOrphanedPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAQ7E,qBAAa,gCAAgC;IAEzC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC;IACD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB;IACD,QAAQ,CAAC,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,CACvB;IACD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;gBAftC,iBAAiB,EAAE,IAAI,CAC9B,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,oBAAoB,CACvB,EACQ,sBAAsB,EAAE,IAAI,CACnC,sBAAsB,EACtB,sBAAsB,CACvB,EACQ,kBAAkB,EAAE,kBAAkB;IAGjD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,8BAA8B,EAAE,MAAM,CAAC;QACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,KAAG,OAAO,CAAC,IAAI,CAAC,CAsDf;IAEF,OAAO,CAAC,qBAAqB,CAuC3B;IAEF,OAAO,CAAC,uBAAuB,CAQ7B;IAEF,OAAO,CAAC,qBAAqB,CAuB3B;IAEF,OAAO,CAAC,eAAe,CA6BrB;IAEF,OAAO,CAAC,YAAY,CA+BlB;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupTowerDefenceProjectUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetupTowerDefenceProjectUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,+BAA+B;IAExC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,kBAAkB,CAChC;IAGH,GAAG,GAAU,QAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAsCzD;IAEF,OAAO,CAAC,MAAM,CAAC,mCAAmC,
|
|
1
|
+
{"version":3,"file":"SetupTowerDefenceProjectUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetupTowerDefenceProjectUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,+BAA+B;IAExC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,kBAAkB,CAChC;IAGH,GAAG,GAAU,QAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAsCzD;IAEF,OAAO,CAAC,MAAM,CAAC,mCAAmC,CAgBhD;CACH"}
|