github-project-manager 0.2.0 → 0.2.1

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.
Files changed (63) hide show
  1. package/apps/backend/dist/modules/milestone/milestone.controller.d.ts +12 -0
  2. package/apps/backend/dist/modules/milestone/milestone.controller.js +59 -0
  3. package/apps/backend/dist/modules/milestone/milestone.controller.js.map +1 -0
  4. package/apps/backend/dist/modules/milestone/milestone.module.js +7 -2
  5. package/apps/backend/dist/modules/milestone/milestone.module.js.map +1 -1
  6. package/apps/backend/dist/modules/milestone/milestone.service.d.ts +15 -0
  7. package/apps/backend/dist/modules/milestone/milestone.service.js +75 -0
  8. package/apps/backend/dist/modules/milestone/milestone.service.js.map +1 -0
  9. package/apps/backend/dist/modules/project/project.controller.d.ts +1 -0
  10. package/apps/backend/dist/modules/project/project.controller.js +16 -0
  11. package/apps/backend/dist/modules/project/project.controller.js.map +1 -1
  12. package/apps/backend/dist/modules/project/project.entity.d.ts +2 -0
  13. package/apps/backend/dist/modules/project/project.entity.js +10 -0
  14. package/apps/backend/dist/modules/project/project.entity.js.map +1 -1
  15. package/apps/backend/dist/modules/project/project.service.d.ts +1 -0
  16. package/apps/backend/dist/modules/project/project.service.js +3 -0
  17. package/apps/backend/dist/modules/project/project.service.js.map +1 -1
  18. package/apps/backend/dist/modules/sync/github.service.d.ts +18 -0
  19. package/apps/backend/dist/modules/sync/github.service.js +14 -4
  20. package/apps/backend/dist/modules/sync/github.service.js.map +1 -1
  21. package/apps/backend/dist/modules/sync/sync.controller.d.ts +3 -2
  22. package/apps/backend/dist/modules/sync/sync.controller.js +29 -6
  23. package/apps/backend/dist/modules/sync/sync.controller.js.map +1 -1
  24. package/apps/backend/dist/modules/sync/sync.module.js +2 -1
  25. package/apps/backend/dist/modules/sync/sync.module.js.map +1 -1
  26. package/apps/backend/dist/modules/sync/sync.service.d.ts +5 -1
  27. package/apps/backend/dist/modules/sync/sync.service.js +80 -2
  28. package/apps/backend/dist/modules/sync/sync.service.js.map +1 -1
  29. package/apps/backend/dist/modules/task/task.controller.d.ts +6 -6
  30. package/apps/backend/dist/modules/task/task.controller.js +41 -27
  31. package/apps/backend/dist/modules/task/task.controller.js.map +1 -1
  32. package/apps/backend/dist/modules/task/task.entity.d.ts +10 -1
  33. package/apps/backend/dist/modules/task/task.entity.js +27 -0
  34. package/apps/backend/dist/modules/task/task.entity.js.map +1 -1
  35. package/apps/backend/dist/modules/task/task.service.js +2 -2
  36. package/apps/backend/dist/modules/task/task.service.js.map +1 -1
  37. package/apps/cli/dist/commands/hooks.d.ts +11 -0
  38. package/apps/cli/dist/commands/hooks.js +113 -0
  39. package/apps/cli/dist/commands/hooks.js.map +1 -0
  40. package/apps/cli/dist/commands/init.d.ts +4 -1
  41. package/apps/cli/dist/commands/init.js +16 -1
  42. package/apps/cli/dist/commands/init.js.map +1 -1
  43. package/apps/cli/dist/hooks/hook-registry.d.ts +9 -0
  44. package/apps/cli/dist/hooks/hook-registry.js +29 -0
  45. package/apps/cli/dist/hooks/hook-registry.js.map +1 -0
  46. package/apps/cli/dist/index.js +23 -2
  47. package/apps/cli/dist/index.js.map +1 -1
  48. package/apps/cli/dist/utils/settings.d.ts +10 -0
  49. package/apps/cli/dist/utils/settings.js +93 -0
  50. package/apps/cli/dist/utils/settings.js.map +1 -0
  51. package/apps/cli/dist/utils/template.d.ts +1 -0
  52. package/apps/cli/dist/utils/template.js +20 -0
  53. package/apps/cli/dist/utils/template.js.map +1 -0
  54. package/apps/frontend/dist/assets/index-C-VkfAuU.css +1 -0
  55. package/apps/frontend/dist/assets/index-CJ-smTcW.js +92 -0
  56. package/apps/frontend/dist/index.html +2 -2
  57. package/package.json +2 -2
  58. package/templates/claude-settings-hooks.json +35 -0
  59. package/templates/hooks/gpm-commit-linker.sh +72 -0
  60. package/templates/hooks/gpm-response-suggest.sh +63 -0
  61. package/templates/hooks/gpm-session-briefing.sh +104 -0
  62. package/apps/frontend/dist/assets/index-5kQElBCK.css +0 -1
  63. package/apps/frontend/dist/assets/index-DzMlDUgv.js +0 -60
