github-issue-tower-defence-management 1.32.0 → 1.34.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 +20 -0
- package/README.md +92 -6
- package/bin/adapter/entry-points/cli/index.js +422 -5
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +67 -33
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/repositories/FetchWebhookRepository.js +10 -0
- package/bin/adapter/repositories/FetchWebhookRepository.js.map +1 -0
- package/bin/adapter/repositories/GitHubIssueCommentRepository.js +190 -0
- package/bin/adapter/repositories/GitHubIssueCommentRepository.js.map +1 -0
- package/bin/adapter/repositories/OauthAPIClaudeRepository.js +225 -0
- package/bin/adapter/repositories/OauthAPIClaudeRepository.js.map +1 -0
- package/bin/domain/usecases/HandleScheduledEventUseCase.js +17 -1
- package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +73 -17
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/bin/domain/usecases/adapter-interfaces/WebhookRepository.js +3 -0
- package/bin/domain/usecases/adapter-interfaces/WebhookRepository.js.map +1 -0
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +1315 -15
- package/src/adapter/entry-points/cli/index.ts +648 -5
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +14 -0
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +17 -2
- package/src/adapter/repositories/FetchWebhookRepository.ts +7 -0
- package/src/adapter/repositories/GitHubIssueCommentRepository.ts +291 -0
- package/src/adapter/repositories/OauthAPIClaudeRepository.ts +279 -0
- package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +28 -0
- package/src/domain/usecases/HandleScheduledEventUseCase.ts +30 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +722 -16
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +117 -20
- package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +2 -0
- package/src/domain/usecases/adapter-interfaces/WebhookRepository.ts +3 -0
- package/types/adapter/entry-points/cli/index.d.ts +19 -0
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/repositories/FetchWebhookRepository.d.ts +5 -0
- package/types/adapter/repositories/FetchWebhookRepository.d.ts.map +1 -0
- package/types/adapter/repositories/GitHubIssueCommentRepository.d.ts +12 -0
- package/types/adapter/repositories/GitHubIssueCommentRepository.d.ts.map +1 -0
- package/types/adapter/repositories/OauthAPIClaudeRepository.d.ts +13 -0
- package/types/adapter/repositories/OauthAPIClaudeRepository.d.ts.map +1 -0
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +10 -1
- package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +5 -1
- package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +2 -0
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/WebhookRepository.d.ts +4 -0
- package/types/domain/usecases/adapter-interfaces/WebhookRepository.d.ts.map +1 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
2
2
|
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
3
3
|
import { IssueCommentRepository } from './adapter-interfaces/IssueCommentRepository';
|
|
4
|
+
import { WebhookRepository } from './adapter-interfaces/WebhookRepository';
|
|
4
5
|
|
|
5
6
|
export class IssueNotFoundError extends Error {
|
|
6
7
|
constructor(issueUrl: string) {
|
|
@@ -21,24 +22,32 @@ export class IllegalIssueStatusError extends Error {
|
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
type RejectedReasonType =
|
|
24
|
-
| '
|
|
25
|
+
| 'NO_REPORT_FROM_AGENT_BOT'
|
|
25
26
|
| 'PULL_REQUEST_NOT_FOUND'
|
|
26
27
|
| 'MULTIPLE_PULL_REQUESTS_FOUND'
|
|
27
28
|
| 'PULL_REQUEST_CONFLICTED'
|
|
28
|
-
| '
|
|
29
|
+
| 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS'
|
|
30
|
+
| 'REQUIRED_CI_JOB_NEVER_STARTED'
|
|
29
31
|
| 'ANY_REVIEW_COMMENT_NOT_RESOLVED';
|
|
30
32
|
|
|
31
33
|
export class NotifyFinishedIssuePreparationUseCase {
|
|
32
34
|
constructor(
|
|
33
|
-
private readonly projectRepository: Pick<
|
|
35
|
+
private readonly projectRepository: Pick<
|
|
36
|
+
ProjectRepository,
|
|
37
|
+
'getByUrl' | 'prepareStatus'
|
|
38
|
+
>,
|
|
34
39
|
private readonly issueRepository: Pick<
|
|
35
40
|
IssueRepository,
|
|
36
|
-
'get' | 'update' | 'findRelatedOpenPRs'
|
|
41
|
+
'get' | 'update' | 'findRelatedOpenPRs' | 'getStoryObjectMap'
|
|
37
42
|
>,
|
|
38
43
|
private readonly issueCommentRepository: Pick<
|
|
39
44
|
IssueCommentRepository,
|
|
40
45
|
'getCommentsFromIssue' | 'createComment'
|
|
41
46
|
>,
|
|
47
|
+
private readonly webhookRepository: Pick<
|
|
48
|
+
WebhookRepository,
|
|
49
|
+
'sendGetRequest'
|
|
50
|
+
>,
|
|
42
51
|
) {}
|
|
43
52
|
|
|
44
53
|
run = async (params: {
|
|
@@ -48,8 +57,21 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
48
57
|
awaitingWorkspaceStatus: string;
|
|
49
58
|
awaitingQualityCheckStatus: string;
|
|
50
59
|
thresholdForAutoReject: number;
|
|
60
|
+
workflowBlockerResolvedWebhookUrl: string | null;
|
|
51
61
|
}): Promise<void> => {
|
|
52
|
-
|
|
62
|
+
let project = await this.projectRepository.getByUrl(params.projectUrl);
|
|
63
|
+
project = await this.projectRepository.prepareStatus(
|
|
64
|
+
params.preparationStatus,
|
|
65
|
+
project,
|
|
66
|
+
);
|
|
67
|
+
project = await this.projectRepository.prepareStatus(
|
|
68
|
+
params.awaitingWorkspaceStatus,
|
|
69
|
+
project,
|
|
70
|
+
);
|
|
71
|
+
project = await this.projectRepository.prepareStatus(
|
|
72
|
+
params.awaitingQualityCheckStatus,
|
|
73
|
+
project,
|
|
74
|
+
);
|
|
53
75
|
|
|
54
76
|
const issue = await this.issueRepository.get(params.issueUrl, project);
|
|
55
77
|
|
|
@@ -71,7 +93,10 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
71
93
|
if (
|
|
72
94
|
lastTargetComments.filter((comment) =>
|
|
73
95
|
comment.content.startsWith('Auto Status Check: REJECTED'),
|
|
74
|
-
).length >= params.thresholdForAutoReject
|
|
96
|
+
).length >= params.thresholdForAutoReject &&
|
|
97
|
+
!lastTargetComments.some((comment) =>
|
|
98
|
+
comment.content.toLowerCase().startsWith('retry'),
|
|
99
|
+
)
|
|
75
100
|
) {
|
|
76
101
|
issue.status = params.awaitingQualityCheckStatus;
|
|
77
102
|
await this.issueRepository.update(issue, project);
|
|
@@ -79,43 +104,83 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
79
104
|
issue,
|
|
80
105
|
`Failed to pass the check autimatically for ${params.thresholdForAutoReject} times`,
|
|
81
106
|
);
|
|
107
|
+
await this.sendWorkflowBlockerNotification(
|
|
108
|
+
params.issueUrl,
|
|
109
|
+
params.workflowBlockerResolvedWebhookUrl,
|
|
110
|
+
project,
|
|
111
|
+
);
|
|
82
112
|
return;
|
|
83
113
|
}
|
|
84
114
|
|
|
85
|
-
const
|
|
115
|
+
const rejections: { type: RejectedReasonType; detail: string }[] = [];
|
|
86
116
|
const lastComment = comments[comments.length - 1];
|
|
87
|
-
if (!lastComment || lastComment.content.startsWith('
|
|
88
|
-
|
|
117
|
+
if (!lastComment || !lastComment.content.startsWith('From:')) {
|
|
118
|
+
rejections.push({
|
|
119
|
+
type: 'NO_REPORT_FROM_AGENT_BOT',
|
|
120
|
+
detail: 'NO_REPORT_FROM_AGENT_BOT',
|
|
121
|
+
});
|
|
89
122
|
}
|
|
90
123
|
|
|
91
|
-
const
|
|
124
|
+
const categoryLabels = issue.labels.filter((label) =>
|
|
92
125
|
label.startsWith('category:'),
|
|
93
126
|
);
|
|
94
|
-
if (
|
|
127
|
+
if (categoryLabels.length <= 0 || categoryLabels.includes('category:e2e')) {
|
|
95
128
|
const relatedOpenPrs = await this.issueRepository.findRelatedOpenPRs(
|
|
96
129
|
issue.url,
|
|
97
130
|
);
|
|
98
131
|
if (relatedOpenPrs.length <= 0) {
|
|
99
|
-
|
|
132
|
+
rejections.push({
|
|
133
|
+
type: 'PULL_REQUEST_NOT_FOUND',
|
|
134
|
+
detail: 'PULL_REQUEST_NOT_FOUND',
|
|
135
|
+
});
|
|
100
136
|
} else if (relatedOpenPrs.length > 1) {
|
|
101
|
-
|
|
137
|
+
rejections.push({
|
|
138
|
+
type: 'MULTIPLE_PULL_REQUESTS_FOUND',
|
|
139
|
+
detail: `MULTIPLE_PULL_REQUESTS_FOUND: ${relatedOpenPrs.map((pr) => pr.url).join(', ')}`,
|
|
140
|
+
});
|
|
102
141
|
} else {
|
|
103
142
|
const pr = relatedOpenPrs[0];
|
|
104
143
|
if (pr.isConflicted) {
|
|
105
|
-
|
|
144
|
+
rejections.push({
|
|
145
|
+
type: 'PULL_REQUEST_CONFLICTED',
|
|
146
|
+
detail: `PULL_REQUEST_CONFLICTED: ${pr.url}`,
|
|
147
|
+
});
|
|
106
148
|
}
|
|
107
149
|
if (!pr.isPassedAllCiJob) {
|
|
108
|
-
|
|
150
|
+
const missingChecks = pr.missingRequiredCheckNames;
|
|
151
|
+
const missingSuffix =
|
|
152
|
+
missingChecks.length > 0
|
|
153
|
+
? ` (missing: ${missingChecks.join(', ')})`
|
|
154
|
+
: '';
|
|
155
|
+
if (pr.isCiStateSuccess && missingChecks.length > 0) {
|
|
156
|
+
rejections.push({
|
|
157
|
+
type: 'REQUIRED_CI_JOB_NEVER_STARTED',
|
|
158
|
+
detail: `REQUIRED_CI_JOB_NEVER_STARTED: ${pr.url}${missingSuffix}`,
|
|
159
|
+
});
|
|
160
|
+
} else {
|
|
161
|
+
rejections.push({
|
|
162
|
+
type: 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS',
|
|
163
|
+
detail: `ANY_CI_JOB_FAILED_OR_IN_PROGRESS: ${pr.url}${missingSuffix}`,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
109
166
|
}
|
|
110
167
|
if (!pr.isResolvedAllReviewComments) {
|
|
111
|
-
|
|
168
|
+
rejections.push({
|
|
169
|
+
type: 'ANY_REVIEW_COMMENT_NOT_RESOLVED',
|
|
170
|
+
detail: `ANY_REVIEW_COMMENT_NOT_RESOLVED: ${pr.url}`,
|
|
171
|
+
});
|
|
112
172
|
}
|
|
113
173
|
}
|
|
114
174
|
}
|
|
115
175
|
|
|
116
|
-
if (
|
|
176
|
+
if (rejections.length <= 0) {
|
|
117
177
|
issue.status = params.awaitingQualityCheckStatus;
|
|
118
178
|
await this.issueRepository.update(issue, project);
|
|
179
|
+
await this.sendWorkflowBlockerNotification(
|
|
180
|
+
params.issueUrl,
|
|
181
|
+
params.workflowBlockerResolvedWebhookUrl,
|
|
182
|
+
project,
|
|
183
|
+
);
|
|
119
184
|
return;
|
|
120
185
|
}
|
|
121
186
|
|
|
@@ -124,9 +189,41 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
124
189
|
|
|
125
190
|
await this.issueCommentRepository.createComment(
|
|
126
191
|
issue,
|
|
127
|
-
`
|
|
128
|
-
Auto Status Check: REJECTED
|
|
129
|
-
${JSON.stringify(rejectedReasons)}`,
|
|
192
|
+
`Auto Status Check: REJECTED\n${rejections.map((r) => `- ${r.detail}`).join('\n')}`,
|
|
130
193
|
);
|
|
131
194
|
};
|
|
195
|
+
|
|
196
|
+
private sendWorkflowBlockerNotification = async (
|
|
197
|
+
issueUrl: string,
|
|
198
|
+
webhookUrlTemplate: string | null,
|
|
199
|
+
project: Parameters<IssueRepository['getStoryObjectMap']>[0],
|
|
200
|
+
): Promise<void> => {
|
|
201
|
+
if (webhookUrlTemplate === null) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
try {
|
|
206
|
+
const storyObjectMap =
|
|
207
|
+
await this.issueRepository.getStoryObjectMap(project);
|
|
208
|
+
|
|
209
|
+
const isWorkflowBlocker = Array.from(storyObjectMap.entries()).some(
|
|
210
|
+
([storyName, storyObject]) =>
|
|
211
|
+
storyName.toLowerCase().includes('workflow blocker') &&
|
|
212
|
+
storyObject.issues.some((issue) => issue.url === issueUrl),
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
if (!isWorkflowBlocker) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const message = `Workflow blocker resolved: ${issueUrl}`;
|
|
220
|
+
const webhookUrl = webhookUrlTemplate
|
|
221
|
+
.replace('{URL}', encodeURIComponent(issueUrl))
|
|
222
|
+
.replace('{MESSAGE}', encodeURIComponent(message));
|
|
223
|
+
|
|
224
|
+
await this.webhookRepository.sendGetRequest(webhookUrl);
|
|
225
|
+
} catch (error) {
|
|
226
|
+
console.warn('Failed to send workflow blocker notification:', error);
|
|
227
|
+
}
|
|
228
|
+
};
|
|
132
229
|
}
|
|
@@ -7,8 +7,10 @@ export type RelatedPullRequest = {
|
|
|
7
7
|
url: string;
|
|
8
8
|
isConflicted: boolean;
|
|
9
9
|
isPassedAllCiJob: boolean;
|
|
10
|
+
isCiStateSuccess: boolean;
|
|
10
11
|
isResolvedAllReviewComments: boolean;
|
|
11
12
|
isBranchOutOfDate: boolean;
|
|
13
|
+
missingRequiredCheckNames: string[];
|
|
12
14
|
};
|
|
13
15
|
|
|
14
16
|
export interface IssueRepository {
|
|
@@ -1,3 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
type ConfigFile = {
|
|
4
|
+
projectUrl?: string;
|
|
5
|
+
awaitingWorkspaceStatus?: string;
|
|
6
|
+
preparationStatus?: string;
|
|
7
|
+
defaultAgentName?: string;
|
|
8
|
+
logFilePath?: string;
|
|
9
|
+
maximumPreparingIssuesCount?: number;
|
|
10
|
+
allowIssueCacheMinutes?: number;
|
|
11
|
+
awaitingQualityCheckStatus?: string;
|
|
12
|
+
thresholdForAutoReject?: number;
|
|
13
|
+
workflowBlockerResolvedWebhookUrl?: string;
|
|
14
|
+
projectName?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const loadConfigFile: (configFilePath: string) => ConfigFile;
|
|
17
|
+
export declare const parseProjectReadmeConfig: (readme: string) => ConfigFile;
|
|
18
|
+
export declare const mergeConfigs: (configFile: ConfigFile, cliOverrides: ConfigFile, readmeOverrides: ConfigFile) => ConfigFile;
|
|
19
|
+
export declare const fetchProjectReadme: (projectUrl: string, token: string) => Promise<string | null>;
|
|
20
|
+
export declare const program: Command;
|
|
2
21
|
export {};
|
|
3
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,KAAK,UAAU,GAAG;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA2CF,eAAO,MAAM,cAAc,mBAAoB,MAAM,KAAG,UAuCvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAAY,MAAM,KAAG,UA2CzD,CAAC;AAEF,eAAO,MAAM,YAAY,eACX,UAAU,gBACR,UAAU,mBACP,UAAU,KAC1B,UAuCD,CAAC;AAkBH,eAAO,MAAM,kBAAkB,eACjB,MAAM,SACX,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAyDvB,CAAC;AAsBF,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAiBA,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":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAqB3D,qBAAa,kCAAkC;IAC7C,MAAM,mBACY,MAAM,WACb,OAAO,KACf,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,CAkLP;CACH"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { WebhookRepository } from '../../domain/usecases/adapter-interfaces/WebhookRepository';
|
|
2
|
+
export declare class FetchWebhookRepository implements WebhookRepository {
|
|
3
|
+
sendGetRequest(url: string): Promise<void>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=FetchWebhookRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FetchWebhookRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/FetchWebhookRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAE/F,qBAAa,sBAAuB,YAAW,iBAAiB;IACxD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IssueCommentRepository } from '../../domain/usecases/adapter-interfaces/IssueCommentRepository';
|
|
2
|
+
import { Issue } from '../../domain/entities/Issue';
|
|
3
|
+
import { Comment } from '../../domain/entities/Comment';
|
|
4
|
+
export declare class GitHubIssueCommentRepository implements IssueCommentRepository {
|
|
5
|
+
private readonly token;
|
|
6
|
+
constructor(token: string);
|
|
7
|
+
private parseIssueUrl;
|
|
8
|
+
getCommentsFromIssue(issue: Issue): Promise<Comment[]>;
|
|
9
|
+
private getIssueNodeId;
|
|
10
|
+
createComment(issue: Issue, commentContent: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=GitHubIssueCommentRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubIssueCommentRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/GitHubIssueCommentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AA0ExD,qBAAa,4BAA6B,YAAW,sBAAsB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAE1C,OAAO,CAAC,aAAa;IAoBf,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAsF9C,cAAc;IAuDtB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkDzE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
2
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
3
|
+
export declare class OauthAPIClaudeRepository implements ClaudeRepository {
|
|
4
|
+
private readonly credentialsPath;
|
|
5
|
+
private readonly claudeDir;
|
|
6
|
+
constructor();
|
|
7
|
+
private getAccessToken;
|
|
8
|
+
getUsage(): Promise<ClaudeWindowUsage[]>;
|
|
9
|
+
private getUsageWithToken;
|
|
10
|
+
private isUsageUnderThreshold;
|
|
11
|
+
isClaudeAvailable(threshold: number): Promise<boolean>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=OauthAPIClaudeRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OauthAPIClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthAPIClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AA2E5E,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;;IAOnC,OAAO,CAAC,cAAc;IAuBhB,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YA0EhC,iBAAiB;IA8B/B,OAAO,CAAC,qBAAqB;IAuBvB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CA2C7D"}
|
|
@@ -20,6 +20,7 @@ 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';
|
|
23
24
|
export declare class ProjectNotFoundError extends Error {
|
|
24
25
|
constructor(message: string);
|
|
25
26
|
}
|
|
@@ -38,11 +39,12 @@ export declare class HandleScheduledEventUseCase {
|
|
|
38
39
|
readonly assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase;
|
|
39
40
|
readonly updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase;
|
|
40
41
|
readonly startPreparationUseCase: StartPreparationUseCase;
|
|
42
|
+
readonly notifyFinishedIssuePreparationUseCase: NotifyFinishedIssuePreparationUseCase;
|
|
41
43
|
readonly dateRepository: DateRepository;
|
|
42
44
|
readonly spreadsheetRepository: SpreadsheetRepository;
|
|
43
45
|
readonly projectRepository: ProjectRepository;
|
|
44
46
|
readonly issueRepository: IssueRepository;
|
|
45
|
-
constructor(actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase: ClearNextActionHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
|
|
47
|
+
constructor(actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearNextActionHourUseCase: ClearNextActionHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, notifyFinishedIssuePreparationUseCase: NotifyFinishedIssuePreparationUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
|
|
46
48
|
run: (input: {
|
|
47
49
|
projectName: string;
|
|
48
50
|
org: string;
|
|
@@ -65,6 +67,13 @@ export declare class HandleScheduledEventUseCase {
|
|
|
65
67
|
logFilePath?: string;
|
|
66
68
|
maximumPreparingIssuesCount: number | null;
|
|
67
69
|
} | null;
|
|
70
|
+
notifyFinishedPreparation?: {
|
|
71
|
+
preparationStatus: string;
|
|
72
|
+
awaitingWorkspaceStatus: string;
|
|
73
|
+
awaitingQualityCheckStatus: string;
|
|
74
|
+
thresholdForAutoReject: number;
|
|
75
|
+
workflowBlockerResolvedWebhookUrl: string | null;
|
|
76
|
+
} | null;
|
|
68
77
|
}) => Promise<{
|
|
69
78
|
project: Project;
|
|
70
79
|
issues: Issue[];
|
|
@@ -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,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,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;
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
2
2
|
import { ProjectRepository } from './adapter-interfaces/ProjectRepository';
|
|
3
3
|
import { IssueCommentRepository } from './adapter-interfaces/IssueCommentRepository';
|
|
4
|
+
import { WebhookRepository } from './adapter-interfaces/WebhookRepository';
|
|
4
5
|
export declare class IssueNotFoundError extends Error {
|
|
5
6
|
constructor(issueUrl: string);
|
|
6
7
|
}
|
|
@@ -11,7 +12,8 @@ export declare class NotifyFinishedIssuePreparationUseCase {
|
|
|
11
12
|
private readonly projectRepository;
|
|
12
13
|
private readonly issueRepository;
|
|
13
14
|
private readonly issueCommentRepository;
|
|
14
|
-
|
|
15
|
+
private readonly webhookRepository;
|
|
16
|
+
constructor(projectRepository: Pick<ProjectRepository, 'getByUrl' | 'prepareStatus'>, issueRepository: Pick<IssueRepository, 'get' | 'update' | 'findRelatedOpenPRs' | 'getStoryObjectMap'>, issueCommentRepository: Pick<IssueCommentRepository, 'getCommentsFromIssue' | 'createComment'>, webhookRepository: Pick<WebhookRepository, 'sendGetRequest'>);
|
|
15
17
|
run: (params: {
|
|
16
18
|
projectUrl: string;
|
|
17
19
|
issueUrl: string;
|
|
@@ -19,6 +21,8 @@ export declare class NotifyFinishedIssuePreparationUseCase {
|
|
|
19
21
|
awaitingWorkspaceStatus: string;
|
|
20
22
|
awaitingQualityCheckStatus: string;
|
|
21
23
|
thresholdForAutoReject: number;
|
|
24
|
+
workflowBlockerResolvedWebhookUrl: string | null;
|
|
22
25
|
}) => Promise<void>;
|
|
26
|
+
private sendWorkflowBlockerNotification;
|
|
23
27
|
}
|
|
24
28
|
//# sourceMappingURL=NotifyFinishedIssuePreparationUseCase.d.ts.map
|
|
@@ -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;
|
|
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;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,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;AAUD,qBAAa,qCAAqC;IAE9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAZjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,UAAU,GAAG,eAAe,CAC7B,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACf,KAAK,GAAG,QAAQ,GAAG,oBAAoB,GAAG,mBAAmB,CAC9D,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,sBAAsB,GAAG,eAAe,CACzC,EACgB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,gBAAgB,CACjB;IAGH,GAAG,WAAkB;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;QAC/B,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClD,KAAG,OAAO,CAAC,IAAI,CAAC,CAqIf;IAEF,OAAO,CAAC,+BAA+B,CAgCrC;CACH"}
|
|
@@ -6,8 +6,10 @@ export type RelatedPullRequest = {
|
|
|
6
6
|
url: string;
|
|
7
7
|
isConflicted: boolean;
|
|
8
8
|
isPassedAllCiJob: boolean;
|
|
9
|
+
isCiStateSuccess: boolean;
|
|
9
10
|
isResolvedAllReviewComments: boolean;
|
|
10
11
|
isBranchOutOfDate: boolean;
|
|
12
|
+
missingRequiredCheckNames: string[];
|
|
11
13
|
};
|
|
12
14
|
export interface IssueRepository {
|
|
13
15
|
getAllIssues: (projectId: Project['id'], allowCacheMinutes: number) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2BAA2B,EAAE,OAAO,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/WebhookRepository.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C"}
|