npm-cli-gh-issue-preparator 1.6.0 → 1.7.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 +7 -0
- package/bin/adapter/repositories/GitHubIssueRepository.js +47 -0
- package/bin/adapter/repositories/GitHubIssueRepository.js.map +1 -1
- package/bin/domain/entities/Comment.js +3 -0
- package/bin/domain/entities/Comment.js.map +1 -0
- package/package.json +1 -1
- package/src/adapter/repositories/GitHubIssueRepository.test.ts +172 -0
- package/src/adapter/repositories/GitHubIssueRepository.ts +61 -0
- package/src/domain/entities/Comment.ts +5 -0
- package/src/domain/entities/Issue.ts +3 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +2 -0
- package/src/domain/usecases/StartPreparationUseCase.test.ts +10 -0
- package/types/adapter/repositories/GitHubIssueRepository.d.ts +1 -0
- package/types/adapter/repositories/GitHubIssueRepository.d.ts.map +1 -1
- package/types/domain/entities/Comment.d.ts +6 -0
- package/types/domain/entities/Comment.d.ts.map +1 -0
- package/types/domain/entities/Issue.d.ts +2 -0
- package/types/domain/entities/Issue.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.7.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.6.0...v1.7.0) (2026-01-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **core:** add Comment domain entity with author, content, createdAt ([8e3e861](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/8e3e8617284f818cf72f9e4c33afac9748b2661a))
|
|
7
|
+
|
|
1
8
|
# [1.6.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.5.0...v1.6.0) (2026-01-26)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -52,6 +52,15 @@ class GitHubIssueRepository {
|
|
|
52
52
|
name
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
comments(first: 100) {
|
|
56
|
+
nodes {
|
|
57
|
+
author {
|
|
58
|
+
login
|
|
59
|
+
}
|
|
60
|
+
body
|
|
61
|
+
createdAt
|
|
62
|
+
}
|
|
63
|
+
}
|
|
55
64
|
}
|
|
56
65
|
... on PullRequest {
|
|
57
66
|
url
|
|
@@ -62,6 +71,15 @@ class GitHubIssueRepository {
|
|
|
62
71
|
name
|
|
63
72
|
}
|
|
64
73
|
}
|
|
74
|
+
comments(first: 100) {
|
|
75
|
+
nodes {
|
|
76
|
+
author {
|
|
77
|
+
login
|
|
78
|
+
}
|
|
79
|
+
body
|
|
80
|
+
createdAt
|
|
81
|
+
}
|
|
82
|
+
}
|
|
65
83
|
}
|
|
66
84
|
}
|
|
67
85
|
fieldValues(first: 20) {
|
|
@@ -109,6 +127,15 @@ class GitHubIssueRepository {
|
|
|
109
127
|
name
|
|
110
128
|
}
|
|
111
129
|
}
|
|
130
|
+
comments(first: 100) {
|
|
131
|
+
nodes {
|
|
132
|
+
author {
|
|
133
|
+
login
|
|
134
|
+
}
|
|
135
|
+
body
|
|
136
|
+
createdAt
|
|
137
|
+
}
|
|
138
|
+
}
|
|
112
139
|
}
|
|
113
140
|
... on PullRequest {
|
|
114
141
|
url
|
|
@@ -119,6 +146,15 @@ class GitHubIssueRepository {
|
|
|
119
146
|
name
|
|
120
147
|
}
|
|
121
148
|
}
|
|
149
|
+
comments(first: 100) {
|
|
150
|
+
nodes {
|
|
151
|
+
author {
|
|
152
|
+
login
|
|
153
|
+
}
|
|
154
|
+
body
|
|
155
|
+
createdAt
|
|
156
|
+
}
|
|
157
|
+
}
|
|
122
158
|
}
|
|
123
159
|
}
|
|
124
160
|
fieldValues(first: 20) {
|
|
@@ -149,6 +185,15 @@ class GitHubIssueRepository {
|
|
|
149
185
|
}
|
|
150
186
|
`;
|
|
151
187
|
}
|
|
188
|
+
mapCommentsToEntity(commentNodes) {
|
|
189
|
+
if (!commentNodes)
|
|
190
|
+
return [];
|
|
191
|
+
return commentNodes.map((node) => ({
|
|
192
|
+
author: node.author?.login || '',
|
|
193
|
+
content: node.body,
|
|
194
|
+
createdAt: new Date(node.createdAt),
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
152
197
|
async getStatusOptionId(project, statusName) {
|
|
153
198
|
const { owner, projectNumber } = this.parseProjectInfo(project);
|
|
154
199
|
const query = `
|
|
@@ -291,6 +336,7 @@ class GitHubIssueRepository {
|
|
|
291
336
|
title: item.content.title,
|
|
292
337
|
labels: item.content.labels?.nodes?.map((l) => l.name) || [],
|
|
293
338
|
status,
|
|
339
|
+
comments: this.mapCommentsToEntity(item.content.comments?.nodes),
|
|
294
340
|
});
|
|
295
341
|
}
|
|
296
342
|
hasNextPage = projectData.items.pageInfo.hasNextPage;
|
|
@@ -394,6 +440,7 @@ class GitHubIssueRepository {
|
|
|
394
440
|
title: item.content.title,
|
|
395
441
|
labels: item.content.labels?.nodes?.map((l) => l.name) || [],
|
|
396
442
|
status,
|
|
443
|
+
comments: this.mapCommentsToEntity(item.content.comments?.nodes),
|
|
397
444
|
};
|
|
398
445
|
}
|
|
399
446
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHubIssueRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GitHubIssueRepository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"GitHubIssueRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/GitHubIssueRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.js","sourceRoot":"","sources":["../../../src/domain/entities/Comment.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -105,6 +105,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
105
105
|
title: 'Test Issue 1',
|
|
106
106
|
labels: ['bug', 'category:impl'],
|
|
107
107
|
status: 'Awaiting Workspace',
|
|
108
|
+
comments: [],
|
|
108
109
|
});
|
|
109
110
|
expect(issues[1]).toEqual({
|
|
110
111
|
id: 'issue-2',
|
|
@@ -112,6 +113,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
112
113
|
title: 'Test Issue 2',
|
|
113
114
|
labels: ['enhancement'],
|
|
114
115
|
status: 'Preparation',
|
|
116
|
+
comments: [],
|
|
115
117
|
});
|
|
116
118
|
});
|
|
117
119
|
|
|
@@ -200,6 +202,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
200
202
|
title: 'User Issue',
|
|
201
203
|
labels: ['enhancement'],
|
|
202
204
|
status: 'Todo',
|
|
205
|
+
comments: [],
|
|
203
206
|
});
|
|
204
207
|
});
|
|
205
208
|
|
|
@@ -441,6 +444,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
441
444
|
title: 'Issue Without Status',
|
|
442
445
|
labels: ['bug'],
|
|
443
446
|
status: '',
|
|
447
|
+
comments: [],
|
|
444
448
|
});
|
|
445
449
|
});
|
|
446
450
|
});
|
|
@@ -453,6 +457,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
453
457
|
title: 'Test Issue',
|
|
454
458
|
labels: ['bug'],
|
|
455
459
|
status: 'Preparation',
|
|
460
|
+
comments: [],
|
|
456
461
|
};
|
|
457
462
|
|
|
458
463
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -514,6 +519,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
514
519
|
title: 'Test Issue',
|
|
515
520
|
labels: ['bug'],
|
|
516
521
|
status: 'Done',
|
|
522
|
+
comments: [],
|
|
517
523
|
};
|
|
518
524
|
|
|
519
525
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -571,6 +577,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
571
577
|
title: 'Test Issue',
|
|
572
578
|
labels: ['bug'],
|
|
573
579
|
status: 'NonExistentStatus',
|
|
580
|
+
comments: [],
|
|
574
581
|
};
|
|
575
582
|
|
|
576
583
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -610,6 +617,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
610
617
|
title: 'Test Issue',
|
|
611
618
|
labels: ['bug'],
|
|
612
619
|
status: 'Preparation',
|
|
620
|
+
comments: [],
|
|
613
621
|
};
|
|
614
622
|
|
|
615
623
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -628,6 +636,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
628
636
|
title: 'Test Issue',
|
|
629
637
|
labels: ['bug'],
|
|
630
638
|
status: 'Preparation',
|
|
639
|
+
comments: [],
|
|
631
640
|
};
|
|
632
641
|
|
|
633
642
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -647,6 +656,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
647
656
|
title: 'Test Issue',
|
|
648
657
|
labels: ['bug'],
|
|
649
658
|
status: 'Preparation',
|
|
659
|
+
comments: [],
|
|
650
660
|
};
|
|
651
661
|
|
|
652
662
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -686,6 +696,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
686
696
|
title: 'Test Issue',
|
|
687
697
|
labels: ['bug'],
|
|
688
698
|
status: 'Preparation',
|
|
699
|
+
comments: [],
|
|
689
700
|
};
|
|
690
701
|
|
|
691
702
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -730,6 +741,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
730
741
|
title: 'Test Issue',
|
|
731
742
|
labels: ['bug'],
|
|
732
743
|
status: 'Preparation',
|
|
744
|
+
comments: [],
|
|
733
745
|
};
|
|
734
746
|
|
|
735
747
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -776,6 +788,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
776
788
|
title: 'Test Issue',
|
|
777
789
|
labels: ['bug'],
|
|
778
790
|
status: 'Preparation',
|
|
791
|
+
comments: [],
|
|
779
792
|
};
|
|
780
793
|
|
|
781
794
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -820,6 +833,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
820
833
|
title: 'Test Issue',
|
|
821
834
|
labels: ['bug'],
|
|
822
835
|
status: 'Todo',
|
|
836
|
+
comments: [],
|
|
823
837
|
};
|
|
824
838
|
|
|
825
839
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -872,6 +886,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
872
886
|
title: 'Test Issue',
|
|
873
887
|
labels: ['bug'],
|
|
874
888
|
status: 'Preparation',
|
|
889
|
+
comments: [],
|
|
875
890
|
};
|
|
876
891
|
|
|
877
892
|
mockFetch.mockResolvedValueOnce({
|
|
@@ -945,6 +960,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
945
960
|
title: 'Test Issue',
|
|
946
961
|
labels: ['bug'],
|
|
947
962
|
status: 'Preparation',
|
|
963
|
+
comments: [],
|
|
948
964
|
});
|
|
949
965
|
});
|
|
950
966
|
|
|
@@ -1055,6 +1071,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
1055
1071
|
title: 'User Issue',
|
|
1056
1072
|
labels: ['feature'],
|
|
1057
1073
|
status: 'Todo',
|
|
1074
|
+
comments: [],
|
|
1058
1075
|
});
|
|
1059
1076
|
});
|
|
1060
1077
|
|
|
@@ -1112,6 +1129,7 @@ describe('GitHubIssueRepository', () => {
|
|
|
1112
1129
|
title: 'Issue Without Status',
|
|
1113
1130
|
labels: [],
|
|
1114
1131
|
status: '',
|
|
1132
|
+
comments: [],
|
|
1115
1133
|
});
|
|
1116
1134
|
});
|
|
1117
1135
|
|
|
@@ -1236,7 +1254,161 @@ describe('GitHubIssueRepository', () => {
|
|
|
1236
1254
|
title: 'Issue With Null Labels',
|
|
1237
1255
|
labels: [],
|
|
1238
1256
|
status: 'Done',
|
|
1257
|
+
comments: [],
|
|
1239
1258
|
});
|
|
1240
1259
|
});
|
|
1260
|
+
|
|
1261
|
+
it('should fetch and map comments correctly', async () => {
|
|
1262
|
+
mockFetch.mockResolvedValueOnce({
|
|
1263
|
+
ok: true,
|
|
1264
|
+
json: jest.fn().mockResolvedValue({
|
|
1265
|
+
data: {
|
|
1266
|
+
organization: {
|
|
1267
|
+
projectV2: {
|
|
1268
|
+
items: {
|
|
1269
|
+
totalCount: 1,
|
|
1270
|
+
pageInfo: {
|
|
1271
|
+
endCursor: null,
|
|
1272
|
+
hasNextPage: false,
|
|
1273
|
+
},
|
|
1274
|
+
nodes: [
|
|
1275
|
+
{
|
|
1276
|
+
id: 'issue-with-comments',
|
|
1277
|
+
content: {
|
|
1278
|
+
url: 'https://github.com/owner/repo/issues/1',
|
|
1279
|
+
title: 'Issue With Comments',
|
|
1280
|
+
number: 1,
|
|
1281
|
+
labels: {
|
|
1282
|
+
nodes: [],
|
|
1283
|
+
},
|
|
1284
|
+
comments: {
|
|
1285
|
+
nodes: [
|
|
1286
|
+
{
|
|
1287
|
+
author: {
|
|
1288
|
+
login: 'user1',
|
|
1289
|
+
},
|
|
1290
|
+
body: 'First comment',
|
|
1291
|
+
createdAt: '2024-01-15T10:00:00Z',
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
author: {
|
|
1295
|
+
login: 'user2',
|
|
1296
|
+
},
|
|
1297
|
+
body: 'Second comment',
|
|
1298
|
+
createdAt: '2024-01-16T12:00:00Z',
|
|
1299
|
+
},
|
|
1300
|
+
],
|
|
1301
|
+
},
|
|
1302
|
+
},
|
|
1303
|
+
fieldValues: {
|
|
1304
|
+
nodes: [
|
|
1305
|
+
{
|
|
1306
|
+
name: 'Todo',
|
|
1307
|
+
field: {
|
|
1308
|
+
name: 'Status',
|
|
1309
|
+
},
|
|
1310
|
+
},
|
|
1311
|
+
],
|
|
1312
|
+
},
|
|
1313
|
+
},
|
|
1314
|
+
],
|
|
1315
|
+
},
|
|
1316
|
+
},
|
|
1317
|
+
},
|
|
1318
|
+
},
|
|
1319
|
+
}),
|
|
1320
|
+
});
|
|
1321
|
+
|
|
1322
|
+
const result = await repository.get(
|
|
1323
|
+
'https://github.com/owner/repo/issues/1',
|
|
1324
|
+
mockProject,
|
|
1325
|
+
);
|
|
1326
|
+
|
|
1327
|
+
expect(result).toEqual({
|
|
1328
|
+
id: 'issue-with-comments',
|
|
1329
|
+
url: 'https://github.com/owner/repo/issues/1',
|
|
1330
|
+
title: 'Issue With Comments',
|
|
1331
|
+
labels: [],
|
|
1332
|
+
status: 'Todo',
|
|
1333
|
+
comments: [
|
|
1334
|
+
{
|
|
1335
|
+
author: 'user1',
|
|
1336
|
+
content: 'First comment',
|
|
1337
|
+
createdAt: new Date('2024-01-15T10:00:00Z'),
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
author: 'user2',
|
|
1341
|
+
content: 'Second comment',
|
|
1342
|
+
createdAt: new Date('2024-01-16T12:00:00Z'),
|
|
1343
|
+
},
|
|
1344
|
+
],
|
|
1345
|
+
});
|
|
1346
|
+
});
|
|
1347
|
+
|
|
1348
|
+
it('should handle comments with null author', async () => {
|
|
1349
|
+
mockFetch.mockResolvedValueOnce({
|
|
1350
|
+
ok: true,
|
|
1351
|
+
json: jest.fn().mockResolvedValue({
|
|
1352
|
+
data: {
|
|
1353
|
+
organization: {
|
|
1354
|
+
projectV2: {
|
|
1355
|
+
items: {
|
|
1356
|
+
totalCount: 1,
|
|
1357
|
+
pageInfo: {
|
|
1358
|
+
endCursor: null,
|
|
1359
|
+
hasNextPage: false,
|
|
1360
|
+
},
|
|
1361
|
+
nodes: [
|
|
1362
|
+
{
|
|
1363
|
+
id: 'issue-null-author',
|
|
1364
|
+
content: {
|
|
1365
|
+
url: 'https://github.com/owner/repo/issues/1',
|
|
1366
|
+
title: 'Issue With Null Author Comment',
|
|
1367
|
+
number: 1,
|
|
1368
|
+
labels: {
|
|
1369
|
+
nodes: [],
|
|
1370
|
+
},
|
|
1371
|
+
comments: {
|
|
1372
|
+
nodes: [
|
|
1373
|
+
{
|
|
1374
|
+
author: null,
|
|
1375
|
+
body: 'Comment from deleted user',
|
|
1376
|
+
createdAt: '2024-01-15T10:00:00Z',
|
|
1377
|
+
},
|
|
1378
|
+
],
|
|
1379
|
+
},
|
|
1380
|
+
},
|
|
1381
|
+
fieldValues: {
|
|
1382
|
+
nodes: [
|
|
1383
|
+
{
|
|
1384
|
+
name: 'Todo',
|
|
1385
|
+
field: {
|
|
1386
|
+
name: 'Status',
|
|
1387
|
+
},
|
|
1388
|
+
},
|
|
1389
|
+
],
|
|
1390
|
+
},
|
|
1391
|
+
},
|
|
1392
|
+
],
|
|
1393
|
+
},
|
|
1394
|
+
},
|
|
1395
|
+
},
|
|
1396
|
+
},
|
|
1397
|
+
}),
|
|
1398
|
+
});
|
|
1399
|
+
|
|
1400
|
+
const result = await repository.get(
|
|
1401
|
+
'https://github.com/owner/repo/issues/1',
|
|
1402
|
+
mockProject,
|
|
1403
|
+
);
|
|
1404
|
+
|
|
1405
|
+
expect(result?.comments).toEqual([
|
|
1406
|
+
{
|
|
1407
|
+
author: '',
|
|
1408
|
+
content: 'Comment from deleted user',
|
|
1409
|
+
createdAt: new Date('2024-01-15T10:00:00Z'),
|
|
1410
|
+
},
|
|
1411
|
+
]);
|
|
1412
|
+
});
|
|
1241
1413
|
});
|
|
1242
1414
|
});
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { IssueRepository } from '../../domain/usecases/adapter-interfaces/IssueRepository';
|
|
2
2
|
import { Issue } from '../../domain/entities/Issue';
|
|
3
3
|
import { Project } from '../../domain/entities/Project';
|
|
4
|
+
import { Comment } from '../../domain/entities/Comment';
|
|
5
|
+
|
|
6
|
+
type CommentNode = {
|
|
7
|
+
author: {
|
|
8
|
+
login: string;
|
|
9
|
+
} | null;
|
|
10
|
+
body: string;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
};
|
|
4
13
|
|
|
5
14
|
type ProjectItem = {
|
|
6
15
|
id: string;
|
|
@@ -11,6 +20,9 @@ type ProjectItem = {
|
|
|
11
20
|
labels: {
|
|
12
21
|
nodes: Array<{ name: string }>;
|
|
13
22
|
};
|
|
23
|
+
comments?: {
|
|
24
|
+
nodes: CommentNode[];
|
|
25
|
+
};
|
|
14
26
|
};
|
|
15
27
|
fieldValues?: {
|
|
16
28
|
nodes: Array<{
|
|
@@ -156,6 +168,15 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
156
168
|
name
|
|
157
169
|
}
|
|
158
170
|
}
|
|
171
|
+
comments(first: 100) {
|
|
172
|
+
nodes {
|
|
173
|
+
author {
|
|
174
|
+
login
|
|
175
|
+
}
|
|
176
|
+
body
|
|
177
|
+
createdAt
|
|
178
|
+
}
|
|
179
|
+
}
|
|
159
180
|
}
|
|
160
181
|
... on PullRequest {
|
|
161
182
|
url
|
|
@@ -166,6 +187,15 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
166
187
|
name
|
|
167
188
|
}
|
|
168
189
|
}
|
|
190
|
+
comments(first: 100) {
|
|
191
|
+
nodes {
|
|
192
|
+
author {
|
|
193
|
+
login
|
|
194
|
+
}
|
|
195
|
+
body
|
|
196
|
+
createdAt
|
|
197
|
+
}
|
|
198
|
+
}
|
|
169
199
|
}
|
|
170
200
|
}
|
|
171
201
|
fieldValues(first: 20) {
|
|
@@ -213,6 +243,15 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
213
243
|
name
|
|
214
244
|
}
|
|
215
245
|
}
|
|
246
|
+
comments(first: 100) {
|
|
247
|
+
nodes {
|
|
248
|
+
author {
|
|
249
|
+
login
|
|
250
|
+
}
|
|
251
|
+
body
|
|
252
|
+
createdAt
|
|
253
|
+
}
|
|
254
|
+
}
|
|
216
255
|
}
|
|
217
256
|
... on PullRequest {
|
|
218
257
|
url
|
|
@@ -223,6 +262,15 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
223
262
|
name
|
|
224
263
|
}
|
|
225
264
|
}
|
|
265
|
+
comments(first: 100) {
|
|
266
|
+
nodes {
|
|
267
|
+
author {
|
|
268
|
+
login
|
|
269
|
+
}
|
|
270
|
+
body
|
|
271
|
+
createdAt
|
|
272
|
+
}
|
|
273
|
+
}
|
|
226
274
|
}
|
|
227
275
|
}
|
|
228
276
|
fieldValues(first: 20) {
|
|
@@ -254,6 +302,17 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
254
302
|
`;
|
|
255
303
|
}
|
|
256
304
|
|
|
305
|
+
private mapCommentsToEntity(
|
|
306
|
+
commentNodes: CommentNode[] | undefined,
|
|
307
|
+
): Comment[] {
|
|
308
|
+
if (!commentNodes) return [];
|
|
309
|
+
return commentNodes.map((node) => ({
|
|
310
|
+
author: node.author?.login || '',
|
|
311
|
+
content: node.body,
|
|
312
|
+
createdAt: new Date(node.createdAt),
|
|
313
|
+
}));
|
|
314
|
+
}
|
|
315
|
+
|
|
257
316
|
private async getStatusOptionId(
|
|
258
317
|
project: Project,
|
|
259
318
|
statusName: string,
|
|
@@ -425,6 +484,7 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
425
484
|
title: item.content.title,
|
|
426
485
|
labels: item.content.labels?.nodes?.map((l) => l.name) || [],
|
|
427
486
|
status,
|
|
487
|
+
comments: this.mapCommentsToEntity(item.content.comments?.nodes),
|
|
428
488
|
});
|
|
429
489
|
}
|
|
430
490
|
|
|
@@ -553,6 +613,7 @@ export class GitHubIssueRepository implements IssueRepository {
|
|
|
553
613
|
title: item.content.title,
|
|
554
614
|
labels: item.content.labels?.nodes?.map((l) => l.name) || [],
|
|
555
615
|
status,
|
|
616
|
+
comments: this.mapCommentsToEntity(item.content.comments?.nodes),
|
|
556
617
|
};
|
|
557
618
|
}
|
|
558
619
|
}
|
|
@@ -47,6 +47,7 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
47
47
|
title: 'Test Issue',
|
|
48
48
|
labels: [],
|
|
49
49
|
status: 'Preparation',
|
|
50
|
+
comments: [],
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -92,6 +93,7 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
92
93
|
title: 'Test Issue',
|
|
93
94
|
labels: [],
|
|
94
95
|
status: 'Done',
|
|
96
|
+
comments: [],
|
|
95
97
|
};
|
|
96
98
|
|
|
97
99
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -46,6 +46,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
46
46
|
title: 'Issue 1',
|
|
47
47
|
labels: ['category:impl'],
|
|
48
48
|
status: 'Awaiting Workspace',
|
|
49
|
+
comments: [],
|
|
49
50
|
},
|
|
50
51
|
];
|
|
51
52
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -81,6 +82,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
81
82
|
title: 'Issue 1',
|
|
82
83
|
labels: [],
|
|
83
84
|
status: 'Awaiting Workspace',
|
|
85
|
+
comments: [],
|
|
84
86
|
},
|
|
85
87
|
{
|
|
86
88
|
id: '2',
|
|
@@ -88,6 +90,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
88
90
|
title: 'Issue 2',
|
|
89
91
|
labels: [],
|
|
90
92
|
status: 'Awaiting Workspace',
|
|
93
|
+
comments: [],
|
|
91
94
|
},
|
|
92
95
|
];
|
|
93
96
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -119,6 +122,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
119
122
|
title: `Issue ${i + 1}`,
|
|
120
123
|
labels: [],
|
|
121
124
|
status: 'Preparation',
|
|
125
|
+
comments: [],
|
|
122
126
|
}));
|
|
123
127
|
const awaitingIssues: Issue[] = [
|
|
124
128
|
{
|
|
@@ -127,6 +131,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
127
131
|
title: 'Issue 7',
|
|
128
132
|
labels: [],
|
|
129
133
|
status: 'Awaiting Workspace',
|
|
134
|
+
comments: [],
|
|
130
135
|
},
|
|
131
136
|
];
|
|
132
137
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -155,6 +160,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
155
160
|
title: 'Issue 1',
|
|
156
161
|
labels: ['category:impl'],
|
|
157
162
|
status: 'Awaiting Workspace',
|
|
163
|
+
comments: [],
|
|
158
164
|
},
|
|
159
165
|
];
|
|
160
166
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -185,6 +191,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
185
191
|
title: 'Issue 1',
|
|
186
192
|
labels: ['category:impl'],
|
|
187
193
|
status: 'Awaiting Workspace',
|
|
194
|
+
comments: [],
|
|
188
195
|
},
|
|
189
196
|
];
|
|
190
197
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
@@ -213,6 +220,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
213
220
|
title: 'Issue 1',
|
|
214
221
|
labels: [],
|
|
215
222
|
status: 'Awaiting Workspace',
|
|
223
|
+
comments: [],
|
|
216
224
|
};
|
|
217
225
|
let popCallCount = 0;
|
|
218
226
|
const issuesWithMockedPop: Issue[] = [awaitingIssue, awaitingIssue];
|
|
@@ -255,6 +263,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
255
263
|
title: `Issue ${i + 1}`,
|
|
256
264
|
labels: [],
|
|
257
265
|
status: 'Awaiting Workspace',
|
|
266
|
+
comments: [],
|
|
258
267
|
}));
|
|
259
268
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
260
269
|
mockIssueRepository.getAllOpened.mockResolvedValueOnce(awaitingIssues);
|
|
@@ -280,6 +289,7 @@ describe('StartPreparationUseCase', () => {
|
|
|
280
289
|
title: `Issue ${i + 1}`,
|
|
281
290
|
labels: [],
|
|
282
291
|
status: 'Awaiting Workspace',
|
|
292
|
+
comments: [],
|
|
283
293
|
}));
|
|
284
294
|
mockProjectRepository.getByUrl.mockResolvedValue(mockProject);
|
|
285
295
|
mockIssueRepository.getAllOpened.mockResolvedValueOnce(awaitingIssues);
|
|
@@ -6,6 +6,7 @@ export declare class GitHubIssueRepository implements IssueRepository {
|
|
|
6
6
|
constructor(token: string);
|
|
7
7
|
private parseProjectInfo;
|
|
8
8
|
private buildProjectItemsQuery;
|
|
9
|
+
private mapCommentsToEntity;
|
|
9
10
|
private getStatusOptionId;
|
|
10
11
|
getAllOpened(project: Project): Promise<Issue[]>;
|
|
11
12
|
update(issue: Issue, project: Project): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitHubIssueRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/GitHubIssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"GitHubIssueRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/GitHubIssueRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AA8HxD,qBAAa,qBAAsB,YAAW,eAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAE1C,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,sBAAsB;IA6J9B,OAAO,CAAC,mBAAmB;YAWb,iBAAiB;IA4GzB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IA0EhD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DrD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;CAsErE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Comment.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Issue.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Issue.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Issue.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/Issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC"}
|