@@ -0,0 +1,12 @@
1
+ import { MilestoneService } from './milestone.service';
2
+ export declare class MilestoneController {
3
+ private readonly milestoneService;
4
+ constructor(milestoneService: MilestoneService);
5
+ findAll(projectId?: string): Promise<(import("./milestone.entity").Milestone & {
6
+ taskCount: number;
7
+ doneCount: number;
8
+ })[]>;
9
+ findOne(id: number): Promise<import("./milestone.entity").Milestone & {
10
+ tasks: import("../task/task.entity").Task[];
11
+ }>;
12
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MilestoneController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const milestone_service_1 = require("./milestone.service");
18
+ let MilestoneController = class MilestoneController {
19
+ milestoneService;
20
+ constructor(milestoneService) {
21
+ this.milestoneService = milestoneService;
22
+ }
23
+ async findAll(projectId) {
24
+ if (!projectId) {
25
+ throw new common_1.BadRequestException('projectId query parameter is required');
26
+ }
27
+ const parsed = Number(projectId);
28
+ if (Number.isNaN(parsed)) {
29
+ throw new common_1.BadRequestException('projectId must be a number');
30
+ }
31
+ return this.milestoneService.findAllByProject(parsed);
32
+ }
33
+ async findOne(id) {
34
+ const milestone = await this.milestoneService.findOne(id);
35
+ if (!milestone)
36
+ throw new common_1.NotFoundException(`Milestone #${id} not found`);
37
+ return milestone;
38
+ }
39
+ };
40
+ exports.MilestoneController = MilestoneController;
41
+ __decorate([
42
+ (0, common_1.Get)(),
43
+ __param(0, (0, common_1.Query)('projectId')),
44
+ __metadata("design:type", Function),
45
+ __metadata("design:paramtypes", [String]),
46
+ __metadata("design:returntype", Promise)
47
+ ], MilestoneController.prototype, "findAll", null);
48
+ __decorate([
49
+ (0, common_1.Get)(':id'),
50
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", [Number]),
53
+ __metadata("design:returntype", Promise)
54
+ ], MilestoneController.prototype, "findOne", null);
55
+ exports.MilestoneController = MilestoneController = __decorate([
56
+ (0, common_1.Controller)('milestones'),
57
+ __metadata("design:paramtypes", [milestone_service_1.MilestoneService])
58
+ ], MilestoneController);
59
+ //# sourceMappingURL=milestone.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.controller.js","sourceRoot":"","sources":["../../../src/modules/milestone/milestone.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,2DAAuD;AAGhD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAG7D,AAAN,KAAK,CAAC,OAAO,CAAqB,SAAkB;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,4BAAmB,CAAC,uCAAuC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAmB,CAAC,4BAA4B,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAA4B,EAAU;QACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,0BAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AArBY,kDAAmB;AAIxB;IADL,IAAA,YAAG,GAAE;IACS,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;kDAShC;AAGK;IADL,IAAA,YAAG,EAAC,KAAK,CAAC;IACI,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;kDAIvC;8BApBU,mBAAmB;IAD/B,IAAA,mBAAU,EAAC,YAAY,CAAC;qCAEwB,oCAAgB;GADpD,mBAAmB,CAqB/B"}
@@ -10,13 +10,18 @@ exports.MilestoneModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const typeorm_1 = require("@nestjs/typeorm");
12
12
  const milestone_entity_1 = require("./milestone.entity");
13
+ const milestone_service_1 = require("./milestone.service");
14
+ const milestone_controller_1 = require("./milestone.controller");
15
+ const task_entity_1 = require("../task/task.entity");
13
16
  let MilestoneModule = class MilestoneModule {
14
17
  };
15
18
  exports.MilestoneModule = MilestoneModule;
16
19
  exports.MilestoneModule = MilestoneModule = __decorate([
17
20
  (0, common_1.Module)({
18
- imports: [typeorm_1.TypeOrmModule.forFeature([milestone_entity_1.Milestone])],
19
- exports: [typeorm_1.TypeOrmModule],
21
+ imports: [typeorm_1.TypeOrmModule.forFeature([milestone_entity_1.Milestone, task_entity_1.Task])],
22
+ controllers: [milestone_controller_1.MilestoneController],
23
+ providers: [milestone_service_1.MilestoneService],
24
+ exports: [milestone_service_1.MilestoneService, typeorm_1.TypeOrmModule],
20
25
  })
21
26
  ], MilestoneModule);
22
27
  //# sourceMappingURL=milestone.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"milestone.module.js","sourceRoot":"","sources":["../../../src/modules/milestone/milestone.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,yDAA+C;AAMxC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAJ3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,4BAAS,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC,uBAAa,CAAC;KACzB,CAAC;GACW,eAAe,CAAG"}
1
+ {"version":3,"file":"milestone.module.js","sourceRoot":"","sources":["../../../src/modules/milestone/milestone.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,yDAA+C;AAC/C,2DAAuD;AACvD,iEAA6D;AAC7D,qDAA2C;AAQpC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAN3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,4BAAS,EAAE,kBAAI,CAAC,CAAC,CAAC;QACtD,WAAW,EAAE,CAAC,0CAAmB,CAAC;QAClC,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,oCAAgB,EAAE,uBAAa,CAAC;KAC3C,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,15 @@
1
+ import { Repository } from 'typeorm';
2
+ import { Milestone } from './milestone.entity';
3
+ import { Task } from '../task/task.entity';
4
+ export declare class MilestoneService {
5
+ private readonly milestoneRepo;
6
+ private readonly taskRepo;
7
+ constructor(milestoneRepo: Repository<Milestone>, taskRepo: Repository<Task>);
8
+ findAllByProject(projectId: number): Promise<(Milestone & {
9
+ taskCount: number;
10
+ doneCount: number;
11
+ })[]>;
12
+ findOne(id: number): Promise<(Milestone & {
13
+ tasks: Task[];
14
+ }) | null>;
15
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MilestoneService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const milestone_entity_1 = require("./milestone.entity");
20
+ const task_entity_1 = require("../task/task.entity");
21
+ let MilestoneService = class MilestoneService {
22
+ milestoneRepo;
23
+ taskRepo;
24
+ constructor(milestoneRepo, taskRepo) {
25
+ this.milestoneRepo = milestoneRepo;
26
+ this.taskRepo = taskRepo;
27
+ }
28
+ async findAllByProject(projectId) {
29
+ const milestones = await this.milestoneRepo.find({
30
+ where: { projectId },
31
+ order: { dueDate: 'ASC' },
32
+ });
33
+ if (milestones.length === 0)
34
+ return [];
35
+ const milestoneIds = milestones.map((m) => m.id);
36
+ const counts = await this.taskRepo
37
+ .createQueryBuilder('task')
38
+ .select('task.milestoneId', 'milestoneId')
39
+ .addSelect('COUNT(*)', 'total')
40
+ .addSelect('SUM(CASE WHEN task.status = :done THEN 1 ELSE 0 END)', 'doneCount')
41
+ .where('task.milestoneId IN (:...milestoneIds)', { milestoneIds })
42
+ .setParameter('done', 'Done')
43
+ .groupBy('task.milestoneId')
44
+ .getRawMany();
45
+ const countMap = new Map(counts.map((c) => [c.milestoneId, { total: Number(c.total), done: Number(c.doneCount) }]));
46
+ return milestones.map((milestone) => {
47
+ const counts = countMap.get(milestone.id) ?? { total: 0, done: 0 };
48
+ return {
49
+ ...milestone,
50
+ taskCount: counts.total,
51
+ doneCount: counts.done,
52
+ };
53
+ });
54
+ }
55
+ async findOne(id) {
56
+ const milestone = await this.milestoneRepo.findOneBy({ id });
57
+ if (!milestone)
58
+ return null;
59
+ const tasks = await this.taskRepo.find({
60
+ where: { milestoneId: milestone.id },
61
+ relations: ['labels'],
62
+ order: { createdAt: 'DESC' },
63
+ });
64
+ return { ...milestone, tasks };
65
+ }
66
+ };
67
+ exports.MilestoneService = MilestoneService;
68
+ exports.MilestoneService = MilestoneService = __decorate([
69
+ (0, common_1.Injectable)(),
70
+ __param(0, (0, typeorm_1.InjectRepository)(milestone_entity_1.Milestone)),
71
+ __param(1, (0, typeorm_1.InjectRepository)(task_entity_1.Task)),
72
+ __metadata("design:paramtypes", [typeorm_2.Repository,
73
+ typeorm_2.Repository])
74
+ ], MilestoneService);
75
+ //# sourceMappingURL=milestone.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.service.js","sourceRoot":"","sources":["../../../src/modules/milestone/milestone.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,yDAA+C;AAC/C,qDAA2C;AAGpC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGR;IAEA;IAJnB,YAEmB,aAAoC,EAEpC,QAA0B;QAF1B,kBAAa,GAAb,aAAa,CAAuB;QAEpC,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAEJ,KAAK,CAAC,gBAAgB,CACpB,SAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,KAAK,EAAE,EAAE,SAAS,EAAE;YACpB,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAGjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ;aAC/B,kBAAkB,CAAC,MAAM,CAAC;aAC1B,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC;aACzC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;aAC9B,SAAS,CAAC,sDAAsD,EAAE,WAAW,CAAC;aAC9E,KAAK,CAAC,wCAAwC,EAAE,EAAE,YAAY,EAAE,CAAC;aACjE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;aAC5B,OAAO,CAAC,kBAAkB,CAAC;aAC3B,UAAU,EAA6D,CAAC;QAE3E,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAC1F,CAAC;QAEF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACnE,OAAO;gBACL,GAAG,SAAS;gBACZ,SAAS,EAAE,MAAM,CAAC,KAAK;gBACvB,SAAS,EAAE,MAAM,CAAC,IAAI;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CACX,EAAU;QAEV,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrC,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;YACpC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;CACF,CAAA;AA3DY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,4BAAS,CAAC,CAAA;IAE3B,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCADS,oBAAU;QAEf,oBAAU;GAL5B,gBAAgB,CA2D5B"}
@@ -3,4 +3,5 @@ export declare class ProjectController {
3
3
  private readonly projectService;
4
4
  constructor(projectService: ProjectService);
5
5
  findAll(): Promise<import("./project.entity").Project[]>;
6
+ findOne(id: number): Promise<import("./project.entity").Project>;
6
7
  }
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.ProjectController = void 0;
13
16
  const common_1 = require("@nestjs/common");
@@ -20,6 +23,12 @@ let ProjectController = class ProjectController {
20
23
  async findAll() {
21
24
  return this.projectService.findAll();
22
25
  }
26
+ async findOne(id) {
27
+ const project = await this.projectService.findById(id);
28
+ if (!project)
29
+ throw new common_1.NotFoundException(`Project #${id} not found`);
30
+ return project;
31
+ }
23
32
  };
24
33
  exports.ProjectController = ProjectController;
25
34
  __decorate([
@@ -28,6 +37,13 @@ __decorate([
28
37
  __metadata("design:paramtypes", []),
29
38
  __metadata("design:returntype", Promise)
30
39
  ], ProjectController.prototype, "findAll", null);
40
+ __decorate([
41
+ (0, common_1.Get)(':id'),
42
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
43
+ __metadata("design:type", Function),
44
+ __metadata("design:paramtypes", [Number]),
45
+ __metadata("design:returntype", Promise)
46
+ ], ProjectController.prototype, "findOne", null);
31
47
  exports.ProjectController = ProjectController = __decorate([
32
48
  (0, common_1.Controller)('projects'),
33
49
  __metadata("design:paramtypes", [project_service_1.ProjectService])
@@ -1 +1 @@
1
- {"version":3,"file":"project.controller.js","sourceRoot":"","sources":["../../../src/modules/project/project.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,uDAAmD;AAG5C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAGzD,AAAN,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;CACF,CAAA;AAPY,8CAAiB;AAItB;IADL,IAAA,YAAG,GAAE;;;;gDAGL;4BANU,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,UAAU,CAAC;qCAEwB,gCAAc;GADhD,iBAAiB,CAO7B"}
1
+ {"version":3,"file":"project.controller.js","sourceRoot":"","sources":["../../../src/modules/project/project.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyF;AACzF,uDAAmD;AAG5C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAGzD,AAAN,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAA4B,EAAU;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,0BAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAdY,8CAAiB;AAItB;IADL,IAAA,YAAG,GAAE;;;;gDAGL;AAGK;IADL,IAAA,YAAG,EAAC,KAAK,CAAC;IACI,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;gDAIvC;4BAbU,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,UAAU,CAAC;qCAEwB,gCAAc;GADhD,iBAAiB,CAc7B"}
@@ -10,6 +10,8 @@ export declare class Project {
10
10
  projectNumber: number;
11
11
  projectUrl: string;
12
12
  githubProjectId: string;
13
+ statusOptions: string[] | null;
14
+ statusOptionsFetchedAt: Date | null;
13
15
  createdAt: Date;
14
16
  updatedAt: Date;
15
17
  tasks: Task[];
@@ -23,6 +23,8 @@ let Project = class Project {
23
23
  projectNumber;
24
24
  projectUrl;
25
25
  githubProjectId;
26
+ statusOptions;
27
+ statusOptionsFetchedAt;
26
28
  createdAt;
27
29
  updatedAt;
28
30
  tasks;
@@ -59,6 +61,14 @@ __decorate([
59
61
  (0, typeorm_1.Column)({ name: 'github_project_id', nullable: true }),
60
62
  __metadata("design:type", String)
61
63
  ], Project.prototype, "githubProjectId", void 0);
64
+ __decorate([
65
+ (0, typeorm_1.Column)({ name: 'status_options', type: 'simple-json', nullable: true }),
66
+ __metadata("design:type", Object)
67
+ ], Project.prototype, "statusOptions", void 0);
68
+ __decorate([
69
+ (0, typeorm_1.Column)({ name: 'status_options_fetched_at', type: 'datetime', nullable: true }),
70
+ __metadata("design:type", Object)
71
+ ], Project.prototype, "statusOptionsFetchedAt", void 0);
62
72
  __decorate([
63
73
  (0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
64
74
  __metadata("design:type", Date)
@@ -1 +1 @@
1
- {"version":3,"file":"project.entity.js","sourceRoot":"","sources":["../../../src/modules/project/project.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQiB;AACjB,qDAA2C;AAC3C,wDAA8C;AAC9C,oEAA0D;AAC1D,6DAAkD;AAI3C,IAAM,OAAO,GAAb,MAAM,OAAO;IAElB,EAAE,CAAS;IAGX,KAAK,CAAS;IAGd,SAAS,CAAS;IAGlB,IAAI,CAAS;IAGb,aAAa,CAAS;IAGtB,UAAU,CAAS;IAGnB,eAAe,CAAS;IAGxB,SAAS,CAAO;IAGhB,SAAS,CAAO;IAGhB,KAAK,CAAS;IAGd,MAAM,CAAU;IAGhB,UAAU,CAAc;IAGxB,QAAQ,CAAY;CACrB,CAAA;AAvCY,0BAAO;AAElB;IADC,IAAA,gCAAsB,GAAE;;mCACd;AAGX;IADC,IAAA,gBAAM,GAAE;;sCACK;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;;0CACtC;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACd;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;;8CACb;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;2CACb;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC9B;AAGxB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;0CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;0CAAC;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;sCAChC;AAGd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oBAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;;uCACjC;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4BAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;;2CACrC;AAGxB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;;yCACnC;kBAtCT,OAAO;IAFnB,IAAA,gBAAM,EAAC,UAAU,CAAC;IAClB,IAAA,gBAAM,EAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;GACtB,OAAO,CAuCnB"}
1
+ {"version":3,"file":"project.entity.js","sourceRoot":"","sources":["../../../src/modules/project/project.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAQiB;AACjB,qDAA2C;AAC3C,wDAA8C;AAC9C,oEAA0D;AAC1D,6DAAkD;AAI3C,IAAM,OAAO,GAAb,MAAM,OAAO;IAElB,EAAE,CAAS;IAGX,KAAK,CAAS;IAGd,SAAS,CAAS;IAGlB,IAAI,CAAS;IAGb,aAAa,CAAS;IAGtB,UAAU,CAAS;IAGnB,eAAe,CAAS;IAGxB,aAAa,CAAkB;IAG/B,sBAAsB,CAAc;IAGpC,SAAS,CAAO;IAGhB,SAAS,CAAO;IAGhB,KAAK,CAAS;IAGd,MAAM,CAAU;IAGhB,UAAU,CAAc;IAGxB,QAAQ,CAAY;CACrB,CAAA;AA7CY,0BAAO;AAElB;IADC,IAAA,gCAAsB,GAAE;;mCACd;AAGX;IADC,IAAA,gBAAM,GAAE;;sCACK;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;;0CACtC;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACd;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;;8CACb;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;2CACb;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC9B;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACzC;AAG/B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDAC5C;AAGpC;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;0CAAC;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC9B,IAAI;0CAAC;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;sCAChC;AAGd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oBAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;;uCACjC;AAGhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4BAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;;2CACrC;AAGxB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;;yCACnC;kBA5CT,OAAO;IAFnB,IAAA,gBAAM,EAAC,UAAU,CAAC;IAClB,IAAA,gBAAM,EAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;GACtB,OAAO,CA6CnB"}
@@ -7,4 +7,5 @@ export declare class ProjectService {
7
7
  findById(id: number): Promise<Project | null>;
8
8
  findOrCreate(owner: string, projectNumber: number, extra?: Partial<Pick<Project, 'ownerType' | 'repo' | 'projectUrl'>>): Promise<Project>;
9
9
  findByOwnerAndNumber(owner: string, projectNumber: number): Promise<Project | null>;
10
+ save(project: Project): Promise<Project>;
10
11
  }
@@ -49,6 +49,9 @@ let ProjectService = class ProjectService {
49
49
  async findByOwnerAndNumber(owner, projectNumber) {
50
50
  return this.projectRepo.findOneBy({ owner, projectNumber });
51
51
  }
52
+ async save(project) {
53
+ return this.projectRepo.save(project);
54
+ }
52
55
  };
53
56
  exports.ProjectService = ProjectService;
54
57
  exports.ProjectService = ProjectService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../../src/modules/project/project.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,qDAA2C;AAGpC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGN;IAFnB,YAEmB,WAAgC;QAAhC,gBAAW,GAAX,WAAW,CAAqB;IAChD,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,aAAqB,EACrB,KAAmE;QAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACtC,KAAK;YACL,aAAa;YACb,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,EAAE;YACnC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,cAAc;YAC7C,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS;SAC/B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,aAAqB;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAzCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qCACI,oBAAU;GAH/B,cAAc,CAyC1B"}
1
+ {"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../../src/modules/project/project.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,qDAA2C;AAGpC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGN;IAFnB,YAEmB,WAAgC;QAAhC,gBAAW,GAAX,WAAW,CAAqB;IAChD,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,aAAqB,EACrB,KAAmE;QAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACtC,KAAK;YACL,aAAa;YACb,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,EAAE;YACnC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,cAAc;YAC7C,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS;SAC/B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,aAAqB;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AA7CY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qCACI,oBAAU;GAH/B,cAAc,CA6C1B"}
@@ -5,6 +5,14 @@ interface ProjectItem {
5
5
  title?: string;
6
6
  body?: string;
7
7
  updatedAt?: string;
8
+ headRefName?: string;
9
+ linkedBranches?: {
10
+ nodes: {
11
+ ref: {
12
+ name: string;
13
+ };
14
+ }[];
15
+ };
8
16
  labels?: {
9
17
  nodes: {
10
18
  name: string;
@@ -14,10 +22,20 @@ interface ProjectItem {
14
22
  assignees?: {
15
23
  nodes: {
16
24
  login: string;
25
+ avatarUrl: string;
17
26
  }[];
18
27
  };
28
+ author?: {
29
+ login: string;
30
+ avatarUrl: string;
31
+ } | null;
19
32
  milestone?: {
33
+ id: string;
20
34
  title: string;
35
+ description: string | null;
36
+ dueOn: string | null;
37
+ state: string;
38
+ number: number;
21
39
  } | null;
22
40
  } | null;
23
41
  fieldValues: {
@@ -64,25 +64,35 @@ let GitHubService = class GitHubService {
64
64
  title
65
65
  body
66
66
  updatedAt
67
+ author { login avatarUrl }
67
68
  labels(first: 20) {
68
69
  nodes { name color }
69
70
  }
70
71
  assignees(first: 10) {
71
- nodes { login }
72
+ nodes { login avatarUrl }
73
+ }
74
+ milestone { id title description dueOn state number }
75
+ linkedBranches(first: 1) {
76
+ nodes {
77
+ ref {
78
+ name
79
+ }
80
+ }
72
81
  }
73
- milestone { title }
74
82
  }
75
83
  ... on PullRequest {
76
84
  title
77
85
  body
78
86
  updatedAt
87
+ headRefName
88
+ author { login avatarUrl }
79
89
  labels(first: 20) {
80
90
  nodes { name color }
81
91
  }
82
92
  assignees(first: 10) {
83
- nodes { login }
93
+ nodes { login avatarUrl }
84
94
  }
85
- milestone { title }
95
+ milestone { id title description dueOn state number }
86
96
  }
87
97
  }
88
98
  fieldValues(first: 20) {
@@ -1 +1 @@
1
- {"version":3,"file":"github.service.js","sourceRoot":"","sources":["../../../src/modules/sync/github.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.service.js","sourceRoot":"","sources":["../../../src/modules/sync/github.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,8CAA2C;AAC3C,iDAAyC;AAwClC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAChB,QAAQ;QACd,IAAI,CAAC;YACH,OAAO,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAO,CAAC,QAAQ,CAAC;YACtB,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,KAAK,EAAE,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,SAAiB,EACjB,aAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1E,MAAM,KAAK,GAAG;;UAER,UAAU;;;;KAIf,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,SAAiB,EACjB,aAAqB,EACrB,MAAe;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1E,MAAM,KAAK,GAAG;;UAER,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqEf,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,GAAG,CAAC,KAAK,EAAE;YACnC,KAAK;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,MAAM,IAAI,IAAI;SACvB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;QAE7C,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;YAC1B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW;YAC/C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,SAAiB,EACjB,aAAqB;QAErB,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,GAAG,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YACnF,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,CAAC,QAAQ,MAAM,EAAE;QAEjB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,SAAiB,EACjB,aAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QAE1E,MAAM,KAAK,GAAG;;UAER,UAAU;;;;;;;;;;;;;;KAcf,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QAE9E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,aAAa,EAAE,WAAW,CAAC,OAAO;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,KAAa,EACb,IAAa;QAEb,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG;;;;;;;;;;KAUhB,CAAC;QAEF,MAAM,MAAM,GAAQ,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,SAAiB,EACjB,MAAc,EACd,OAAe,EACf,oBAA4B;QAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG;;;;;;;;;;;KAWhB,CAAC;QAEF,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG;;;;;;;;;KAShB,CAAC;QAEF,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAjQY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAiQzB"}
@@ -3,6 +3,7 @@ import { SyncService, SyncResult } from './sync.service';
3
3
  export declare class SyncController {
4
4
  private readonly syncService;
5
5
  constructor(syncService: SyncService);
6
- private getProject;
7
- pull(req: Request): Promise<SyncResult>;
6
+ private getProjectId;
7
+ pull(req: Request, projectId?: string): Promise<SyncResult>;
8
+ statusOptions(req: Request, projectId?: string, force?: string): Promise<string[]>;
8
9
  }
@@ -20,22 +20,45 @@ let SyncController = class SyncController {
20
20
  constructor(syncService) {
21
21
  this.syncService = syncService;
22
22
  }
23
- getProject(req) {
24
- return req.project;
23
+ getProjectId(req, queryProjectId) {
24
+ const project = req.project;
25
+ if (project?.id)
26
+ return project.id;
27
+ if (queryProjectId) {
28
+ const parsed = Number(queryProjectId);
29
+ if (Number.isNaN(parsed))
30
+ throw new common_1.BadRequestException('projectId must be a number');
31
+ return parsed;
32
+ }
33
+ throw new common_1.BadRequestException('projectId is required');
25
34
  }
26
- async pull(req) {
27
- const project = this.getProject(req);
28
- return this.syncService.pullSync(project.id);
35
+ async pull(req, projectId) {
36
+ const resolvedProjectId = this.getProjectId(req, projectId);
37
+ return this.syncService.pullSync(resolvedProjectId);
38
+ }
39
+ async statusOptions(req, projectId, force) {
40
+ const resolvedProjectId = this.getProjectId(req, projectId);
41
+ return this.syncService.getStatusOptions(resolvedProjectId, force === 'true');
29
42
  }
30
43
  };
31
44
  exports.SyncController = SyncController;
32
45
  __decorate([
33
46
  (0, common_1.Post)('pull'),
34
47
  __param(0, (0, common_1.Req)()),
48
+ __param(1, (0, common_1.Query)('projectId')),
35
49
  __metadata("design:type", Function),
36
- __metadata("design:paramtypes", [Object]),
50
+ __metadata("design:paramtypes", [Object, String]),
37
51
  __metadata("design:returntype", Promise)
38
52
  ], SyncController.prototype, "pull", null);
53
+ __decorate([
54
+ (0, common_1.Get)('status-options'),
55
+ __param(0, (0, common_1.Req)()),
56
+ __param(1, (0, common_1.Query)('projectId')),
57
+ __param(2, (0, common_1.Query)('force')),
58
+ __metadata("design:type", Function),
59
+ __metadata("design:paramtypes", [Object, String, String]),
60
+ __metadata("design:returntype", Promise)
61
+ ], SyncController.prototype, "statusOptions", null);
39
62
  exports.SyncController = SyncController = __decorate([
40
63
  (0, common_1.Controller)('sync'),
41
64
  __metadata("design:paramtypes", [sync_service_1.SyncService])
@@ -1 +1 @@
1
- {"version":3,"file":"sync.controller.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4D;AAE5D,iDAAyD;AAIlD,IAAM,cAAc,GAApB,MAAM,cAAc;IACI;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEjD,UAAU,CAAC,GAAY;QAC7B,OAAQ,GAAW,CAAC,OAAO,CAAC;IAC9B,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAQ,GAAY;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AAZY,wCAAc;AAQnB;IADL,IAAA,aAAI,EAAC,MAAM,CAAC;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0CAGhB;yBAXU,cAAc;IAD1B,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,0BAAW;GAD1C,cAAc,CAY1B"}
1
+ {"version":3,"file":"sync.controller.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AAExF,iDAAyD;AAGlD,IAAM,cAAc,GAApB,MAAM,cAAc;IACI;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEjD,YAAY,CAAC,GAAY,EAAE,cAAuB;QACxD,MAAM,OAAO,GAAI,GAAW,CAAC,OAAO,CAAC;QACrC,IAAI,OAAO,EAAE,EAAE;YAAE,OAAO,OAAO,CAAC,EAAE,CAAC;QACnC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,4BAAmB,CAAC,4BAA4B,CAAC,CAAC;YACtF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAQ,GAAY,EAAsB,SAAkB;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CACV,GAAY,EACC,SAAkB,EACtB,KAAc;QAE9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC;IAChF,CAAC;CACF,CAAA;AA7BY,wCAAc;AAenB;IADL,IAAA,aAAI,EAAC,MAAM,CAAC;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;0CAGlD;AAGK;IADL,IAAA,YAAG,EAAC,gBAAgB,CAAC;IAEnB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;IAClB,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;mDAIhB;yBA5BU,cAAc;IAD1B,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,0BAAW;GAD1C,cAAc,CA6B1B"}
@@ -11,6 +11,7 @@ const common_1 = require("@nestjs/common");
11
11
  const typeorm_1 = require("@nestjs/typeorm");
12
12
  const sync_log_entity_1 = require("./sync-log.entity");
13
13
  const task_entity_1 = require("../task/task.entity");
14
+ const milestone_entity_1 = require("../milestone/milestone.entity");
14
15
  const github_service_1 = require("./github.service");
15
16
  const sync_service_1 = require("./sync.service");
16
17
  const sync_controller_1 = require("./sync.controller");
@@ -19,7 +20,7 @@ let SyncModule = class SyncModule {
19
20
  exports.SyncModule = SyncModule;
20
21
  exports.SyncModule = SyncModule = __decorate([
21
22
  (0, common_1.Module)({
22
- imports: [typeorm_1.TypeOrmModule.forFeature([sync_log_entity_1.SyncLog, task_entity_1.Task])],
23
+ imports: [typeorm_1.TypeOrmModule.forFeature([sync_log_entity_1.SyncLog, task_entity_1.Task, milestone_entity_1.Milestone])],
23
24
  controllers: [sync_controller_1.SyncController],
24
25
  providers: [github_service_1.GitHubService, sync_service_1.SyncService],
25
26
  exports: [sync_service_1.SyncService, github_service_1.GitHubService],
@@ -1 +1 @@
1
- {"version":3,"file":"sync.module.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,uDAA4C;AAC5C,qDAA2C;AAC3C,qDAAiD;AACjD,iDAA6C;AAC7C,uDAAmD;AAQ5C,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IANtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,yBAAO,EAAE,kBAAI,CAAC,CAAC,CAAC;QACpD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,8BAAa,EAAE,0BAAW,CAAC;QACvC,OAAO,EAAE,CAAC,0BAAW,EAAE,8BAAa,CAAC;KACtC,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"sync.module.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,uDAA4C;AAC5C,qDAA2C;AAC3C,oEAA0D;AAC1D,qDAAiD;AACjD,iDAA6C;AAC7C,uDAAmD;AAQ5C,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IANtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,yBAAO,EAAE,kBAAI,EAAE,4BAAS,CAAC,CAAC,CAAC;QAC/D,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,8BAAa,EAAE,0BAAW,CAAC;QACvC,OAAO,EAAE,CAAC,0BAAW,EAAE,8BAAa,CAAC;KACtC,CAAC;GACW,UAAU,CAAG"}
@@ -1,5 +1,6 @@
1
1
  import { Repository } from 'typeorm';
2
2
  import { Task } from '../task/task.entity';
3
+ import { Milestone } from '../milestone/milestone.entity';
3
4
  import { SyncLog } from './sync-log.entity';
4
5
  import { GitHubService } from './github.service';
5
6
  import { ProjectService } from '../project/project.service';
@@ -13,12 +14,15 @@ export interface SyncResult {
13
14
  export declare class SyncService {
14
15
  private readonly taskRepo;
15
16
  private readonly syncLogRepo;
17
+ private readonly milestoneRepo;
16
18
  private readonly githubService;
17
19
  private readonly projectService;
18
- constructor(taskRepo: Repository<Task>, syncLogRepo: Repository<SyncLog>, githubService: GitHubService, projectService: ProjectService);
20
+ constructor(taskRepo: Repository<Task>, syncLogRepo: Repository<SyncLog>, milestoneRepo: Repository<Milestone>, githubService: GitHubService, projectService: ProjectService);
21
+ private batchUpsertMilestones;
19
22
  pullSync(projectDbId: number): Promise<SyncResult>;
20
23
  private ensureGithubProjectId;
21
24
  createTaskOnGitHub(projectDbId: number, title: string, body?: string): Promise<Task>;
22
25
  updateTaskStatusOnGitHub(projectDbId: number, taskId: number, status: string): Promise<Task | null>;
26
+ getStatusOptions(projectDbId: number, force?: boolean): Promise<string[]>;
23
27
  deleteTaskOnGitHub(projectDbId: number, taskId: number): Promise<boolean>;
24
28
  }