github-issue-tower-defence-management 1.153.4 → 1.153.6
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/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js +161 -0
- package/bin/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.js.map +1 -1
- package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js +3 -2
- package/bin/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.js.map +1 -1
- package/bin/domain/usecases/IssueRejectionEvaluator.js +28 -11
- package/bin/domain/usecases/IssueRejectionEvaluator.js.map +1 -1
- package/bin/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.js +15 -3
- package/bin/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +11 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +194 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts +252 -0
- package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.test.ts +55 -0
- package/src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.ts +5 -4
- package/src/domain/usecases/IssueRejectionEvaluator.ts +49 -15
- package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.test.ts +154 -0
- package/src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts +33 -5
- package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +3 -0
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts +3 -0
- package/types/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.d.ts.map +1 -1
- package/types/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.d.ts.map +1 -1
- package/types/domain/usecases/IssueRejectionEvaluator.d.ts +6 -1
- package/types/domain/usecases/IssueRejectionEvaluator.d.ts.map +1 -1
- package/types/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.d.ts +1 -1
- package/types/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +1 -0
- package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
|
@@ -1478,6 +1478,61 @@ ${otherStoryViewLink}`);
|
|
|
1478
1478
|
expect(mockIssueRepository.updateIssue).not.toHaveBeenCalled();
|
|
1479
1479
|
});
|
|
1480
1480
|
});
|
|
1481
|
+
|
|
1482
|
+
describe('story issue refetch', () => {
|
|
1483
|
+
const storyViewLink = 'https://example.com?sliceBy%5Bvalue%5D=Story%201';
|
|
1484
|
+
const storyIssueWithLinkOnFirstLine: Issue = {
|
|
1485
|
+
...basicStoryIssue1,
|
|
1486
|
+
body: `${storyViewLink}
|
|
1487
|
+
|
|
1488
|
+
- [ ] Task 1`,
|
|
1489
|
+
};
|
|
1490
|
+
|
|
1491
|
+
const runWithBoardIssue = async (
|
|
1492
|
+
boardIssue: Issue,
|
|
1493
|
+
createTaskFromStoryBodyCheckboxEnabled: boolean,
|
|
1494
|
+
): Promise<void> => {
|
|
1495
|
+
jest.clearAllMocks();
|
|
1496
|
+
mockIssueRepository.getIssueByUrl.mockResolvedValue(
|
|
1497
|
+
storyIssueWithLinkOnFirstLine,
|
|
1498
|
+
);
|
|
1499
|
+
const useCase = new ConvertCheckboxToIssueInStoryIssueUseCase(
|
|
1500
|
+
mockIssueRepository,
|
|
1501
|
+
);
|
|
1502
|
+
await useCase.run({
|
|
1503
|
+
project: singleStoryProject,
|
|
1504
|
+
issues: [boardIssue],
|
|
1505
|
+
cacheUsed: false,
|
|
1506
|
+
urlOfStoryView: 'https://example.com',
|
|
1507
|
+
storyObjectMap: singleStoryObjectMap,
|
|
1508
|
+
manager: 'ManagerName',
|
|
1509
|
+
createTaskFromStoryBodyCheckboxEnabled,
|
|
1510
|
+
});
|
|
1511
|
+
};
|
|
1512
|
+
|
|
1513
|
+
it('does not fetch the story issue again when task creation from story body checkboxes is disabled and the story view link is already the first line', async () => {
|
|
1514
|
+
await runWithBoardIssue(storyIssueWithLinkOnFirstLine, false);
|
|
1515
|
+
|
|
1516
|
+
expect(mockIssueRepository.getIssueByUrl).not.toHaveBeenCalled();
|
|
1517
|
+
expect(mockIssueRepository.updateIssue).not.toHaveBeenCalled();
|
|
1518
|
+
});
|
|
1519
|
+
|
|
1520
|
+
it('fetches the story issue when task creation from story body checkboxes is enabled', async () => {
|
|
1521
|
+
await runWithBoardIssue(storyIssueWithLinkOnFirstLine, true);
|
|
1522
|
+
|
|
1523
|
+
expect(mockIssueRepository.getIssueByUrl.mock.calls[0]).toEqual([
|
|
1524
|
+
storyIssueWithLinkOnFirstLine.url,
|
|
1525
|
+
]);
|
|
1526
|
+
});
|
|
1527
|
+
|
|
1528
|
+
it('fetches the story issue when the story view link is missing from the body', async () => {
|
|
1529
|
+
await runWithBoardIssue(basicStoryIssue1, false);
|
|
1530
|
+
|
|
1531
|
+
expect(mockIssueRepository.getIssueByUrl.mock.calls).toEqual([
|
|
1532
|
+
[basicStoryIssue1.url],
|
|
1533
|
+
]);
|
|
1534
|
+
});
|
|
1535
|
+
});
|
|
1481
1536
|
});
|
|
1482
1537
|
|
|
1483
1538
|
describe('buildStoryViewLink', () => {
|
|
@@ -51,14 +51,15 @@ export class ConvertCheckboxToIssueInStoryIssueUseCase {
|
|
|
51
51
|
continue;
|
|
52
52
|
}
|
|
53
53
|
const iced = storyIssue.status === ICEBOX_STATUS_NAME;
|
|
54
|
-
|
|
55
|
-
iced
|
|
54
|
+
const noCheckboxWorkFollows =
|
|
55
|
+
iced || !input.createTaskFromStoryBodyCheckboxEnabled;
|
|
56
|
+
const storyViewLinkAlreadyOnFirstLine =
|
|
56
57
|
this.bodyWithStoryViewLinkOnFirstLine(
|
|
57
58
|
storyIssue.body,
|
|
58
59
|
input.urlOfStoryView,
|
|
59
60
|
storyOption.name,
|
|
60
|
-
) === storyIssue.body
|
|
61
|
-
) {
|
|
61
|
+
) === storyIssue.body;
|
|
62
|
+
if (noCheckboxWorkFollows && storyViewLinkAlreadyOnFirstLine) {
|
|
62
63
|
continue;
|
|
63
64
|
}
|
|
64
65
|
const freshStoryIssue = await this.issueRepository.getIssueByUrl(
|
|
@@ -27,6 +27,12 @@ export type EvaluateOptions = {
|
|
|
27
27
|
// closingIssueReferenceUrls, eliminating the per-issue timeline fan-out.
|
|
28
28
|
// When null or undefined, behaviour is unchanged: findRelatedOpenPRs runs.
|
|
29
29
|
relatedOpenPrUrls?: string[] | null;
|
|
30
|
+
// Pull request states the caller already resolved in one batched query for
|
|
31
|
+
// the whole cycle. A URL present as a key is taken from here and costs no
|
|
32
|
+
// further request; a URL absent from the map falls back to the per-URL
|
|
33
|
+
// getOpenPullRequest call, which keeps the transient-failure handling that
|
|
34
|
+
// distinguishes an unknown state from an absent pull request.
|
|
35
|
+
resolvedOpenPrByUrl?: ReadonlyMap<string, RelatedPullRequest | null> | null;
|
|
30
36
|
};
|
|
31
37
|
|
|
32
38
|
export class IssueRejectionEvaluator {
|
|
@@ -53,26 +59,16 @@ export class IssueRejectionEvaluator {
|
|
|
53
59
|
const rejections: { type: PrRejectedReasonType; detail: string }[] = [];
|
|
54
60
|
let approvedPrUrl: string | null = null;
|
|
55
61
|
|
|
56
|
-
const categoryLabels = issue.labels.filter((label) =>
|
|
57
|
-
label.startsWith('category:'),
|
|
58
|
-
);
|
|
59
|
-
const hasLlmAgentLabel = issue.labels.some(
|
|
60
|
-
(l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
|
|
61
|
-
);
|
|
62
|
-
const hasLabelNotRequiringPullRequest = issue.labels.some((label) =>
|
|
63
|
-
labelsNotRequiringPullRequest.includes(label),
|
|
64
|
-
);
|
|
65
|
-
|
|
66
62
|
if (
|
|
67
|
-
|
|
68
|
-
!hasLabelNotRequiringPullRequest &&
|
|
69
|
-
this.isPullRequestRequiredByBody(issue.body) &&
|
|
70
|
-
(categoryLabels.length <= 0 || categoryLabels.includes('category:e2e'))
|
|
63
|
+
this.requiresPullRequestEvaluation(issue, labelsNotRequiringPullRequest)
|
|
71
64
|
) {
|
|
72
65
|
let prsToCheck: RelatedPullRequest[];
|
|
73
66
|
let anyPrResolutionFailed = false;
|
|
74
67
|
if (issue.isPr) {
|
|
75
|
-
const resolved = await this.resolveOpenPrsForPrItem(
|
|
68
|
+
const resolved = await this.resolveOpenPrsForPrItem(
|
|
69
|
+
issue.url,
|
|
70
|
+
options.resolvedOpenPrByUrl ?? null,
|
|
71
|
+
);
|
|
76
72
|
if (resolved === null) {
|
|
77
73
|
// getOpenPullRequest failed transiently: the PR's state is unknown
|
|
78
74
|
// for this cycle, so skip it without emitting any rejection.
|
|
@@ -82,6 +78,7 @@ export class IssueRejectionEvaluator {
|
|
|
82
78
|
} else if (options.relatedOpenPrUrls != null) {
|
|
83
79
|
const resolved = await this.resolveOpenPrsFromUrls(
|
|
84
80
|
options.relatedOpenPrUrls,
|
|
81
|
+
options.resolvedOpenPrByUrl ?? null,
|
|
85
82
|
);
|
|
86
83
|
prsToCheck = resolved.prs;
|
|
87
84
|
anyPrResolutionFailed = resolved.anyResolutionFailed;
|
|
@@ -185,12 +182,41 @@ export class IssueRejectionEvaluator {
|
|
|
185
182
|
return { rejections, approvedPrUrl };
|
|
186
183
|
};
|
|
187
184
|
|
|
185
|
+
// Whether this item's pull requests are looked at at all. A caller that
|
|
186
|
+
// resolves pull request state in one batch for a whole cycle asks this first,
|
|
187
|
+
// so the batch covers exactly the items evaluate would have resolved.
|
|
188
|
+
requiresPullRequestEvaluation = (
|
|
189
|
+
issue: { labels: string[]; body?: string | null },
|
|
190
|
+
labelsNotRequiringPullRequest: string[] = [],
|
|
191
|
+
): boolean => {
|
|
192
|
+
const categoryLabels = issue.labels.filter((label) =>
|
|
193
|
+
label.startsWith('category:'),
|
|
194
|
+
);
|
|
195
|
+
const hasLlmAgentLabel = issue.labels.some(
|
|
196
|
+
(l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
|
|
197
|
+
);
|
|
198
|
+
const hasLabelNotRequiringPullRequest = issue.labels.some((label) =>
|
|
199
|
+
labelsNotRequiringPullRequest.includes(label),
|
|
200
|
+
);
|
|
201
|
+
return (
|
|
202
|
+
!hasLlmAgentLabel &&
|
|
203
|
+
!hasLabelNotRequiringPullRequest &&
|
|
204
|
+
this.isPullRequestRequiredByBody(issue.body) &&
|
|
205
|
+
(categoryLabels.length <= 0 || categoryLabels.includes('category:e2e'))
|
|
206
|
+
);
|
|
207
|
+
};
|
|
208
|
+
|
|
188
209
|
// Returns null when getOpenPullRequest throws (e.g. a transient GitHub
|
|
189
210
|
// GraphQL server error): the PR's state is unknown for this cycle and the
|
|
190
211
|
// caller skips it instead of letting the error abort the schedule cycle.
|
|
191
212
|
private resolveOpenPrsForPrItem = async (
|
|
192
213
|
prUrl: string,
|
|
214
|
+
resolvedOpenPrByUrl: ReadonlyMap<string, RelatedPullRequest | null> | null,
|
|
193
215
|
): Promise<RelatedPullRequest[] | null> => {
|
|
216
|
+
if (resolvedOpenPrByUrl?.has(prUrl)) {
|
|
217
|
+
const alreadyResolved = resolvedOpenPrByUrl.get(prUrl) ?? null;
|
|
218
|
+
return alreadyResolved === null ? [] : [alreadyResolved];
|
|
219
|
+
}
|
|
194
220
|
let pr: RelatedPullRequest | null;
|
|
195
221
|
try {
|
|
196
222
|
pr = await this.issueRepository.getOpenPullRequest(prUrl);
|
|
@@ -220,11 +246,19 @@ export class IssueRejectionEvaluator {
|
|
|
220
246
|
// PULL_REQUEST_NOT_FOUND.
|
|
221
247
|
private resolveOpenPrsFromUrls = async (
|
|
222
248
|
prUrls: string[],
|
|
249
|
+
resolvedOpenPrByUrl: ReadonlyMap<string, RelatedPullRequest | null> | null,
|
|
223
250
|
): Promise<{ prs: RelatedPullRequest[]; anyResolutionFailed: boolean }> => {
|
|
224
251
|
const uniquePrUrls = Array.from(new Set(prUrls));
|
|
225
252
|
const resolvedPrs: RelatedPullRequest[] = [];
|
|
226
253
|
let anyResolutionFailed = false;
|
|
227
254
|
for (const prUrl of uniquePrUrls) {
|
|
255
|
+
if (resolvedOpenPrByUrl?.has(prUrl)) {
|
|
256
|
+
const alreadyResolved = resolvedOpenPrByUrl.get(prUrl) ?? null;
|
|
257
|
+
if (alreadyResolved !== null) {
|
|
258
|
+
resolvedPrs.push(alreadyResolved);
|
|
259
|
+
}
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
228
262
|
let pr: RelatedPullRequest | null;
|
|
229
263
|
try {
|
|
230
264
|
pr = await this.issueRepository.getOpenPullRequest(prUrl);
|
|
@@ -160,6 +160,7 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
|
|
|
160
160
|
updateStory: jest.Mock;
|
|
161
161
|
findRelatedOpenPRs: jest.Mock;
|
|
162
162
|
getOpenPullRequest: jest.Mock;
|
|
163
|
+
getOpenPullRequests: jest.Mock;
|
|
163
164
|
getPullRequestChangedFilePaths: jest.Mock;
|
|
164
165
|
approvePullRequest: jest.Mock;
|
|
165
166
|
requestChangesWithInlineComment: jest.Mock;
|
|
@@ -191,6 +192,7 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
|
|
|
191
192
|
updateStory: jest.fn().mockResolvedValue(undefined),
|
|
192
193
|
findRelatedOpenPRs: jest.fn().mockResolvedValue([]),
|
|
193
194
|
getOpenPullRequest: jest.fn().mockResolvedValue(null),
|
|
195
|
+
getOpenPullRequests: jest.fn().mockResolvedValue(new Map()),
|
|
194
196
|
getPullRequestChangedFilePaths: jest.fn().mockResolvedValue([]),
|
|
195
197
|
approvePullRequest: jest.fn().mockResolvedValue(undefined),
|
|
196
198
|
requestChangesWithInlineComment: jest.fn().mockResolvedValue(undefined),
|
|
@@ -2200,4 +2202,156 @@ describe('RevertNotReadyReviewQueueIssueUseCase', () => {
|
|
|
2200
2202
|
);
|
|
2201
2203
|
});
|
|
2202
2204
|
});
|
|
2205
|
+
|
|
2206
|
+
describe('batched pull request state resolution', () => {
|
|
2207
|
+
const projectUrl = 'https://github.com/users/user/projects/1';
|
|
2208
|
+
|
|
2209
|
+
const buildAwaitingQualityCheckBoard = (
|
|
2210
|
+
issueCount: number,
|
|
2211
|
+
): { boardIssues: Issue[]; relatedPrs: RelatedPrLike[] } => {
|
|
2212
|
+
const boardIssues: Issue[] = [];
|
|
2213
|
+
const relatedPrs: RelatedPrLike[] = [];
|
|
2214
|
+
for (let index = 0; index < issueCount; index += 1) {
|
|
2215
|
+
const issueUrl = `https://github.com/user/repo/issues/${200 + index}`;
|
|
2216
|
+
const prUrl = `https://github.com/user/repo/pull/${300 + index}`;
|
|
2217
|
+
boardIssues.push(
|
|
2218
|
+
createMockIssue({
|
|
2219
|
+
url: issueUrl,
|
|
2220
|
+
number: 200 + index,
|
|
2221
|
+
itemId: `item-issue-${index}`,
|
|
2222
|
+
}),
|
|
2223
|
+
);
|
|
2224
|
+
boardIssues.push(
|
|
2225
|
+
createMockPullRequest({
|
|
2226
|
+
url: prUrl,
|
|
2227
|
+
number: 300 + index,
|
|
2228
|
+
itemId: `item-pr-${index}`,
|
|
2229
|
+
status: 'In Progress',
|
|
2230
|
+
closingIssueReferenceUrls: [issueUrl],
|
|
2231
|
+
}),
|
|
2232
|
+
);
|
|
2233
|
+
relatedPrs.push(createReadyPr(prUrl));
|
|
2234
|
+
}
|
|
2235
|
+
return { boardIssues, relatedPrs };
|
|
2236
|
+
};
|
|
2237
|
+
|
|
2238
|
+
const resolveBatchFrom = (relatedPrs: RelatedPrLike[]): void => {
|
|
2239
|
+
const prByUrl = new Map(relatedPrs.map((pr) => [pr.url, pr]));
|
|
2240
|
+
mockIssueRepository.getOpenPullRequests.mockImplementation(
|
|
2241
|
+
(prUrls: string[]) =>
|
|
2242
|
+
Promise.resolve(
|
|
2243
|
+
new Map(prUrls.map((prUrl) => [prUrl, prByUrl.get(prUrl) ?? null])),
|
|
2244
|
+
),
|
|
2245
|
+
);
|
|
2246
|
+
};
|
|
2247
|
+
|
|
2248
|
+
it('resolves every related pull request in one batched call and makes no per-pull-request call', async () => {
|
|
2249
|
+
const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(3);
|
|
2250
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
2251
|
+
project: mockProject,
|
|
2252
|
+
issues: boardIssues,
|
|
2253
|
+
cacheUsed: false,
|
|
2254
|
+
});
|
|
2255
|
+
resolveBatchFrom(relatedPrs);
|
|
2256
|
+
|
|
2257
|
+
await useCase.run({
|
|
2258
|
+
projectUrl,
|
|
2259
|
+
manager: 'manager-user',
|
|
2260
|
+
allowedIssueAuthors: ['owner'],
|
|
2261
|
+
});
|
|
2262
|
+
|
|
2263
|
+
expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledTimes(1);
|
|
2264
|
+
expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledWith(
|
|
2265
|
+
relatedPrs.map((pr) => pr.url),
|
|
2266
|
+
);
|
|
2267
|
+
expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
|
|
2268
|
+
expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
|
|
2269
|
+
});
|
|
2270
|
+
|
|
2271
|
+
it('includes the unread pull requests in the same batched call', async () => {
|
|
2272
|
+
const unreadPrUrl = 'https://github.com/user/repo/pull/400';
|
|
2273
|
+
const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(1);
|
|
2274
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
2275
|
+
project: mockProject,
|
|
2276
|
+
issues: [
|
|
2277
|
+
...boardIssues,
|
|
2278
|
+
createMockPullRequest({
|
|
2279
|
+
url: unreadPrUrl,
|
|
2280
|
+
number: 400,
|
|
2281
|
+
itemId: 'item-pr-unread',
|
|
2282
|
+
}),
|
|
2283
|
+
],
|
|
2284
|
+
cacheUsed: false,
|
|
2285
|
+
});
|
|
2286
|
+
resolveBatchFrom([...relatedPrs, createReadyPr(unreadPrUrl)]);
|
|
2287
|
+
|
|
2288
|
+
await useCase.run({
|
|
2289
|
+
projectUrl,
|
|
2290
|
+
manager: 'manager-user',
|
|
2291
|
+
allowedIssueAuthors: ['owner'],
|
|
2292
|
+
});
|
|
2293
|
+
|
|
2294
|
+
expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledTimes(1);
|
|
2295
|
+
expect(mockIssueRepository.getOpenPullRequests).toHaveBeenCalledWith([
|
|
2296
|
+
relatedPrs[0].url,
|
|
2297
|
+
unreadPrUrl,
|
|
2298
|
+
]);
|
|
2299
|
+
expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
|
|
2300
|
+
});
|
|
2301
|
+
|
|
2302
|
+
it('falls back to the single pull request query only for a url the batch left unresolved', async () => {
|
|
2303
|
+
const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(2);
|
|
2304
|
+
const resolvedPr = relatedPrs[0];
|
|
2305
|
+
const omittedPr = relatedPrs[1];
|
|
2306
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
2307
|
+
project: mockProject,
|
|
2308
|
+
issues: boardIssues,
|
|
2309
|
+
cacheUsed: false,
|
|
2310
|
+
});
|
|
2311
|
+
mockIssueRepository.getOpenPullRequests.mockResolvedValue(
|
|
2312
|
+
new Map([[resolvedPr.url, resolvedPr]]),
|
|
2313
|
+
);
|
|
2314
|
+
mockIssueRepository.getOpenPullRequest.mockImplementation(
|
|
2315
|
+
(prUrl: string) =>
|
|
2316
|
+
Promise.resolve(prUrl === omittedPr.url ? omittedPr : null),
|
|
2317
|
+
);
|
|
2318
|
+
|
|
2319
|
+
await useCase.run({
|
|
2320
|
+
projectUrl,
|
|
2321
|
+
manager: 'manager-user',
|
|
2322
|
+
allowedIssueAuthors: ['owner'],
|
|
2323
|
+
});
|
|
2324
|
+
|
|
2325
|
+
expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledTimes(1);
|
|
2326
|
+
expect(mockIssueRepository.getOpenPullRequest).toHaveBeenCalledWith(
|
|
2327
|
+
omittedPr.url,
|
|
2328
|
+
);
|
|
2329
|
+
expect(mockIssueRepository.updateStatus).not.toHaveBeenCalled();
|
|
2330
|
+
});
|
|
2331
|
+
|
|
2332
|
+
it('reverts the issue whose pull request the batch resolved as absent', async () => {
|
|
2333
|
+
const { boardIssues, relatedPrs } = buildAwaitingQualityCheckBoard(1);
|
|
2334
|
+
mockIssueRepository.getAllIssues.mockResolvedValue({
|
|
2335
|
+
project: mockProject,
|
|
2336
|
+
issues: boardIssues,
|
|
2337
|
+
cacheUsed: false,
|
|
2338
|
+
});
|
|
2339
|
+
mockIssueRepository.getOpenPullRequests.mockResolvedValue(
|
|
2340
|
+
new Map([[relatedPrs[0].url, null]]),
|
|
2341
|
+
);
|
|
2342
|
+
|
|
2343
|
+
await useCase.run({
|
|
2344
|
+
projectUrl,
|
|
2345
|
+
manager: 'manager-user',
|
|
2346
|
+
allowedIssueAuthors: ['owner'],
|
|
2347
|
+
});
|
|
2348
|
+
|
|
2349
|
+
expect(mockIssueRepository.getOpenPullRequest).not.toHaveBeenCalled();
|
|
2350
|
+
expect(mockIssueRepository.updateStatus).toHaveBeenCalledWith(
|
|
2351
|
+
mockProject,
|
|
2352
|
+
expect.objectContaining({ url: boardIssues[0].url }),
|
|
2353
|
+
'awaiting-workspace-id',
|
|
2354
|
+
);
|
|
2355
|
+
});
|
|
2356
|
+
});
|
|
2203
2357
|
});
|
|
@@ -42,6 +42,7 @@ export class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
42
42
|
| 'updateStory'
|
|
43
43
|
| 'findRelatedOpenPRs'
|
|
44
44
|
| 'getOpenPullRequest'
|
|
45
|
+
| 'getOpenPullRequests'
|
|
45
46
|
| 'getPullRequestChangedFilePaths'
|
|
46
47
|
| 'approvePullRequest'
|
|
47
48
|
| 'requestChangesWithInlineComment'
|
|
@@ -95,6 +96,34 @@ export class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
95
96
|
const relatedOpenPrUrlsByIssueUrl =
|
|
96
97
|
this.buildRelatedOpenPrUrlsByIssueUrl(issues);
|
|
97
98
|
|
|
99
|
+
const unreadPullRequests = issues.filter(
|
|
100
|
+
(issue) => issue.status === DEFAULT_STATUS_NAME && issue.isPr,
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
const labelsNotRequiringPullRequest =
|
|
104
|
+
resolveLabelsNotRequiringPullRequest(params);
|
|
105
|
+
const willBeEvaluated = (item: Issue): boolean =>
|
|
106
|
+
isAuthorAuthorizedForAutoStatusCheck(item.author, allowedIssueAuthors) &&
|
|
107
|
+
this.issueRejectionEvaluator.requiresPullRequestEvaluation(
|
|
108
|
+
item,
|
|
109
|
+
labelsNotRequiringPullRequest,
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
const resolvedOpenPrByUrl = await this.issueRepository.getOpenPullRequests(
|
|
113
|
+
Array.from(
|
|
114
|
+
new Set([
|
|
115
|
+
...awaitingQualityCheckIssues
|
|
116
|
+
.filter(willBeEvaluated)
|
|
117
|
+
.flatMap(
|
|
118
|
+
(issue) => relatedOpenPrUrlsByIssueUrl.get(issue.url) ?? [],
|
|
119
|
+
),
|
|
120
|
+
...unreadPullRequests
|
|
121
|
+
.filter(willBeEvaluated)
|
|
122
|
+
.map((pullRequest) => pullRequest.url),
|
|
123
|
+
]),
|
|
124
|
+
),
|
|
125
|
+
);
|
|
126
|
+
|
|
98
127
|
for (const issue of awaitingQualityCheckIssues) {
|
|
99
128
|
const hasLlmAgentLabel = issue.labels.some(
|
|
100
129
|
(l) => l === 'llm-agent' || l.startsWith('llm-agent:'),
|
|
@@ -113,10 +142,11 @@ export class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
113
142
|
const { rejections, approvedPrUrl } =
|
|
114
143
|
await this.issueRejectionEvaluator.evaluate(
|
|
115
144
|
issue,
|
|
116
|
-
|
|
145
|
+
labelsNotRequiringPullRequest,
|
|
117
146
|
{
|
|
118
147
|
relatedOpenPrUrls:
|
|
119
148
|
relatedOpenPrUrlsByIssueUrl.get(issue.url) ?? null,
|
|
149
|
+
resolvedOpenPrByUrl,
|
|
120
150
|
},
|
|
121
151
|
);
|
|
122
152
|
if (
|
|
@@ -173,9 +203,6 @@ export class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
173
203
|
}
|
|
174
204
|
|
|
175
205
|
const projectStory = project.story;
|
|
176
|
-
const unreadPullRequests = issues.filter(
|
|
177
|
-
(issue) => issue.status === DEFAULT_STATUS_NAME && issue.isPr,
|
|
178
|
-
);
|
|
179
206
|
|
|
180
207
|
for (const pullRequest of unreadPullRequests) {
|
|
181
208
|
const hasLlmAgentLabel = pullRequest.labels.some(
|
|
@@ -197,7 +224,8 @@ export class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
197
224
|
try {
|
|
198
225
|
const { rejections } = await this.issueRejectionEvaluator.evaluate(
|
|
199
226
|
pullRequest,
|
|
200
|
-
|
|
227
|
+
labelsNotRequiringPullRequest,
|
|
228
|
+
{ resolvedOpenPrByUrl },
|
|
201
229
|
);
|
|
202
230
|
if (rejections.length > 0) {
|
|
203
231
|
if (!pullRequest.assignees.includes(params.manager)) {
|
|
@@ -136,6 +136,9 @@ export interface IssueRepository {
|
|
|
136
136
|
update: (issue: Issue, project: Project) => Promise<void>;
|
|
137
137
|
findRelatedOpenPRs: (issueUrl: string) => Promise<RelatedPullRequest[]>;
|
|
138
138
|
getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
|
|
139
|
+
getOpenPullRequests: (
|
|
140
|
+
prUrls: string[],
|
|
141
|
+
) => Promise<Map<string, RelatedPullRequest | null>>;
|
|
139
142
|
getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
|
|
140
143
|
approvePullRequest: (prUrl: string) => Promise<void>;
|
|
141
144
|
requestChangesWithInlineComment: (
|
|
@@ -91,6 +91,9 @@ export declare class ApiV3CheerioRestIssueRepository extends BaseGitHubRepositor
|
|
|
91
91
|
getAllOpened: (project: Project) => Promise<Issue[]>;
|
|
92
92
|
getStoryObjectMap: (project: Project) => Promise<StoryObjectMap>;
|
|
93
93
|
getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
|
|
94
|
+
getOpenPullRequests: (prUrls: string[]) => Promise<Map<string, RelatedPullRequest | null>>;
|
|
95
|
+
private requireParsedPullRequest;
|
|
96
|
+
private fetchSlimPullRequestsInOneQuery;
|
|
94
97
|
closePullRequest: (prUrl: string) => Promise<void>;
|
|
95
98
|
closeIssueByUrl: (issueUrl: string, stateReason: "completed" | "not_planned") => Promise<void>;
|
|
96
99
|
getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,4BAA4B,EAC5B,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAO7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EACL,KAAK,EAKN,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,4BAA4B,QAAiB,CAAC;AAC3D,eAAO,MAAM,gCAAgC,QAAgB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiV3CheerioRestIssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvertCheckboxToIssueInStoryIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.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;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,yCAAyC;IAElD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;gBAPQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;IAGH,GAAG,GAAU,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,sCAAsC,EAAE,OAAO,CAAC;KACjD,KAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"ConvertCheckboxToIssueInStoryIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ConvertCheckboxToIssueInStoryIssueUseCase.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;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,yCAAyC;IAElD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;gBAPQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACb,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB;IAGH,GAAG,GAAU,OAAO;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,sCAAsC,EAAE,OAAO,CAAC;KACjD,KAAG,OAAO,CAAC,IAAI,CAAC,CAsGf;IACF,gCAAgC,GAC9B,MAAM,MAAM,EACZ,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CA8BP;IACF,kBAAkB,GAAI,gBAAgB,MAAM,EAAE,WAAW,MAAM,KAAG,MAAM,CAEtE;IACF,yBAAyB,GACvB,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CAQP;IACF,gCAAgC,GAAI,gBAAgB,MAAM,KAAG,MAAM,EAAE,CAcnE;CACH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IssueRepository } from './adapter-interfaces/IssueRepository';
|
|
1
|
+
import { IssueRepository, RelatedPullRequest } from './adapter-interfaces/IssueRepository';
|
|
2
2
|
export type PrRejectedReasonType = 'PULL_REQUEST_NOT_FOUND' | 'MULTIPLE_PULL_REQUESTS_FOUND' | 'PULL_REQUEST_IS_DRAFT' | 'PULL_REQUEST_CONFLICTED' | 'ANY_CI_JOB_FAILED_OR_IN_PROGRESS' | 'REQUIRED_CI_JOB_NEVER_STARTED' | 'ANY_REVIEW_COMMENT_NOT_RESOLVED' | 'CHANGE_TARGET_MUST_PATH_NOT_CHANGED';
|
|
3
3
|
export type PrRejectionResult = {
|
|
4
4
|
rejections: {
|
|
@@ -9,6 +9,7 @@ export type PrRejectionResult = {
|
|
|
9
9
|
};
|
|
10
10
|
export type EvaluateOptions = {
|
|
11
11
|
relatedOpenPrUrls?: string[] | null;
|
|
12
|
+
resolvedOpenPrByUrl?: ReadonlyMap<string, RelatedPullRequest | null> | null;
|
|
12
13
|
};
|
|
13
14
|
export declare class IssueRejectionEvaluator {
|
|
14
15
|
private readonly issueRepository;
|
|
@@ -19,6 +20,10 @@ export declare class IssueRejectionEvaluator {
|
|
|
19
20
|
isPr: boolean;
|
|
20
21
|
body?: string | null;
|
|
21
22
|
}, labelsNotRequiringPullRequest?: string[], options?: EvaluateOptions) => Promise<PrRejectionResult>;
|
|
23
|
+
requiresPullRequestEvaluation: (issue: {
|
|
24
|
+
labels: string[];
|
|
25
|
+
body?: string | null;
|
|
26
|
+
}, labelsNotRequiringPullRequest?: string[]) => boolean;
|
|
22
27
|
private resolveOpenPrsForPrItem;
|
|
23
28
|
private resolveOpenPrsFromUrls;
|
|
24
29
|
private extractChangeTargetMustPaths;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueRejectionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/IssueRejectionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"IssueRejectionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/IssueRejectionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAC5B,wBAAwB,GACxB,8BAA8B,GAC9B,uBAAuB,GACvB,yBAAyB,GACzB,kCAAkC,GAClC,+BAA+B,GAC/B,iCAAiC,GACjC,qCAAqC,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE;QAAE,IAAI,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAQ5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAMpC,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7E,CAAC;AAEF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,oBAAoB,GACpB,oBAAoB,GACpB,gCAAgC,GAChC,iCAAiC,CACpC;IAGH,QAAQ,GACN,OAAO;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,EACD,gCAA+B,MAAM,EAAO,EAC5C,UAAS,eAAoB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CA6H3B;IAKF,6BAA6B,GAC3B,OAAO;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EACjD,gCAA+B,MAAM,EAAO,KAC3C,OAAO,CAgBR;IAKF,OAAO,CAAC,uBAAuB,CAqB7B;IAcF,OAAO,CAAC,sBAAsB,CA8B5B;IAEF,OAAO,CAAC,4BAA4B,CAYlC;IAEF,OAAO,CAAC,mBAAmB,CAIwC;IAEnE,OAAO,CAAC,2BAA2B,CAejC;CACH"}
|
|
@@ -7,7 +7,7 @@ export declare class RevertNotReadyReviewQueueIssueUseCase {
|
|
|
7
7
|
private readonly issueCommentRepository;
|
|
8
8
|
private readonly issueRejectionEvaluator;
|
|
9
9
|
private readonly changeTargetPullRequestApprover;
|
|
10
|
-
constructor(projectRepository: Pick<ProjectRepository, 'findProjectIdByUrl' | 'getProject'>, issueRepository: Pick<IssueRepository, 'getAllIssues' | 'updateStatus' | 'updateStory' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment'>, issueCommentRepository: Pick<IssueCommentRepository, 'createComment' | 'getCommentsFromIssue'>);
|
|
10
|
+
constructor(projectRepository: Pick<ProjectRepository, 'findProjectIdByUrl' | 'getProject'>, issueRepository: Pick<IssueRepository, 'getAllIssues' | 'updateStatus' | 'updateStory' | 'findRelatedOpenPRs' | 'getOpenPullRequest' | 'getOpenPullRequests' | 'getPullRequestChangedFilePaths' | 'approvePullRequest' | 'requestChangesWithInlineComment'>, issueCommentRepository: Pick<IssueCommentRepository, 'createComment' | 'getCommentsFromIssue'>);
|
|
11
11
|
run: (params: {
|
|
12
12
|
projectUrl: string;
|
|
13
13
|
manager: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevertNotReadyReviewQueueIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAyBrF,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"RevertNotReadyReviewQueueIssueUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/RevertNotReadyReviewQueueIssueUseCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAyBrF,qBAAa,qCAAqC;IAK9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAYhC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IApBzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAkC;gBAG/D,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACjB,oBAAoB,GAAG,YAAY,CACpC,EACgB,eAAe,EAAE,IAAI,CACpC,eAAe,EACb,cAAc,GACd,cAAc,GACd,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,GACrB,gCAAgC,GAChC,oBAAoB,GACpB,iCAAiC,CACpC,EACgB,sBAAsB,EAAE,IAAI,CAC3C,sBAAsB,EACtB,eAAe,GAAG,sBAAsB,CACzC;IAQH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACxD,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACvC,KAAG,OAAO,CAAC,IAAI,CAAC,CA2Mf;IAQF,OAAO,CAAC,gCAAgC,CAsBtC;CACH"}
|
|
@@ -94,6 +94,7 @@ export interface IssueRepository {
|
|
|
94
94
|
update: (issue: Issue, project: Project) => Promise<void>;
|
|
95
95
|
findRelatedOpenPRs: (issueUrl: string) => Promise<RelatedPullRequest[]>;
|
|
96
96
|
getOpenPullRequest: (prUrl: string) => Promise<RelatedPullRequest | null>;
|
|
97
|
+
getOpenPullRequests: (prUrls: string[]) => Promise<Map<string, RelatedPullRequest | null>>;
|
|
97
98
|
getPullRequestChangedFilePaths: (prUrl: string) => Promise<string[]>;
|
|
98
99
|
approvePullRequest: (prUrl: string) => Promise<void>;
|
|
99
100
|
requestChangesWithInlineComment: (prUrl: string, changedFilePath: string | null, commentBody: string, inlineCommentLocation?: PullRequestReviewInlineLocation | null) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IssueRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/IssueRepository.ts"],"names":[],"mappings":"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"}
|