github-issue-tower-defence-management 1.64.0 → 1.66.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/CHANGELOG.md +14 -0
- package/README.md +2 -2
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/domain/entities/WorkflowStatus.js +2 -6
- package/bin/domain/entities/WorkflowStatus.js.map +1 -1
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js +14 -1
- package/bin/domain/usecases/SetupTowerDefenceProjectUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +6 -0
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +1 -0
- package/src/domain/entities/WorkflowStatus.ts +2 -5
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.test.ts +432 -36
- package/src/domain/usecases/SetupTowerDefenceProjectUseCase.ts +31 -0
- package/src/domain/usecases/StartPreparationUseCase.test.ts +21 -0
- package/src/domain/usecases/StartPreparationUseCase.ts +9 -0
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/domain/entities/WorkflowStatus.d.ts +1 -1
- package/types/domain/entities/WorkflowStatus.d.ts.map +1 -1
- package/types/domain/usecases/SetupTowerDefenceProjectUseCase.d.ts +3 -1
- package/types/domain/usecases/SetupTowerDefenceProjectUseCase.d.ts.map +1 -1
- package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [1.66.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.65.0...v1.66.0) (2026-05-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **core:** remove Awaiting Task Breakdown status and migrate items to Todo by human ([cc38380](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/cc38380bf5ea322c347ed3c3731d4a91eda1fb69)), closes [#642](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/642)
|
|
7
|
+
|
|
8
|
+
# [1.65.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.64.0...v1.65.0) (2026-05-26)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **core:** log skipped issues when allowedIssueAuthors filter is active ([8ab1a29](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/8ab1a29b88b6d0f37fbac596ce4166c1f8d87b5a)), closes [#620](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/620)
|
|
14
|
+
|
|
1
15
|
# [1.64.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.63.1...v1.64.0) (2026-05-26)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ npx github-issue-tower-defence-management notifyFinishedIssuePreparation --confi
|
|
|
73
73
|
|
|
74
74
|
The `config.yaml` for the `schedule` command must match the input type of `HandleScheduledEventUseCase.run()`. Below is the structure:
|
|
75
75
|
|
|
76
|
-
Workflow status names (`Unread`, `Awaiting
|
|
76
|
+
Workflow status names (`Unread`, `Awaiting Workspace`, `Preparation`, `Failed Preparation`, `Awaiting Quality Check`, `Todo by human`, `In Tmux by human`, `Done`, `Icebox`) are fixed code constants and cannot be overridden from CLI options, config files, or project README. The `schedule` command automatically creates any missing required statuses on the target project on each run via `SetupTowerDefenceProjectUseCase`. Projects with the legacy `Todo` and `In Tmux` status names are automatically migrated to `Todo by human` and `In Tmux by human` respectively by reusing the existing option IDs so that task associations are preserved. The legacy `PC Todo` status is removed from the required list and excluded from the project status list on the next setup run. The legacy `Awaiting Task Breakdown` status is removed from the required list; any project items in that status are automatically moved to `Todo by human` and the status option is removed on the next setup run.
|
|
77
77
|
|
|
78
78
|
```yaml
|
|
79
79
|
disabled: boolean # When true, skip all processing and return null
|
|
@@ -170,7 +170,7 @@ awLogDirectoryPath?: string # Optional: Directory path where aw log files named
|
|
|
170
170
|
awLogStaleThresholdMinutes?: number # Optional: Minutes since last aw log mtime after which a Preparation issue is considered orphaned even when pgrep still returns 0. Requires awLogDirectoryPath
|
|
171
171
|
```
|
|
172
172
|
|
|
173
|
-
Workflow status names (`Unread`, `Awaiting
|
|
173
|
+
Workflow status names (`Unread`, `Awaiting Workspace`, `Preparation`, `Failed Preparation`, `Awaiting Quality Check`, `Todo by human`, `In Tmux by human`, `Done`, `Icebox`) are hardcoded constants and are not accepted via this config, the CLI, or the project README. To ensure they exist on the target project, run the `schedule` command — it invokes `SetupTowerDefenceProjectUseCase` automatically. Projects with the legacy `Todo` and `In Tmux` status names are automatically migrated; `PC Todo` and `Awaiting Task Breakdown` are removed on the next setup run (items in `Awaiting Task Breakdown` are moved to `Todo by human` before the option is deleted).
|
|
174
174
|
|
|
175
175
|
Example:
|
|
176
176
|
|
|
@@ -376,7 +376,7 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
376
376
|
const restIssueRepository = new RestIssueRepository_1.RestIssueRepository(...githubRepositoryParams);
|
|
377
377
|
const graphqlProjectItemRepository = new GraphqlProjectItemRepository_1.GraphqlProjectItemRepository(...githubRepositoryParams);
|
|
378
378
|
const issueRepository = new ApiV3CheerioRestIssueRepository_1.ApiV3CheerioRestIssueRepository(apiV3IssueRepository, restIssueRepository, graphqlProjectItemRepository, localStorageCacheRepository, ...githubRepositoryParams);
|
|
379
|
-
const setupTowerDefenceProjectUseCase = new SetupTowerDefenceProjectUseCase_1.SetupTowerDefenceProjectUseCase(projectRepository);
|
|
379
|
+
const setupTowerDefenceProjectUseCase = new SetupTowerDefenceProjectUseCase_1.SetupTowerDefenceProjectUseCase(projectRepository, issueRepository);
|
|
380
380
|
const actionAnnouncement = new ActionAnnouncementUseCase_1.ActionAnnouncementUseCase(issueRepository);
|
|
381
381
|
const setWorkflowManagementIssueToStoryUseCase = new SetWorkflowManagementIssueToStoryUseCase_1.SetWorkflowManagementIssueToStoryUseCase(issueRepository);
|
|
382
382
|
const clearPastNextActionUseCase = new ClearPastNextActionDateHourUseCase_1.ClearPastNextActionDateHourUseCase(issueRepository);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.REQUIRED_WORKFLOW_STATUSES = exports.LEGACY_IN_TMUX_STATUS_NAME = exports.LEGACY_TODO_STATUS_NAME = exports.ICEBOX_STATUS_NAME = exports.DONE_STATUS_NAME = exports.IN_TMUX_STATUS_NAME = exports.PC_TODO_STATUS_NAME = exports.TODO_STATUS_NAME = exports.AWAITING_QUALITY_CHECK_STATUS_NAME = exports.FAILED_PREPARATION_STATUS_NAME = exports.PREPARATION_STATUS_NAME = exports.AWAITING_WORKSPACE_STATUS_NAME = exports.
|
|
3
|
+
exports.REQUIRED_WORKFLOW_STATUSES = exports.LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME = exports.LEGACY_IN_TMUX_STATUS_NAME = exports.LEGACY_TODO_STATUS_NAME = exports.ICEBOX_STATUS_NAME = exports.DONE_STATUS_NAME = exports.IN_TMUX_STATUS_NAME = exports.PC_TODO_STATUS_NAME = exports.TODO_STATUS_NAME = exports.AWAITING_QUALITY_CHECK_STATUS_NAME = exports.FAILED_PREPARATION_STATUS_NAME = exports.PREPARATION_STATUS_NAME = exports.AWAITING_WORKSPACE_STATUS_NAME = exports.DEFAULT_STATUS_NAME = void 0;
|
|
4
4
|
exports.DEFAULT_STATUS_NAME = 'Unread';
|
|
5
|
-
exports.AWAITING_TASK_BREAKDOWN_STATUS_NAME = 'Awaiting Task Breakdown';
|
|
6
5
|
exports.AWAITING_WORKSPACE_STATUS_NAME = 'Awaiting Workspace';
|
|
7
6
|
exports.PREPARATION_STATUS_NAME = 'Preparation';
|
|
8
7
|
exports.FAILED_PREPARATION_STATUS_NAME = 'Failed Preparation';
|
|
@@ -14,15 +13,12 @@ exports.DONE_STATUS_NAME = 'Done';
|
|
|
14
13
|
exports.ICEBOX_STATUS_NAME = 'Icebox';
|
|
15
14
|
exports.LEGACY_TODO_STATUS_NAME = 'Todo';
|
|
16
15
|
exports.LEGACY_IN_TMUX_STATUS_NAME = 'In Tmux';
|
|
16
|
+
exports.LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME = 'Awaiting Task Breakdown';
|
|
17
17
|
exports.REQUIRED_WORKFLOW_STATUSES = [
|
|
18
18
|
{
|
|
19
19
|
name: exports.DEFAULT_STATUS_NAME,
|
|
20
20
|
color: 'ORANGE',
|
|
21
21
|
},
|
|
22
|
-
{
|
|
23
|
-
name: exports.AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
24
|
-
color: 'ORANGE',
|
|
25
|
-
},
|
|
26
22
|
{
|
|
27
23
|
name: exports.AWAITING_WORKSPACE_STATUS_NAME,
|
|
28
24
|
color: 'BLUE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowStatus.js","sourceRoot":"","sources":["../../../src/domain/entities/WorkflowStatus.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAC/B,QAAA,
|
|
1
|
+
{"version":3,"file":"WorkflowStatus.js","sourceRoot":"","sources":["../../../src/domain/entities/WorkflowStatus.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAC/B,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AACtD,QAAA,uBAAuB,GAAG,aAAa,CAAC;AACxC,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AACtD,QAAA,kCAAkC,GAAG,wBAAwB,CAAC;AAC9D,QAAA,gBAAgB,GAAG,eAAe,CAAC;AACnC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AACzC,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAE9B,QAAA,uBAAuB,GAAG,MAAM,CAAC;AACjC,QAAA,0BAA0B,GAAG,SAAS,CAAC;AACvC,QAAA,0CAA0C,GACrD,yBAAyB,CAAC;AAOf,QAAA,0BAA0B,GAA+B;IACpE;QACE,IAAI,EAAE,2BAAmB;QACzB,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,sCAA8B;QACpC,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,+BAAuB;QAC7B,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,sCAA8B;QACpC,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,0CAAkC;QACxC,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,wBAAgB;QACtB,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,2BAAmB;QACzB,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,wBAAgB;QACtB,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,IAAI,EAAE,0BAAkB;QACxB,KAAK,EAAE,MAAM;KACd;CACF,CAAC"}
|
|
@@ -3,11 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SetupTowerDefenceProjectUseCase = void 0;
|
|
4
4
|
const WorkflowStatus_1 = require("../entities/WorkflowStatus");
|
|
5
5
|
class SetupTowerDefenceProjectUseCase {
|
|
6
|
-
constructor(projectRepository) {
|
|
6
|
+
constructor(projectRepository, issueRepository) {
|
|
7
7
|
this.projectRepository = projectRepository;
|
|
8
|
+
this.issueRepository = issueRepository;
|
|
8
9
|
this.run = async (params) => {
|
|
9
10
|
const project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
10
11
|
const existing = project.status.statuses;
|
|
12
|
+
const awaitingTaskBreakdownStatus = existing.find((s) => s.name === WorkflowStatus_1.LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME);
|
|
13
|
+
if (awaitingTaskBreakdownStatus) {
|
|
14
|
+
const todoStatus = existing.find((s) => s.name === WorkflowStatus_1.TODO_STATUS_NAME);
|
|
15
|
+
if (todoStatus) {
|
|
16
|
+
const { issues } = await this.issueRepository.getAllIssues(project.id, 0);
|
|
17
|
+
const awaitingTaskBreakdownIssues = issues.filter((issue) => issue.status === WorkflowStatus_1.LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME);
|
|
18
|
+
for (const issue of awaitingTaskBreakdownIssues) {
|
|
19
|
+
await this.issueRepository.updateStatus(project, issue, todoStatus.id);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
11
23
|
const hasMigratedFromName = existing.some((s) => SetupTowerDefenceProjectUseCase.MIGRATED_FROM_NAMES.has(s.name));
|
|
12
24
|
if (!hasMigratedFromName &&
|
|
13
25
|
SetupTowerDefenceProjectUseCase.hasRequiredStatusesInCanonicalOrder(existing)) {
|
|
@@ -50,6 +62,7 @@ SetupTowerDefenceProjectUseCase.MIGRATED_FROM_NAMES = new Set([
|
|
|
50
62
|
WorkflowStatus_1.LEGACY_TODO_STATUS_NAME,
|
|
51
63
|
WorkflowStatus_1.LEGACY_IN_TMUX_STATUS_NAME,
|
|
52
64
|
WorkflowStatus_1.PC_TODO_STATUS_NAME,
|
|
65
|
+
WorkflowStatus_1.LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
53
66
|
]);
|
|
54
67
|
SetupTowerDefenceProjectUseCase.hasRequiredStatusesInCanonicalOrder = (existing) => {
|
|
55
68
|
if (existing.length < WorkflowStatus_1.REQUIRED_WORKFLOW_STATUSES.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupTowerDefenceProjectUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetupTowerDefenceProjectUseCase.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SetupTowerDefenceProjectUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetupTowerDefenceProjectUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,6 +197,12 @@ class StartPreparationUseCase {
|
|
|
197
197
|
}
|
|
198
198
|
if (params.allowedIssueAuthors !== null &&
|
|
199
199
|
!params.allowedIssueAuthors.includes(issue.author)) {
|
|
200
|
+
if (issue.author === '') {
|
|
201
|
+
console.warn(`Skipping issue ${issue.url}: author is unknown (empty string); deny-by-default when allowedIssueAuthors is configured.`);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
console.warn(`Skipping issue ${issue.url}: author '${issue.author}' is not in the allowedIssueAuthors list.`);
|
|
205
|
+
}
|
|
200
206
|
continue;
|
|
201
207
|
}
|
|
202
208
|
const agent = issue.labels
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -172,6 +172,7 @@ export class HandleScheduledEventUseCaseHandler {
|
|
|
172
172
|
);
|
|
173
173
|
const setupTowerDefenceProjectUseCase = new SetupTowerDefenceProjectUseCase(
|
|
174
174
|
projectRepository,
|
|
175
|
+
issueRepository,
|
|
175
176
|
);
|
|
176
177
|
const actionAnnouncement = new ActionAnnouncementUseCase(issueRepository);
|
|
177
178
|
const setWorkflowManagementIssueToStoryUseCase =
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FieldOption } from './Project';
|
|
2
2
|
|
|
3
3
|
export const DEFAULT_STATUS_NAME = 'Unread';
|
|
4
|
-
export const AWAITING_TASK_BREAKDOWN_STATUS_NAME = 'Awaiting Task Breakdown';
|
|
5
4
|
export const AWAITING_WORKSPACE_STATUS_NAME = 'Awaiting Workspace';
|
|
6
5
|
export const PREPARATION_STATUS_NAME = 'Preparation';
|
|
7
6
|
export const FAILED_PREPARATION_STATUS_NAME = 'Failed Preparation';
|
|
@@ -14,6 +13,8 @@ export const ICEBOX_STATUS_NAME = 'Icebox';
|
|
|
14
13
|
|
|
15
14
|
export const LEGACY_TODO_STATUS_NAME = 'Todo';
|
|
16
15
|
export const LEGACY_IN_TMUX_STATUS_NAME = 'In Tmux';
|
|
16
|
+
export const LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME =
|
|
17
|
+
'Awaiting Task Breakdown';
|
|
17
18
|
|
|
18
19
|
export type WorkflowStatusDefinition = {
|
|
19
20
|
name: string;
|
|
@@ -25,10 +26,6 @@ export const REQUIRED_WORKFLOW_STATUSES: WorkflowStatusDefinition[] = [
|
|
|
25
26
|
name: DEFAULT_STATUS_NAME,
|
|
26
27
|
color: 'ORANGE',
|
|
27
28
|
},
|
|
28
|
-
{
|
|
29
|
-
name: AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
30
|
-
color: 'ORANGE',
|
|
31
|
-
},
|
|
32
29
|
{
|
|
33
30
|
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
34
31
|
color: 'BLUE',
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { mock } from 'jest-mock-extended';
|
|
2
2
|
import { SetupTowerDefenceProjectUseCase } from './SetupTowerDefenceProjectUseCase';
|
|
3
3
|
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
4
|
+
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
4
5
|
import { FieldOption, Project } from '../entities/Project';
|
|
6
|
+
import { Issue } from '../entities/Issue';
|
|
5
7
|
import {
|
|
6
8
|
AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
7
|
-
AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
8
9
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
9
10
|
DEFAULT_STATUS_NAME,
|
|
10
11
|
DONE_STATUS_NAME,
|
|
11
12
|
FAILED_PREPARATION_STATUS_NAME,
|
|
12
13
|
ICEBOX_STATUS_NAME,
|
|
13
14
|
IN_TMUX_STATUS_NAME,
|
|
15
|
+
LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
14
16
|
LEGACY_IN_TMUX_STATUS_NAME,
|
|
15
17
|
LEGACY_TODO_STATUS_NAME,
|
|
16
18
|
PC_TODO_STATUS_NAME,
|
|
@@ -45,11 +47,37 @@ const buildCanonicalStatuses = (): FieldOption[] =>
|
|
|
45
47
|
description: '',
|
|
46
48
|
}));
|
|
47
49
|
|
|
50
|
+
const buildIssue = (overrides: Partial<Issue>): Issue => ({
|
|
51
|
+
nameWithOwner: 'test-org/test-repo',
|
|
52
|
+
number: 1,
|
|
53
|
+
title: 'Test issue',
|
|
54
|
+
state: 'OPEN',
|
|
55
|
+
status: null,
|
|
56
|
+
story: null,
|
|
57
|
+
nextActionDate: null,
|
|
58
|
+
nextActionHour: null,
|
|
59
|
+
estimationMinutes: null,
|
|
60
|
+
dependedIssueUrls: [],
|
|
61
|
+
completionDate50PercentConfidence: null,
|
|
62
|
+
url: 'https://github.com/test-org/test-repo/issues/1',
|
|
63
|
+
assignees: [],
|
|
64
|
+
labels: [],
|
|
65
|
+
org: 'test-org',
|
|
66
|
+
repo: 'test-repo',
|
|
67
|
+
body: '',
|
|
68
|
+
itemId: 'item-1',
|
|
69
|
+
isPr: false,
|
|
70
|
+
isInProgress: false,
|
|
71
|
+
isClosed: false,
|
|
72
|
+
createdAt: new Date('2024-01-01'),
|
|
73
|
+
author: 'user',
|
|
74
|
+
...overrides,
|
|
75
|
+
});
|
|
76
|
+
|
|
48
77
|
describe('SetupTowerDefenceProjectUseCase', () => {
|
|
49
|
-
it('should define exactly the
|
|
78
|
+
it('should define exactly the 9 required statuses in the documented order with the documented colors and no descriptions', () => {
|
|
50
79
|
expect(REQUIRED_WORKFLOW_STATUSES).toEqual([
|
|
51
80
|
{ name: DEFAULT_STATUS_NAME, color: 'ORANGE' },
|
|
52
|
-
{ name: AWAITING_TASK_BREAKDOWN_STATUS_NAME, color: 'ORANGE' },
|
|
53
81
|
{ name: AWAITING_WORKSPACE_STATUS_NAME, color: 'BLUE' },
|
|
54
82
|
{ name: PREPARATION_STATUS_NAME, color: 'YELLOW' },
|
|
55
83
|
{ name: FAILED_PREPARATION_STATUS_NAME, color: 'RED' },
|
|
@@ -67,10 +95,19 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
67
95
|
it('should skip update when project already has required statuses in canonical order with no descriptions', async () => {
|
|
68
96
|
const mockProjectRepository =
|
|
69
97
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
98
|
+
const mockIssueRepository =
|
|
99
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
70
100
|
const project = buildProject(buildCanonicalStatuses());
|
|
71
101
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
72
|
-
|
|
73
|
-
|
|
102
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
103
|
+
issues: [],
|
|
104
|
+
cacheUsed: false,
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
108
|
+
mockProjectRepository,
|
|
109
|
+
mockIssueRepository,
|
|
110
|
+
);
|
|
74
111
|
await useCase.run({ projectUrl: project.url });
|
|
75
112
|
|
|
76
113
|
expect(mockProjectRepository.updateStatusList).not.toHaveBeenCalled();
|
|
@@ -79,6 +116,8 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
79
116
|
it('should skip update when project already has required statuses plus extras after them', async () => {
|
|
80
117
|
const mockProjectRepository =
|
|
81
118
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
119
|
+
const mockIssueRepository =
|
|
120
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
82
121
|
const statuses = [
|
|
83
122
|
...buildCanonicalStatuses(),
|
|
84
123
|
{
|
|
@@ -90,8 +129,15 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
90
129
|
];
|
|
91
130
|
const project = buildProject(statuses);
|
|
92
131
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
133
|
+
issues: [],
|
|
134
|
+
cacheUsed: false,
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
138
|
+
mockProjectRepository,
|
|
139
|
+
mockIssueRepository,
|
|
140
|
+
);
|
|
95
141
|
await useCase.run({ projectUrl: project.url });
|
|
96
142
|
|
|
97
143
|
expect(mockProjectRepository.updateStatusList).not.toHaveBeenCalled();
|
|
@@ -100,13 +146,22 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
100
146
|
it('should rewrite required statuses with empty descriptions when an existing status carries a description', async () => {
|
|
101
147
|
const mockProjectRepository =
|
|
102
148
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
149
|
+
const mockIssueRepository =
|
|
150
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
103
151
|
const statuses = buildCanonicalStatuses();
|
|
104
152
|
statuses[0] = { ...statuses[0], description: 'stale description' };
|
|
105
153
|
const project = buildProject(statuses);
|
|
106
154
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
107
155
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
108
|
-
|
|
109
|
-
|
|
156
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
157
|
+
issues: [],
|
|
158
|
+
cacheUsed: false,
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
162
|
+
mockProjectRepository,
|
|
163
|
+
mockIssueRepository,
|
|
164
|
+
);
|
|
110
165
|
await useCase.run({ projectUrl: project.url });
|
|
111
166
|
|
|
112
167
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
@@ -121,6 +176,8 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
121
176
|
it('should add missing required statuses while preserving existing custom statuses', async () => {
|
|
122
177
|
const mockProjectRepository =
|
|
123
178
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
179
|
+
const mockIssueRepository =
|
|
180
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
124
181
|
const statuses: FieldOption[] = [
|
|
125
182
|
{
|
|
126
183
|
id: 'unread-id',
|
|
@@ -138,8 +195,15 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
138
195
|
const project = buildProject(statuses);
|
|
139
196
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
140
197
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
141
|
-
|
|
142
|
-
|
|
198
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
199
|
+
issues: [],
|
|
200
|
+
cacheUsed: false,
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
204
|
+
mockProjectRepository,
|
|
205
|
+
mockIssueRepository,
|
|
206
|
+
);
|
|
143
207
|
await useCase.run({ projectUrl: project.url });
|
|
144
208
|
|
|
145
209
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
@@ -152,12 +216,6 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
152
216
|
color: 'ORANGE',
|
|
153
217
|
description: '',
|
|
154
218
|
},
|
|
155
|
-
{
|
|
156
|
-
id: null,
|
|
157
|
-
name: AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
158
|
-
color: 'ORANGE',
|
|
159
|
-
description: '',
|
|
160
|
-
},
|
|
161
219
|
{
|
|
162
220
|
id: null,
|
|
163
221
|
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
@@ -219,6 +277,8 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
219
277
|
it('should reorder existing required statuses into canonical order when out of order', async () => {
|
|
220
278
|
const mockProjectRepository =
|
|
221
279
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
280
|
+
const mockIssueRepository =
|
|
281
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
222
282
|
const reversedStatuses: FieldOption[] = REQUIRED_WORKFLOW_STATUSES.slice()
|
|
223
283
|
.reverse()
|
|
224
284
|
.map((required, index) => ({
|
|
@@ -230,15 +290,21 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
230
290
|
const project = buildProject(reversedStatuses);
|
|
231
291
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
232
292
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
233
|
-
|
|
234
|
-
|
|
293
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
294
|
+
issues: [],
|
|
295
|
+
cacheUsed: false,
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
299
|
+
mockProjectRepository,
|
|
300
|
+
mockIssueRepository,
|
|
301
|
+
);
|
|
235
302
|
await useCase.run({ projectUrl: project.url });
|
|
236
303
|
|
|
237
304
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
238
305
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
239
306
|
expect(payload.map((status) => status.name)).toEqual([
|
|
240
307
|
DEFAULT_STATUS_NAME,
|
|
241
|
-
AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
242
308
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
243
309
|
PREPARATION_STATUS_NAME,
|
|
244
310
|
FAILED_PREPARATION_STATUS_NAME,
|
|
@@ -253,23 +319,34 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
253
319
|
it('should fix color when an existing required status has wrong color', async () => {
|
|
254
320
|
const mockProjectRepository =
|
|
255
321
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
322
|
+
const mockIssueRepository =
|
|
323
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
256
324
|
const statuses = buildCanonicalStatuses();
|
|
257
|
-
statuses[
|
|
325
|
+
statuses[1] = { ...statuses[1], color: 'RED' };
|
|
258
326
|
const project = buildProject(statuses);
|
|
259
327
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
260
328
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
261
|
-
|
|
262
|
-
|
|
329
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
330
|
+
issues: [],
|
|
331
|
+
cacheUsed: false,
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
335
|
+
mockProjectRepository,
|
|
336
|
+
mockIssueRepository,
|
|
337
|
+
);
|
|
263
338
|
await useCase.run({ projectUrl: project.url });
|
|
264
339
|
|
|
265
340
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
266
341
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
267
|
-
expect(payload[
|
|
342
|
+
expect(payload[1].color).toBe(REQUIRED_WORKFLOW_STATUSES[1].color);
|
|
268
343
|
});
|
|
269
344
|
|
|
270
345
|
it('should rename legacy "Todo" to "Todo by human" by reusing the existing option ID', async () => {
|
|
271
346
|
const mockProjectRepository =
|
|
272
347
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
348
|
+
const mockIssueRepository =
|
|
349
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
273
350
|
const statuses: FieldOption[] = REQUIRED_WORKFLOW_STATUSES.map(
|
|
274
351
|
(required, index) => ({
|
|
275
352
|
id: `id-${index}`,
|
|
@@ -284,21 +361,30 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
284
361
|
const project = buildProject(statuses);
|
|
285
362
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
286
363
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
287
|
-
|
|
288
|
-
|
|
364
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
365
|
+
issues: [],
|
|
366
|
+
cacheUsed: false,
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
370
|
+
mockProjectRepository,
|
|
371
|
+
mockIssueRepository,
|
|
372
|
+
);
|
|
289
373
|
await useCase.run({ projectUrl: project.url });
|
|
290
374
|
|
|
291
375
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
292
376
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
293
377
|
const todoEntry = payload.find((s) => s.name === TODO_STATUS_NAME);
|
|
294
378
|
expect(todoEntry).toBeDefined();
|
|
295
|
-
expect(todoEntry?.id).toBe('id-
|
|
379
|
+
expect(todoEntry?.id).toBe('id-5');
|
|
296
380
|
expect(payload.some((s) => s.name === LEGACY_TODO_STATUS_NAME)).toBe(false);
|
|
297
381
|
});
|
|
298
382
|
|
|
299
383
|
it('should rename legacy "In Tmux" to "In Tmux by human" by reusing the existing option ID', async () => {
|
|
300
384
|
const mockProjectRepository =
|
|
301
385
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
386
|
+
const mockIssueRepository =
|
|
387
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
302
388
|
const statuses: FieldOption[] = REQUIRED_WORKFLOW_STATUSES.map(
|
|
303
389
|
(required, index) => ({
|
|
304
390
|
id: `id-${index}`,
|
|
@@ -313,15 +399,22 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
313
399
|
const project = buildProject(statuses);
|
|
314
400
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
315
401
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
316
|
-
|
|
317
|
-
|
|
402
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
403
|
+
issues: [],
|
|
404
|
+
cacheUsed: false,
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
408
|
+
mockProjectRepository,
|
|
409
|
+
mockIssueRepository,
|
|
410
|
+
);
|
|
318
411
|
await useCase.run({ projectUrl: project.url });
|
|
319
412
|
|
|
320
413
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
321
414
|
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
322
415
|
const inTmuxEntry = payload.find((s) => s.name === IN_TMUX_STATUS_NAME);
|
|
323
416
|
expect(inTmuxEntry).toBeDefined();
|
|
324
|
-
expect(inTmuxEntry?.id).toBe('id-
|
|
417
|
+
expect(inTmuxEntry?.id).toBe('id-6');
|
|
325
418
|
expect(payload.some((s) => s.name === LEGACY_IN_TMUX_STATUS_NAME)).toBe(
|
|
326
419
|
false,
|
|
327
420
|
);
|
|
@@ -330,6 +423,8 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
330
423
|
it('should remove "PC Todo" from the status list and not include it in others', async () => {
|
|
331
424
|
const mockProjectRepository =
|
|
332
425
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
426
|
+
const mockIssueRepository =
|
|
427
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
333
428
|
const statuses: FieldOption[] = [
|
|
334
429
|
...buildCanonicalStatuses(),
|
|
335
430
|
{
|
|
@@ -342,8 +437,15 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
342
437
|
const project = buildProject(statuses);
|
|
343
438
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
344
439
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
345
|
-
|
|
346
|
-
|
|
440
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
441
|
+
issues: [],
|
|
442
|
+
cacheUsed: false,
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
446
|
+
mockProjectRepository,
|
|
447
|
+
mockIssueRepository,
|
|
448
|
+
);
|
|
347
449
|
await useCase.run({ projectUrl: project.url });
|
|
348
450
|
|
|
349
451
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
@@ -354,6 +456,8 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
354
456
|
it('should migrate a project with legacy statuses: rename Todo and In Tmux by ID, remove PC Todo', async () => {
|
|
355
457
|
const mockProjectRepository =
|
|
356
458
|
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
459
|
+
const mockIssueRepository =
|
|
460
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
357
461
|
const statuses: FieldOption[] = [
|
|
358
462
|
{
|
|
359
463
|
id: 'id-0',
|
|
@@ -363,7 +467,287 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
363
467
|
},
|
|
364
468
|
{
|
|
365
469
|
id: 'id-1',
|
|
366
|
-
name:
|
|
470
|
+
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
471
|
+
color: 'BLUE',
|
|
472
|
+
description: '',
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
id: 'id-2',
|
|
476
|
+
name: PREPARATION_STATUS_NAME,
|
|
477
|
+
color: 'YELLOW',
|
|
478
|
+
description: '',
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
id: 'id-3',
|
|
482
|
+
name: FAILED_PREPARATION_STATUS_NAME,
|
|
483
|
+
color: 'RED',
|
|
484
|
+
description: '',
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
id: 'id-4',
|
|
488
|
+
name: AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
489
|
+
color: 'GREEN',
|
|
490
|
+
description: '',
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
id: 'id-5',
|
|
494
|
+
name: LEGACY_TODO_STATUS_NAME,
|
|
495
|
+
color: 'PINK',
|
|
496
|
+
description: '',
|
|
497
|
+
},
|
|
498
|
+
{ id: 'id-6', name: PC_TODO_STATUS_NAME, color: 'PINK', description: '' },
|
|
499
|
+
{
|
|
500
|
+
id: 'id-7',
|
|
501
|
+
name: LEGACY_IN_TMUX_STATUS_NAME,
|
|
502
|
+
color: 'RED',
|
|
503
|
+
description: '',
|
|
504
|
+
},
|
|
505
|
+
{ id: 'id-8', name: DONE_STATUS_NAME, color: 'PURPLE', description: '' },
|
|
506
|
+
{ id: 'id-9', name: ICEBOX_STATUS_NAME, color: 'GRAY', description: '' },
|
|
507
|
+
];
|
|
508
|
+
const project = buildProject(statuses);
|
|
509
|
+
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
510
|
+
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
511
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
512
|
+
issues: [],
|
|
513
|
+
cacheUsed: false,
|
|
514
|
+
});
|
|
515
|
+
|
|
516
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
517
|
+
mockProjectRepository,
|
|
518
|
+
mockIssueRepository,
|
|
519
|
+
);
|
|
520
|
+
await useCase.run({ projectUrl: project.url });
|
|
521
|
+
|
|
522
|
+
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
523
|
+
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
524
|
+
|
|
525
|
+
expect(payload.map((s) => s.name)).toEqual([
|
|
526
|
+
DEFAULT_STATUS_NAME,
|
|
527
|
+
AWAITING_WORKSPACE_STATUS_NAME,
|
|
528
|
+
PREPARATION_STATUS_NAME,
|
|
529
|
+
FAILED_PREPARATION_STATUS_NAME,
|
|
530
|
+
AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
531
|
+
TODO_STATUS_NAME,
|
|
532
|
+
IN_TMUX_STATUS_NAME,
|
|
533
|
+
DONE_STATUS_NAME,
|
|
534
|
+
ICEBOX_STATUS_NAME,
|
|
535
|
+
]);
|
|
536
|
+
|
|
537
|
+
expect(payload.find((s) => s.name === TODO_STATUS_NAME)?.id).toBe('id-5');
|
|
538
|
+
expect(payload.find((s) => s.name === IN_TMUX_STATUS_NAME)?.id).toBe(
|
|
539
|
+
'id-7',
|
|
540
|
+
);
|
|
541
|
+
expect(payload.some((s) => s.name === PC_TODO_STATUS_NAME)).toBe(false);
|
|
542
|
+
expect(payload.some((s) => s.name === LEGACY_TODO_STATUS_NAME)).toBe(false);
|
|
543
|
+
expect(payload.some((s) => s.name === LEGACY_IN_TMUX_STATUS_NAME)).toBe(
|
|
544
|
+
false,
|
|
545
|
+
);
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
it('should migrate issues from "Awaiting Task Breakdown" to "Todo by human" when that status exists', async () => {
|
|
549
|
+
const mockProjectRepository =
|
|
550
|
+
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
551
|
+
const mockIssueRepository =
|
|
552
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
553
|
+
const todoStatusId = 'todo-status-id';
|
|
554
|
+
const statuses: FieldOption[] = [
|
|
555
|
+
{
|
|
556
|
+
id: 'id-0',
|
|
557
|
+
name: DEFAULT_STATUS_NAME,
|
|
558
|
+
color: 'ORANGE',
|
|
559
|
+
description: '',
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
id: 'atb-id',
|
|
563
|
+
name: LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
564
|
+
color: 'ORANGE',
|
|
565
|
+
description: '',
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
id: 'id-1',
|
|
569
|
+
name: AWAITING_WORKSPACE_STATUS_NAME,
|
|
570
|
+
color: 'BLUE',
|
|
571
|
+
description: '',
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
id: 'id-2',
|
|
575
|
+
name: PREPARATION_STATUS_NAME,
|
|
576
|
+
color: 'YELLOW',
|
|
577
|
+
description: '',
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
id: 'id-3',
|
|
581
|
+
name: FAILED_PREPARATION_STATUS_NAME,
|
|
582
|
+
color: 'RED',
|
|
583
|
+
description: '',
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
id: 'id-4',
|
|
587
|
+
name: AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
588
|
+
color: 'GREEN',
|
|
589
|
+
description: '',
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
id: todoStatusId,
|
|
593
|
+
name: TODO_STATUS_NAME,
|
|
594
|
+
color: 'PINK',
|
|
595
|
+
description: '',
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
id: 'id-6',
|
|
599
|
+
name: IN_TMUX_STATUS_NAME,
|
|
600
|
+
color: 'RED',
|
|
601
|
+
description: '',
|
|
602
|
+
},
|
|
603
|
+
{ id: 'id-7', name: DONE_STATUS_NAME, color: 'PURPLE', description: '' },
|
|
604
|
+
{ id: 'id-8', name: ICEBOX_STATUS_NAME, color: 'GRAY', description: '' },
|
|
605
|
+
];
|
|
606
|
+
const project = buildProject(statuses);
|
|
607
|
+
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
608
|
+
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
609
|
+
|
|
610
|
+
const atbIssue1 = buildIssue({
|
|
611
|
+
number: 10,
|
|
612
|
+
url: 'https://github.com/test-org/test-repo/issues/10',
|
|
613
|
+
itemId: 'item-10',
|
|
614
|
+
status: LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
615
|
+
});
|
|
616
|
+
const atbIssue2 = buildIssue({
|
|
617
|
+
number: 11,
|
|
618
|
+
url: 'https://github.com/test-org/test-repo/issues/11',
|
|
619
|
+
itemId: 'item-11',
|
|
620
|
+
status: LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
621
|
+
});
|
|
622
|
+
const otherIssue = buildIssue({
|
|
623
|
+
number: 12,
|
|
624
|
+
url: 'https://github.com/test-org/test-repo/issues/12',
|
|
625
|
+
itemId: 'item-12',
|
|
626
|
+
status: AWAITING_WORKSPACE_STATUS_NAME,
|
|
627
|
+
});
|
|
628
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
629
|
+
issues: [atbIssue1, atbIssue2, otherIssue],
|
|
630
|
+
cacheUsed: false,
|
|
631
|
+
});
|
|
632
|
+
mockIssueRepository.updateStatus.mockResolvedValue(undefined);
|
|
633
|
+
|
|
634
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
635
|
+
mockProjectRepository,
|
|
636
|
+
mockIssueRepository,
|
|
637
|
+
);
|
|
638
|
+
await useCase.run({ projectUrl: project.url });
|
|
639
|
+
|
|
640
|
+
expect(mockIssueRepository.getAllIssues).toHaveBeenCalledWith(
|
|
641
|
+
project.id,
|
|
642
|
+
0,
|
|
643
|
+
);
|
|
644
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledTimes(2);
|
|
645
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
|
|
646
|
+
project,
|
|
647
|
+
atbIssue1,
|
|
648
|
+
todoStatusId,
|
|
649
|
+
);
|
|
650
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
|
|
651
|
+
project,
|
|
652
|
+
atbIssue2,
|
|
653
|
+
todoStatusId,
|
|
654
|
+
);
|
|
655
|
+
|
|
656
|
+
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
657
|
+
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
658
|
+
expect(
|
|
659
|
+
payload.some(
|
|
660
|
+
(s) => s.name === LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
661
|
+
),
|
|
662
|
+
).toBe(false);
|
|
663
|
+
expect(payload.map((s) => s.name)).toEqual([
|
|
664
|
+
DEFAULT_STATUS_NAME,
|
|
665
|
+
AWAITING_WORKSPACE_STATUS_NAME,
|
|
666
|
+
PREPARATION_STATUS_NAME,
|
|
667
|
+
FAILED_PREPARATION_STATUS_NAME,
|
|
668
|
+
AWAITING_QUALITY_CHECK_STATUS_NAME,
|
|
669
|
+
TODO_STATUS_NAME,
|
|
670
|
+
IN_TMUX_STATUS_NAME,
|
|
671
|
+
DONE_STATUS_NAME,
|
|
672
|
+
ICEBOX_STATUS_NAME,
|
|
673
|
+
]);
|
|
674
|
+
});
|
|
675
|
+
|
|
676
|
+
it('should skip issue migration when "Awaiting Task Breakdown" status does not exist', async () => {
|
|
677
|
+
const mockProjectRepository =
|
|
678
|
+
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
679
|
+
const mockIssueRepository =
|
|
680
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
681
|
+
const project = buildProject(buildCanonicalStatuses());
|
|
682
|
+
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
683
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
684
|
+
issues: [],
|
|
685
|
+
cacheUsed: false,
|
|
686
|
+
});
|
|
687
|
+
|
|
688
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
689
|
+
mockProjectRepository,
|
|
690
|
+
mockIssueRepository,
|
|
691
|
+
);
|
|
692
|
+
await useCase.run({ projectUrl: project.url });
|
|
693
|
+
|
|
694
|
+
expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
|
|
695
|
+
expect(mockProjectRepository.updateStatusList).not.toHaveBeenCalled();
|
|
696
|
+
});
|
|
697
|
+
|
|
698
|
+
it('should remove "Awaiting Task Breakdown" from the status list after migrating all affected issues', async () => {
|
|
699
|
+
const mockProjectRepository =
|
|
700
|
+
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
701
|
+
const mockIssueRepository =
|
|
702
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
703
|
+
const statuses: FieldOption[] = [
|
|
704
|
+
...buildCanonicalStatuses(),
|
|
705
|
+
{
|
|
706
|
+
id: 'atb-id',
|
|
707
|
+
name: LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
708
|
+
color: 'ORANGE',
|
|
709
|
+
description: '',
|
|
710
|
+
},
|
|
711
|
+
];
|
|
712
|
+
const project = buildProject(statuses);
|
|
713
|
+
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
714
|
+
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
715
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
716
|
+
issues: [],
|
|
717
|
+
cacheUsed: false,
|
|
718
|
+
});
|
|
719
|
+
mockIssueRepository.updateStatus.mockResolvedValue(undefined);
|
|
720
|
+
|
|
721
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
722
|
+
mockProjectRepository,
|
|
723
|
+
mockIssueRepository,
|
|
724
|
+
);
|
|
725
|
+
await useCase.run({ projectUrl: project.url });
|
|
726
|
+
|
|
727
|
+
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
728
|
+
const [, payload] = mockProjectRepository.updateStatusList.mock.calls[0];
|
|
729
|
+
expect(
|
|
730
|
+
payload.some(
|
|
731
|
+
(s) => s.name === LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
732
|
+
),
|
|
733
|
+
).toBe(false);
|
|
734
|
+
});
|
|
735
|
+
|
|
736
|
+
it('should migrate a project with all legacy statuses including Awaiting Task Breakdown', async () => {
|
|
737
|
+
const mockProjectRepository =
|
|
738
|
+
mock<Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>>();
|
|
739
|
+
const mockIssueRepository =
|
|
740
|
+
mock<Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>>();
|
|
741
|
+
const statuses: FieldOption[] = [
|
|
742
|
+
{
|
|
743
|
+
id: 'id-0',
|
|
744
|
+
name: DEFAULT_STATUS_NAME,
|
|
745
|
+
color: 'ORANGE',
|
|
746
|
+
description: '',
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
id: 'id-1',
|
|
750
|
+
name: LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
367
751
|
color: 'ORANGE',
|
|
368
752
|
description: '',
|
|
369
753
|
},
|
|
@@ -410,8 +794,16 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
410
794
|
const project = buildProject(statuses);
|
|
411
795
|
mockProjectRepository.getByUrl.mockResolvedValue(project);
|
|
412
796
|
mockProjectRepository.updateStatusList.mockResolvedValue([]);
|
|
413
|
-
|
|
414
|
-
|
|
797
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
798
|
+
issues: [],
|
|
799
|
+
cacheUsed: false,
|
|
800
|
+
});
|
|
801
|
+
mockIssueRepository.updateStatus.mockResolvedValue(undefined);
|
|
802
|
+
|
|
803
|
+
const useCase = new SetupTowerDefenceProjectUseCase(
|
|
804
|
+
mockProjectRepository,
|
|
805
|
+
mockIssueRepository,
|
|
806
|
+
);
|
|
415
807
|
await useCase.run({ projectUrl: project.url });
|
|
416
808
|
|
|
417
809
|
expect(mockProjectRepository.updateStatusList).toHaveBeenCalledTimes(1);
|
|
@@ -419,7 +811,6 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
419
811
|
|
|
420
812
|
expect(payload.map((s) => s.name)).toEqual([
|
|
421
813
|
DEFAULT_STATUS_NAME,
|
|
422
|
-
AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
423
814
|
AWAITING_WORKSPACE_STATUS_NAME,
|
|
424
815
|
PREPARATION_STATUS_NAME,
|
|
425
816
|
FAILED_PREPARATION_STATUS_NAME,
|
|
@@ -439,5 +830,10 @@ describe('SetupTowerDefenceProjectUseCase', () => {
|
|
|
439
830
|
expect(payload.some((s) => s.name === LEGACY_IN_TMUX_STATUS_NAME)).toBe(
|
|
440
831
|
false,
|
|
441
832
|
);
|
|
833
|
+
expect(
|
|
834
|
+
payload.some(
|
|
835
|
+
(s) => s.name === LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
836
|
+
),
|
|
837
|
+
).toBe(false);
|
|
442
838
|
});
|
|
443
839
|
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { FieldOption } from '../entities/Project';
|
|
2
2
|
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
3
|
+
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
3
4
|
import {
|
|
4
5
|
IN_TMUX_STATUS_NAME,
|
|
6
|
+
LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
5
7
|
LEGACY_IN_TMUX_STATUS_NAME,
|
|
6
8
|
LEGACY_TODO_STATUS_NAME,
|
|
7
9
|
PC_TODO_STATUS_NAME,
|
|
@@ -16,6 +18,10 @@ export class SetupTowerDefenceProjectUseCase {
|
|
|
16
18
|
ProjectRepository,
|
|
17
19
|
'getByUrl' | 'updateStatusList'
|
|
18
20
|
>,
|
|
21
|
+
private readonly issueRepository: Pick<
|
|
22
|
+
IssueRepository,
|
|
23
|
+
'getAllIssues' | 'updateStatus'
|
|
24
|
+
>,
|
|
19
25
|
) {}
|
|
20
26
|
|
|
21
27
|
private static readonly LEGACY_STATUS_NAMES: Readonly<
|
|
@@ -29,12 +35,37 @@ export class SetupTowerDefenceProjectUseCase {
|
|
|
29
35
|
LEGACY_TODO_STATUS_NAME,
|
|
30
36
|
LEGACY_IN_TMUX_STATUS_NAME,
|
|
31
37
|
PC_TODO_STATUS_NAME,
|
|
38
|
+
LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
32
39
|
]);
|
|
33
40
|
|
|
34
41
|
run = async (params: { projectUrl: string }): Promise<void> => {
|
|
35
42
|
const project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
36
43
|
const existing = project.status.statuses;
|
|
37
44
|
|
|
45
|
+
const awaitingTaskBreakdownStatus = existing.find(
|
|
46
|
+
(s) => s.name === LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
47
|
+
);
|
|
48
|
+
if (awaitingTaskBreakdownStatus) {
|
|
49
|
+
const todoStatus = existing.find((s) => s.name === TODO_STATUS_NAME);
|
|
50
|
+
if (todoStatus) {
|
|
51
|
+
const { issues } = await this.issueRepository.getAllIssues(
|
|
52
|
+
project.id,
|
|
53
|
+
0,
|
|
54
|
+
);
|
|
55
|
+
const awaitingTaskBreakdownIssues = issues.filter(
|
|
56
|
+
(issue) =>
|
|
57
|
+
issue.status === LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME,
|
|
58
|
+
);
|
|
59
|
+
for (const issue of awaitingTaskBreakdownIssues) {
|
|
60
|
+
await this.issueRepository.updateStatus(
|
|
61
|
+
project,
|
|
62
|
+
issue,
|
|
63
|
+
todoStatus.id,
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
38
69
|
const hasMigratedFromName = existing.some((s) =>
|
|
39
70
|
SetupTowerDefenceProjectUseCase.MIGRATED_FROM_NAMES.has(s.name),
|
|
40
71
|
);
|
|
@@ -1712,6 +1712,9 @@ describe('StartPreparationUseCase', () => {
|
|
|
1712
1712
|
stderr: '',
|
|
1713
1713
|
exitCode: 0,
|
|
1714
1714
|
});
|
|
1715
|
+
const consoleWarnSpy = jest
|
|
1716
|
+
.spyOn(console, 'warn')
|
|
1717
|
+
.mockImplementation(() => {});
|
|
1715
1718
|
|
|
1716
1719
|
await useCase.run({
|
|
1717
1720
|
projectUrl: 'https://github.com/user/repo',
|
|
@@ -1732,6 +1735,10 @@ describe('StartPreparationUseCase', () => {
|
|
|
1732
1735
|
status: 'Preparation',
|
|
1733
1736
|
});
|
|
1734
1737
|
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
1738
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith(
|
|
1739
|
+
`Skipping issue https://github.com/user/repo/issues/2: author 'user3' is not in the allowedIssueAuthors list.`,
|
|
1740
|
+
);
|
|
1741
|
+
consoleWarnSpy.mockRestore();
|
|
1735
1742
|
});
|
|
1736
1743
|
|
|
1737
1744
|
it('should process all issues when allowedIssueAuthors is null', async () => {
|
|
@@ -1804,6 +1811,9 @@ describe('StartPreparationUseCase', () => {
|
|
|
1804
1811
|
stderr: '',
|
|
1805
1812
|
exitCode: 0,
|
|
1806
1813
|
});
|
|
1814
|
+
const consoleWarnSpy = jest
|
|
1815
|
+
.spyOn(console, 'warn')
|
|
1816
|
+
.mockImplementation(() => {});
|
|
1807
1817
|
|
|
1808
1818
|
await useCase.run({
|
|
1809
1819
|
projectUrl: 'https://github.com/user/repo',
|
|
@@ -1823,6 +1833,10 @@ describe('StartPreparationUseCase', () => {
|
|
|
1823
1833
|
url: 'https://github.com/user/repo/issues/2',
|
|
1824
1834
|
});
|
|
1825
1835
|
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
1836
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith(
|
|
1837
|
+
'Skipping issue https://github.com/user/repo/issues/1: author is unknown (empty string); deny-by-default when allowedIssueAuthors is configured.',
|
|
1838
|
+
);
|
|
1839
|
+
consoleWarnSpy.mockRestore();
|
|
1826
1840
|
});
|
|
1827
1841
|
|
|
1828
1842
|
it('should skip issue with empty author when allowedIssueAuthors is set', async () => {
|
|
@@ -1843,6 +1857,9 @@ describe('StartPreparationUseCase', () => {
|
|
|
1843
1857
|
stderr: '',
|
|
1844
1858
|
exitCode: 0,
|
|
1845
1859
|
});
|
|
1860
|
+
const consoleWarnSpy = jest
|
|
1861
|
+
.spyOn(console, 'warn')
|
|
1862
|
+
.mockImplementation(() => {});
|
|
1846
1863
|
|
|
1847
1864
|
await useCase.run({
|
|
1848
1865
|
projectUrl: 'https://github.com/user/repo',
|
|
@@ -1859,6 +1876,10 @@ describe('StartPreparationUseCase', () => {
|
|
|
1859
1876
|
|
|
1860
1877
|
expect(mockIssueRepository.updateStatus.mock.calls).toHaveLength(0);
|
|
1861
1878
|
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(0);
|
|
1879
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith(
|
|
1880
|
+
'Skipping issue https://github.com/user/repo/issues/1: author is unknown (empty string); deny-by-default when allowedIssueAuthors is configured.',
|
|
1881
|
+
);
|
|
1882
|
+
consoleWarnSpy.mockRestore();
|
|
1862
1883
|
});
|
|
1863
1884
|
|
|
1864
1885
|
it('should not pass --codexHome when codexHomeCandidates is null', async () => {
|
|
@@ -348,6 +348,15 @@ export class StartPreparationUseCase {
|
|
|
348
348
|
params.allowedIssueAuthors !== null &&
|
|
349
349
|
!params.allowedIssueAuthors.includes(issue.author)
|
|
350
350
|
) {
|
|
351
|
+
if (issue.author === '') {
|
|
352
|
+
console.warn(
|
|
353
|
+
`Skipping issue ${issue.url}: author is unknown (empty string); deny-by-default when allowedIssueAuthors is configured.`,
|
|
354
|
+
);
|
|
355
|
+
} else {
|
|
356
|
+
console.warn(
|
|
357
|
+
`Skipping issue ${issue.url}: author '${issue.author}' is not in the allowedIssueAuthors list.`,
|
|
358
|
+
);
|
|
359
|
+
}
|
|
351
360
|
continue;
|
|
352
361
|
}
|
|
353
362
|
const agent =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA2B3D,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,
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA2B3D,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,CAmPP;CACH"}
|
|
@@ -1,6 +1,5 @@
|
|
|
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";
|
|
4
3
|
export declare const AWAITING_WORKSPACE_STATUS_NAME = "Awaiting Workspace";
|
|
5
4
|
export declare const PREPARATION_STATUS_NAME = "Preparation";
|
|
6
5
|
export declare const FAILED_PREPARATION_STATUS_NAME = "Failed Preparation";
|
|
@@ -12,6 +11,7 @@ export declare const DONE_STATUS_NAME = "Done";
|
|
|
12
11
|
export declare const ICEBOX_STATUS_NAME = "Icebox";
|
|
13
12
|
export declare const LEGACY_TODO_STATUS_NAME = "Todo";
|
|
14
13
|
export declare const LEGACY_IN_TMUX_STATUS_NAME = "In Tmux";
|
|
14
|
+
export declare const LEGACY_AWAITING_TASK_BREAKDOWN_STATUS_NAME = "Awaiting Task Breakdown";
|
|
15
15
|
export type WorkflowStatusDefinition = {
|
|
16
16
|
name: string;
|
|
17
17
|
color: FieldOption['color'];
|
|
@@ -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,
|
|
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,8BAA8B,uBAAuB,CAAC;AACnE,eAAO,MAAM,kCAAkC,2BAA2B,CAAC;AAC3E,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,eAAO,MAAM,0CAA0C,4BAC5B,CAAC;AAE5B,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,EAqChE,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
2
|
+
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
2
3
|
export declare class SetupTowerDefenceProjectUseCase {
|
|
3
4
|
private readonly projectRepository;
|
|
4
|
-
|
|
5
|
+
private readonly issueRepository;
|
|
6
|
+
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl' | 'updateStatusList'>, issueRepository: Pick<IssueRepository, 'getAllIssues' | 'updateStatus'>);
|
|
5
7
|
private static readonly LEGACY_STATUS_NAMES;
|
|
6
8
|
private static readonly MIGRATED_FROM_NAMES;
|
|
7
9
|
run: (params: {
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"SetupTowerDefenceProjectUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetupTowerDefenceProjectUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAYvE,qBAAa,+BAA+B;IAExC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAJf,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,kBAAkB,CAChC,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,cAAc,GAAG,cAAc,CAChC;IAGH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAKzC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAKxC;IAEH,GAAG,GAAU,QAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CA4EzD;IAEF,OAAO,CAAC,MAAM,CAAC,mCAAmC,CAgBhD;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAiBhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAUhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAZ1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,mBAAmB,GACnB,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,yBAAyB,GACzB,oBAAoB,CACvB,EACgB,kBAAkB,EAAE,kBAAkB,EACtC,0BAA0B,EAAE,0BAA0B;IAGzE,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAG/C;IAEF,OAAO,CAAC,uBAAuB,CAK7B;IAEF,OAAO,CAAC,uBAAuB,CAoB7B;IAEF,OAAO,CAAC,mBAAmB,CAyBzB;IAEF,OAAO,CAAC,oCAAoC,CAqB1C;IAEF,OAAO,CAAC,oBAAoB,CA6B1B;IAEF,OAAO,CAAC,wBAAwB,CAe9B;IAEF,OAAO,CAAC,kCAAkC,CAWxC;IAEF,kBAAkB,GAChB,aAAa,gBAAgB,EAAE,EAC/B,gCAAgC,MAAM,EACtC,WAAW,MAAM,GAAG,IAAI,KACvB,kBAAkB,EAAE,CAyCrB;IAEF,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,8BAA8B,EAAE,MAAM,CAAC;QACvC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,sBAAsB,EAAE,MAAM,CAAC;KAChC,KAAG,OAAO,CAAC;QAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAiBhE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAUhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAZ1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,mBAAmB,GACnB,cAAc,GACd,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,yBAAyB,GACzB,oBAAoB,CACvB,EACgB,kBAAkB,EAAE,kBAAkB,EACtC,0BAA0B,EAAE,0BAA0B;IAGzE,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAG/C;IAEF,OAAO,CAAC,uBAAuB,CAK7B;IAEF,OAAO,CAAC,uBAAuB,CAoB7B;IAEF,OAAO,CAAC,mBAAmB,CAyBzB;IAEF,OAAO,CAAC,oCAAoC,CAqB1C;IAEF,OAAO,CAAC,oBAAoB,CA6B1B;IAEF,OAAO,CAAC,wBAAwB,CAe9B;IAEF,OAAO,CAAC,kCAAkC,CAWxC;IAEF,kBAAkB,GAChB,aAAa,gBAAgB,EAAE,EAC/B,gCAAgC,MAAM,EACtC,WAAW,MAAM,GAAG,IAAI,KACvB,kBAAkB,EAAE,CAyCrB;IAEF,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3C,8BAA8B,EAAE,MAAM,CAAC;QACvC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,sBAAsB,EAAE,MAAM,CAAC;KAChC,KAAG,OAAO,CAAC;QAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CA8PzD;CACH"}
|