npm-cli-gh-issue-preparator 1.12.0 → 1.14.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/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +2 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/StartPreparationUseCase.js +7 -0
- package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +82 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +4 -1
- package/src/domain/usecases/StartPreparationUseCase.test.ts +147 -0
- package/src/domain/usecases/StartPreparationUseCase.ts +8 -0
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.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.14.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.13.0...v1.14.0) (2026-02-23)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **core:** skip aw command for issues with dependency or future nextActionHour ([7d3adfb](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/7d3adfbfec6695aa01e572652ad15eda361a6f70)), closes [#59](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/issues/59)
|
|
7
|
+
|
|
8
|
+
# [1.13.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.12.0...v1.13.0) (2026-02-18)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **core:** add retry comment to skip auto-escalation ([38c3302](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/38c330264356833a28b8364db937140b152eea62))
|
|
14
|
+
|
|
1
15
|
# [1.12.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.11.0...v1.12.0) (2026-02-17)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -31,7 +31,8 @@ class NotifyFinishedIssuePreparationUseCase {
|
|
|
31
31
|
}
|
|
32
32
|
const comments = await this.issueCommentRepository.getCommentsFromIssue(issue);
|
|
33
33
|
const lastTargetComments = comments.slice(-params.thresholdForAutoReject * 2);
|
|
34
|
-
if (lastTargetComments.filter((comment) => comment.content.startsWith('Auto Status Check: REJECTED')).length >= params.thresholdForAutoReject
|
|
34
|
+
if (lastTargetComments.filter((comment) => comment.content.startsWith('Auto Status Check: REJECTED')).length >= params.thresholdForAutoReject &&
|
|
35
|
+
!lastTargetComments.some((comment) => comment.content.toLowerCase().startsWith('retry'))) {
|
|
35
36
|
issue.status = params.awaitingQualityCheckStatus;
|
|
36
37
|
await this.issueRepository.update(issue, project);
|
|
37
38
|
await this.issueCommentRepository.createComment(issue, `Failed to pass the check autimatically for ${params.thresholdForAutoReject} times`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,QAAgB;QAC1B,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AACD,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YACE,QAAgB,EAChB,aAA4B,EAC5B,cAA6B;QAE7B,KAAK,CACH,4BAA4B,QAAQ,cAAc,cAAc,aAAa,aAAa,EAAE,CAC7F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAXD,0DAWC;AASD,MAAa,qCAAqC;IAChD,YACmB,iBAAsD,EACtD,eAGhB,EACgB,sBAGhB;QARgB,sBAAiB,GAAjB,iBAAiB,CAAqC;QACtD,oBAAe,GAAf,eAAe,CAG/B;QACgB,2BAAsB,GAAtB,sBAAsB,CAGtC;QAGH,QAAG,GAAG,KAAK,EAAE,MAOZ,EAAiB,EAAE;YAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEvE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACrD,MAAM,IAAI,uBAAuB,CAC/B,MAAM,CAAC,QAAQ,EACf,KAAK,CAAC,MAAM,EACZ,MAAM,CAAC,iBAAiB,CACzB,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAEhE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CACvC,CAAC,MAAM,CAAC,sBAAsB,GAAG,CAAC,CACnC,CAAC;YACF,IACE,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACpC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAC1D,CAAC,MAAM,IAAI,MAAM,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ class StartPreparationUseCase {
|
|
|
29
29
|
.filter((issue) => issue.status === params.awaitingWorkspaceStatus);
|
|
30
30
|
const currentPreparationIssueCount = allIssues.filter((issue) => issue.status === params.preparationStatus).length;
|
|
31
31
|
let updatedCurrentPreparationIssueCount = currentPreparationIssueCount;
|
|
32
|
+
const currentHour = new Date().getHours();
|
|
32
33
|
for (let i = 0; i < awaitingWorkspaceIssues.length &&
|
|
33
34
|
updatedCurrentPreparationIssueCount < maximumPreparingIssuesCount; i++) {
|
|
34
35
|
const issue = awaitingWorkspaceIssues[i];
|
|
@@ -37,6 +38,12 @@ class StartPreparationUseCase {
|
|
|
37
38
|
!blockerIssueUrls.includes(issue.url)) {
|
|
38
39
|
continue;
|
|
39
40
|
}
|
|
41
|
+
if (issue.dependedIssueUrls.length > 0) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (issue.nextActionHour !== null && currentHour < issue.nextActionHour) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
40
47
|
const agent = issue.labels
|
|
41
48
|
.find((label) => label.startsWith('category:'))
|
|
42
49
|
?.replace('category:', '')
|
|
@@ -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
|
@@ -383,6 +383,88 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
383
383
|
);
|
|
384
384
|
});
|
|
385
385
|
|
|
386
|
+
it('should not auto-escalate when retry comment exists even if threshold met', async () => {
|
|
387
|
+
const issue = createMockIssue({
|
|
388
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
389
|
+
status: 'Preparation',
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
393
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
394
|
+
mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
|
|
395
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - first' }),
|
|
396
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - second' }),
|
|
397
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - third' }),
|
|
398
|
+
createMockComment({ content: 'retry' }),
|
|
399
|
+
]);
|
|
400
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
|
|
401
|
+
{
|
|
402
|
+
url: 'https://github.com/user/repo/pull/1',
|
|
403
|
+
isConflicted: false,
|
|
404
|
+
isPassedAllCiJob: true,
|
|
405
|
+
isResolvedAllReviewComments: true,
|
|
406
|
+
isBranchOutOfDate: false,
|
|
407
|
+
},
|
|
408
|
+
]);
|
|
409
|
+
|
|
410
|
+
await useCase.run({
|
|
411
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
412
|
+
issueUrl: 'https://github.com/user/repo/issues/1',
|
|
413
|
+
preparationStatus: 'Preparation',
|
|
414
|
+
awaitingWorkspaceStatus: 'Awaiting Workspace',
|
|
415
|
+
awaitingQualityCheckStatus: 'Awaiting Quality Check',
|
|
416
|
+
thresholdForAutoReject: 3,
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
expect(mockIssueRepository.update).not.toHaveBeenCalledWith(
|
|
420
|
+
expect.objectContaining({
|
|
421
|
+
status: 'Awaiting Quality Check',
|
|
422
|
+
}),
|
|
423
|
+
mockProject,
|
|
424
|
+
);
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
it('should handle case-insensitive retry comment', async () => {
|
|
428
|
+
const issue = createMockIssue({
|
|
429
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
430
|
+
status: 'Preparation',
|
|
431
|
+
});
|
|
432
|
+
|
|
433
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
434
|
+
mockIssueRepository.get.mockResolvedValue(issue);
|
|
435
|
+
mockIssueCommentRepository.getCommentsFromIssue.mockResolvedValue([
|
|
436
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - first' }),
|
|
437
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - second' }),
|
|
438
|
+
createMockComment({ content: 'Auto Status Check: REJECTED - third' }),
|
|
439
|
+
createMockComment({ content: 'Retry please' }),
|
|
440
|
+
]);
|
|
441
|
+
mockIssueRepository.findRelatedOpenPRs.mockResolvedValue([
|
|
442
|
+
{
|
|
443
|
+
url: 'https://github.com/user/repo/pull/1',
|
|
444
|
+
isConflicted: false,
|
|
445
|
+
isPassedAllCiJob: true,
|
|
446
|
+
isResolvedAllReviewComments: true,
|
|
447
|
+
isBranchOutOfDate: false,
|
|
448
|
+
},
|
|
449
|
+
]);
|
|
450
|
+
|
|
451
|
+
await useCase.run({
|
|
452
|
+
projectUrl: 'https://github.com/users/user/projects/1',
|
|
453
|
+
issueUrl: 'https://github.com/user/repo/issues/1',
|
|
454
|
+
preparationStatus: 'Preparation',
|
|
455
|
+
awaitingWorkspaceStatus: 'Awaiting Workspace',
|
|
456
|
+
awaitingQualityCheckStatus: 'Awaiting Quality Check',
|
|
457
|
+
thresholdForAutoReject: 3,
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
expect(mockIssueRepository.update).not.toHaveBeenCalledWith(
|
|
461
|
+
expect.objectContaining({
|
|
462
|
+
status: 'Awaiting Quality Check',
|
|
463
|
+
}),
|
|
464
|
+
mockProject,
|
|
465
|
+
);
|
|
466
|
+
});
|
|
467
|
+
|
|
386
468
|
it('should reject when PR is not found', async () => {
|
|
387
469
|
const issue = createMockIssue({
|
|
388
470
|
url: 'https://github.com/user/repo/issues/1',
|
|
@@ -71,7 +71,10 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
71
71
|
if (
|
|
72
72
|
lastTargetComments.filter((comment) =>
|
|
73
73
|
comment.content.startsWith('Auto Status Check: REJECTED'),
|
|
74
|
-
).length >= params.thresholdForAutoReject
|
|
74
|
+
).length >= params.thresholdForAutoReject &&
|
|
75
|
+
!lastTargetComments.some((comment) =>
|
|
76
|
+
comment.content.toLowerCase().startsWith('retry'),
|
|
77
|
+
)
|
|
75
78
|
) {
|
|
76
79
|
issue.status = params.awaitingQualityCheckStatus;
|
|
77
80
|
await this.issueRepository.update(issue, project);
|
|
@@ -695,4 +695,151 @@ describe('StartPreparationUseCase', () => {
|
|
|
695
695
|
expect(mockIssueRepository.update.mock.calls).toHaveLength(1);
|
|
696
696
|
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
697
697
|
});
|
|
698
|
+
|
|
699
|
+
it('should skip issues that have dependedIssueUrls', async () => {
|
|
700
|
+
const issueWithDependency = createMockIssue({
|
|
701
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
702
|
+
title: 'Issue with dependency',
|
|
703
|
+
labels: [],
|
|
704
|
+
status: 'Awaiting Workspace',
|
|
705
|
+
dependedIssueUrls: ['https://github.com/user/repo/issues/2'],
|
|
706
|
+
});
|
|
707
|
+
const issueWithoutDependency = createMockIssue({
|
|
708
|
+
url: 'https://github.com/user/repo/issues/3',
|
|
709
|
+
title: 'Issue without dependency',
|
|
710
|
+
labels: [],
|
|
711
|
+
status: 'Awaiting Workspace',
|
|
712
|
+
dependedIssueUrls: [],
|
|
713
|
+
});
|
|
714
|
+
|
|
715
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
716
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
717
|
+
createMockStoryObjectMap([issueWithDependency, issueWithoutDependency]),
|
|
718
|
+
);
|
|
719
|
+
mockIssueRepository.getAllOpened.mockResolvedValueOnce([
|
|
720
|
+
issueWithDependency,
|
|
721
|
+
issueWithoutDependency,
|
|
722
|
+
]);
|
|
723
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
724
|
+
stdout: '',
|
|
725
|
+
stderr: '',
|
|
726
|
+
exitCode: 0,
|
|
727
|
+
});
|
|
728
|
+
|
|
729
|
+
await useCase.run({
|
|
730
|
+
projectUrl: 'https://github.com/user/repo',
|
|
731
|
+
awaitingWorkspaceStatus: 'Awaiting Workspace',
|
|
732
|
+
preparationStatus: 'Preparation',
|
|
733
|
+
defaultAgentName: 'agent1',
|
|
734
|
+
maximumPreparingIssuesCount: null,
|
|
735
|
+
});
|
|
736
|
+
|
|
737
|
+
expect(mockIssueRepository.update.mock.calls).toHaveLength(1);
|
|
738
|
+
expect(mockIssueRepository.update.mock.calls[0][0]).toMatchObject({
|
|
739
|
+
url: 'https://github.com/user/repo/issues/3',
|
|
740
|
+
status: 'Preparation',
|
|
741
|
+
});
|
|
742
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
it('should skip issues where nextActionHour is in the future', async () => {
|
|
746
|
+
jest.useFakeTimers();
|
|
747
|
+
try {
|
|
748
|
+
jest.setSystemTime(new Date('2024-01-01T10:00:00'));
|
|
749
|
+
|
|
750
|
+
const issueWithFutureNextActionHour = createMockIssue({
|
|
751
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
752
|
+
title: 'Issue with future next action hour',
|
|
753
|
+
labels: [],
|
|
754
|
+
status: 'Awaiting Workspace',
|
|
755
|
+
nextActionHour: 15,
|
|
756
|
+
});
|
|
757
|
+
const issueWithoutNextActionHour = createMockIssue({
|
|
758
|
+
url: 'https://github.com/user/repo/issues/2',
|
|
759
|
+
title: 'Issue without next action hour',
|
|
760
|
+
labels: [],
|
|
761
|
+
status: 'Awaiting Workspace',
|
|
762
|
+
nextActionHour: null,
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
766
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
767
|
+
createMockStoryObjectMap([
|
|
768
|
+
issueWithFutureNextActionHour,
|
|
769
|
+
issueWithoutNextActionHour,
|
|
770
|
+
]),
|
|
771
|
+
);
|
|
772
|
+
mockIssueRepository.getAllOpened.mockResolvedValueOnce([
|
|
773
|
+
issueWithFutureNextActionHour,
|
|
774
|
+
issueWithoutNextActionHour,
|
|
775
|
+
]);
|
|
776
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
777
|
+
stdout: '',
|
|
778
|
+
stderr: '',
|
|
779
|
+
exitCode: 0,
|
|
780
|
+
});
|
|
781
|
+
|
|
782
|
+
await useCase.run({
|
|
783
|
+
projectUrl: 'https://github.com/user/repo',
|
|
784
|
+
awaitingWorkspaceStatus: 'Awaiting Workspace',
|
|
785
|
+
preparationStatus: 'Preparation',
|
|
786
|
+
defaultAgentName: 'agent1',
|
|
787
|
+
maximumPreparingIssuesCount: null,
|
|
788
|
+
});
|
|
789
|
+
|
|
790
|
+
expect(mockIssueRepository.update.mock.calls).toHaveLength(1);
|
|
791
|
+
expect(mockIssueRepository.update.mock.calls[0][0]).toMatchObject({
|
|
792
|
+
url: 'https://github.com/user/repo/issues/2',
|
|
793
|
+
status: 'Preparation',
|
|
794
|
+
});
|
|
795
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
796
|
+
} finally {
|
|
797
|
+
jest.useRealTimers();
|
|
798
|
+
}
|
|
799
|
+
});
|
|
800
|
+
|
|
801
|
+
it('should not skip issues where nextActionHour is in the past or current hour', async () => {
|
|
802
|
+
jest.useFakeTimers();
|
|
803
|
+
try {
|
|
804
|
+
jest.setSystemTime(new Date('2024-01-01T15:00:00'));
|
|
805
|
+
|
|
806
|
+
const issueWithPastNextActionHour = createMockIssue({
|
|
807
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
808
|
+
title: 'Issue with past next action hour',
|
|
809
|
+
labels: [],
|
|
810
|
+
status: 'Awaiting Workspace',
|
|
811
|
+
nextActionHour: 10,
|
|
812
|
+
});
|
|
813
|
+
|
|
814
|
+
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
815
|
+
mockIssueRepository.getStoryObjectMap.mockResolvedValue(
|
|
816
|
+
createMockStoryObjectMap([issueWithPastNextActionHour]),
|
|
817
|
+
);
|
|
818
|
+
mockIssueRepository.getAllOpened.mockResolvedValueOnce([
|
|
819
|
+
issueWithPastNextActionHour,
|
|
820
|
+
]);
|
|
821
|
+
mockLocalCommandRunner.runCommand.mockResolvedValue({
|
|
822
|
+
stdout: '',
|
|
823
|
+
stderr: '',
|
|
824
|
+
exitCode: 0,
|
|
825
|
+
});
|
|
826
|
+
|
|
827
|
+
await useCase.run({
|
|
828
|
+
projectUrl: 'https://github.com/user/repo',
|
|
829
|
+
awaitingWorkspaceStatus: 'Awaiting Workspace',
|
|
830
|
+
preparationStatus: 'Preparation',
|
|
831
|
+
defaultAgentName: 'agent1',
|
|
832
|
+
maximumPreparingIssuesCount: null,
|
|
833
|
+
});
|
|
834
|
+
|
|
835
|
+
expect(mockIssueRepository.update.mock.calls).toHaveLength(1);
|
|
836
|
+
expect(mockIssueRepository.update.mock.calls[0][0]).toMatchObject({
|
|
837
|
+
url: 'https://github.com/user/repo/issues/1',
|
|
838
|
+
status: 'Preparation',
|
|
839
|
+
});
|
|
840
|
+
expect(mockLocalCommandRunner.runCommand.mock.calls).toHaveLength(1);
|
|
841
|
+
} finally {
|
|
842
|
+
jest.useRealTimers();
|
|
843
|
+
}
|
|
844
|
+
});
|
|
698
845
|
});
|
|
@@ -54,6 +54,8 @@ export class StartPreparationUseCase {
|
|
|
54
54
|
).length;
|
|
55
55
|
let updatedCurrentPreparationIssueCount = currentPreparationIssueCount;
|
|
56
56
|
|
|
57
|
+
const currentHour = new Date().getHours();
|
|
58
|
+
|
|
57
59
|
for (
|
|
58
60
|
let i = 0;
|
|
59
61
|
i < awaitingWorkspaceIssues.length &&
|
|
@@ -71,6 +73,12 @@ export class StartPreparationUseCase {
|
|
|
71
73
|
) {
|
|
72
74
|
continue;
|
|
73
75
|
}
|
|
76
|
+
if (issue.dependedIssueUrls.length > 0) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (issue.nextActionHour !== null && currentHour < issue.nextActionHour) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
74
82
|
const agent =
|
|
75
83
|
issue.labels
|
|
76
84
|
.find((label) => label.startsWith('category:'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AASD,qBAAa,qCAAqC;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBALtB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,KAAK,GAAG,QAAQ,GAAG,oBAAoB,CACxC,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC;QAChC,0BAA0B,EAAE,MAAM,CAAC;QACnC,sBAAsB,EAAE,MAAM,CAAC;KAChC,KAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,QAAQ,EAAE,MAAM;CAI7B;AACD,qBAAa,uBAAwB,SAAQ,KAAK;gBAE9C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,cAAc,EAAE,MAAM,GAAG,IAAI;CAOhC;AASD,qBAAa,qCAAqC;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;gBALtB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,KAAK,GAAG,QAAQ,GAAG,oBAAoB,CACxC,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,uBAAuB,EAAE,MAAM,CAAC;QAChC,0BAA0B,EAAE,MAAM,CAAC;QACnC,sBAAsB,EAAE,MAAM,CAAC;KAChC,KAAG,OAAO,CAAC,IAAI,CAAC,CAiFf;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;AAE7E,OAAO,EAAe,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBANlB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,cAAc,GAAG,mBAAmB,GAAG,QAAQ,CAChD,EACgB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACpD,kBAAkB,EAAE,kBAAkB;IAGzD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,KAAG,OAAO,CAAC,IAAI,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;AAE7E,OAAO,EAAe,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBANlB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACtD,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,cAAc,GAAG,mBAAmB,GAAG,QAAQ,CAChD,EACgB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACpD,kBAAkB,EAAE,kBAAkB;IAGzD,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,KAAG,OAAO,CAAC,IAAI,CAAC,CAwEf;IACF,yBAAyB,GACvB,gBAAgB,cAAc,KAC7B;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,EAAE,CAyBD;CACH"}
|