reviewflow 3.40.2 → 3.42.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 +33 -0
- package/dist/dashboard/index.html +32 -214
- package/dist/dashboard/modules/i18n.d.ts.map +1 -1
- package/dist/dashboard/modules/i18n.js +22 -2
- package/dist/dashboard/modules/i18n.js.map +1 -1
- package/dist/dashboard/modules/statsCharts.d.ts.map +1 -1
- package/dist/dashboard/modules/statsCharts.js +43 -28
- package/dist/dashboard/modules/statsCharts.js.map +1 -1
- package/dist/dashboard/modules/statsPage.d.ts +15 -0
- package/dist/dashboard/modules/statsPage.d.ts.map +1 -0
- package/dist/dashboard/modules/statsPage.js +250 -0
- package/dist/dashboard/modules/statsPage.js.map +1 -0
- package/dist/dashboard/stats.html +371 -0
- package/dist/dashboard/styles.css +43 -8
- package/dist/main/routes.d.ts.map +1 -1
- package/dist/main/routes.js +14 -4
- package/dist/main/routes.js.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/keyInsights.d.ts +4 -3
- package/dist/modules/statistics-insights/entities/stats/keyInsights.d.ts.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/keyInsights.js +27 -7
- package/dist/modules/statistics-insights/entities/stats/keyInsights.js.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/projectStats.d.ts.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/projectStats.guard.d.ts +4 -0
- package/dist/modules/statistics-insights/entities/stats/projectStats.guard.d.ts.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/projectStats.js +2 -0
- package/dist/modules/statistics-insights/entities/stats/projectStats.js.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/projectStats.schema.d.ts +2 -0
- package/dist/modules/statistics-insights/entities/stats/projectStats.schema.d.ts.map +1 -1
- package/dist/modules/statistics-insights/entities/stats/projectStats.schema.js +2 -0
- package/dist/modules/statistics-insights/entities/stats/projectStats.schema.js.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.d.ts +9 -0
- package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.d.ts.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js +26 -1
- package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js.map +1 -1
- package/dist/modules/statistics-insights/usecases/stats/addReviewStats.usecase.js +2 -0
- package/dist/modules/statistics-insights/usecases/stats/addReviewStats.usecase.js.map +1 -1
- package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.d.ts.map +1 -1
- package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js +6 -0
- package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js.map +1 -1
- package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts +9 -1
- package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts.map +1 -1
- package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js +14 -25
- package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js.map +1 -1
- package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.d.ts +33 -0
- package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.d.ts.map +1 -0
- package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js +42 -0
- package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js.map +1 -0
- package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.d.ts.map +1 -1
- package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.js +2 -1
- package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.js.map +1 -1
- package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.d.ts +1 -0
- package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.d.ts.map +1 -1
- package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.js +17 -1
- package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.js.map +1 -1
- package/dist/tests/acceptance/170-prebuilt-worktree-lifecycle.acceptance.test.js +3 -0
- package/dist/tests/acceptance/170-prebuilt-worktree-lifecycle.acceptance.test.js.map +1 -1
- package/dist/tests/acceptance/180-quality-threshold-block-approval.acceptance.test.js +7 -0
- package/dist/tests/acceptance/180-quality-threshold-block-approval.acceptance.test.js.map +1 -1
- package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.d.ts +12 -0
- package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.d.ts.map +1 -0
- package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.js +158 -0
- package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.js.map +1 -0
- package/dist/tests/acceptance/80-split-stats-service.acceptance.test.js +8 -1
- package/dist/tests/acceptance/80-split-stats-service.acceptance.test.js.map +1 -1
- package/dist/tests/factories/projectStats.factory.d.ts.map +1 -1
- package/dist/tests/factories/projectStats.factory.js +3 -0
- package/dist/tests/factories/projectStats.factory.js.map +1 -1
- package/dist/tests/units/dashboard/dashboardLayout.test.js +11 -18
- package/dist/tests/units/dashboard/dashboardLayout.test.js.map +1 -1
- package/dist/tests/units/dashboard/modules/i18n.test.js +24 -0
- package/dist/tests/units/dashboard/modules/i18n.test.js.map +1 -1
- package/dist/tests/units/dashboard/modules/statsCharts.test.js +37 -0
- package/dist/tests/units/dashboard/modules/statsCharts.test.js.map +1 -1
- package/dist/tests/units/dashboard/modules/statsPage.test.d.ts +2 -0
- package/dist/tests/units/dashboard/modules/statsPage.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/modules/statsPage.test.js +169 -0
- package/dist/tests/units/dashboard/modules/statsPage.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/presenters/statsSummary.presenter.test.js +65 -1
- package/dist/tests/units/interface-adapters/presenters/statsSummary.presenter.test.js.map +1 -1
- package/dist/tests/units/modules/statistics-insights/entities/stats/keyInsights.test.js +49 -0
- package/dist/tests/units/modules/statistics-insights/entities/stats/keyInsights.test.js.map +1 -1
- package/dist/tests/units/modules/statistics-insights/entities/stats/reviewOutput.parser.test.d.ts.map +1 -0
- package/dist/tests/units/{entities → modules/statistics-insights/entities}/stats/reviewOutput.parser.test.js +1 -1
- package/dist/tests/units/modules/statistics-insights/entities/stats/reviewOutput.parser.test.js.map +1 -0
- package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/keyInsights.presenter.test.js +24 -0
- package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/keyInsights.presenter.test.js.map +1 -1
- package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.d.ts +2 -0
- package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.d.ts.map +1 -0
- package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.js +95 -0
- package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.js.map +1 -0
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.d.ts +2 -0
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.d.ts.map +1 -0
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.js +108 -0
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.js.map +1 -0
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js +11 -5
- package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js.map +1 -1
- package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.d.ts +2 -0
- package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.d.ts.map +1 -0
- package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.js +138 -0
- package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.js.map +1 -0
- package/dist/tests/units/modules/worktree-management/usecases/ensureWorktree.usecase.test.js +71 -34
- package/dist/tests/units/modules/worktree-management/usecases/ensureWorktree.usecase.test.js.map +1 -1
- package/dist/tests/units/usecases/stats/addReviewStats.usecase.test.js +4 -0
- package/dist/tests/units/usecases/stats/addReviewStats.usecase.test.js.map +1 -1
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js +6 -0
- package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.d.ts +0 -19
- package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.d.ts.map +0 -1
- package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.js +0 -157
- package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.js.map +0 -1
- package/dist/tests/units/entities/stats/reviewOutput.parser.test.d.ts.map +0 -1
- package/dist/tests/units/entities/stats/reviewOutput.parser.test.js.map +0 -1
- /package/dist/tests/units/{entities → modules/statistics-insights/entities}/stats/reviewOutput.parser.test.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ProjectStats } from '../../../../modules/statistics-insights/entities/stats/projectStats.js';
|
|
2
|
-
export type KeyInsightKey = 'reviewVolume' | 'dominantCategory' | 'reviewTime';
|
|
2
|
+
export type KeyInsightKey = 'codeVolume' | 'reviewVolume' | 'dominantCategory' | 'reviewTime';
|
|
3
3
|
/**
|
|
4
4
|
* A single key insight derived from recorded stats. `title` and `body` are
|
|
5
5
|
* generated English narrative text; `strength` is a ranking weight (larger is
|
|
@@ -14,8 +14,9 @@ export interface KeyInsight {
|
|
|
14
14
|
/**
|
|
15
15
|
* Derive the ranked key insights from already-recorded project stats. Pure and
|
|
16
16
|
* deterministic — `now` is injected so the helper never reads the wall clock.
|
|
17
|
-
* Candidates that fail their data/threshold gate are omitted.
|
|
18
|
-
* sorted by `strength` descending
|
|
17
|
+
* Candidates that fail their data/threshold gate are omitted. Trend candidates
|
|
18
|
+
* are sorted by `strength` descending; the code-volume assessment is always
|
|
19
|
+
* pinned first when diff data exists. Empty when no candidate qualifies.
|
|
19
20
|
*/
|
|
20
21
|
export declare function deriveKeyInsights(stats: ProjectStats, now: Date): KeyInsight[];
|
|
21
22
|
//# sourceMappingURL=keyInsights.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyInsights.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAGtE,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"keyInsights.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAGtE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAW9F;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgHD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,GAAG,UAAU,EAAE,CAgB9E"}
|
|
@@ -6,6 +6,8 @@ const TIME_MIN_RELATIVE_CHANGE = 0.1;
|
|
|
6
6
|
const VOLUME_MIN_RELATIVE_CHANGE = 0.1;
|
|
7
7
|
const VOLUME_PERIOD_DAYS = 30;
|
|
8
8
|
const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
9
|
+
const SUBSTANTIAL_AVERAGE_LINES = 200;
|
|
10
|
+
const PINNED_STRENGTH = Number.POSITIVE_INFINITY;
|
|
9
11
|
function formatSignedPercent(relativeChange, sign) {
|
|
10
12
|
const prefix = sign === 'up' ? '+' : '-';
|
|
11
13
|
return `${prefix}${Math.round(relativeChange * 100)}%`;
|
|
@@ -79,23 +81,41 @@ function reviewTimeInsight(reviews) {
|
|
|
79
81
|
strength: relativeChange,
|
|
80
82
|
};
|
|
81
83
|
}
|
|
84
|
+
function codeVolumeInsight(stats) {
|
|
85
|
+
const totalLines = stats.totalAdditions + stats.totalDeletions;
|
|
86
|
+
const totalCommits = stats.totalCommits ?? 0;
|
|
87
|
+
if (totalLines === 0 && totalCommits === 0)
|
|
88
|
+
return null;
|
|
89
|
+
const averageLines = Math.round((stats.averageAdditions ?? 0) + (stats.averageDeletions ?? 0));
|
|
90
|
+
const averageCommits = stats.averageCommits ?? 0;
|
|
91
|
+
const substantial = averageLines >= SUBSTANTIAL_AVERAGE_LINES;
|
|
92
|
+
return {
|
|
93
|
+
key: 'codeVolume',
|
|
94
|
+
title: substantial ? 'Substantial code volume' : 'Lean changesets',
|
|
95
|
+
body: `${totalLines.toLocaleString('en-US')} lines across ${totalCommits.toLocaleString('en-US')} commits (avg ${averageLines.toLocaleString('en-US')} lines, ${averageCommits.toFixed(1)} commits/MR)`,
|
|
96
|
+
strength: PINNED_STRENGTH,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
82
99
|
/**
|
|
83
100
|
* Derive the ranked key insights from already-recorded project stats. Pure and
|
|
84
101
|
* deterministic — `now` is injected so the helper never reads the wall clock.
|
|
85
|
-
* Candidates that fail their data/threshold gate are omitted.
|
|
86
|
-
* sorted by `strength` descending
|
|
102
|
+
* Candidates that fail their data/threshold gate are omitted. Trend candidates
|
|
103
|
+
* are sorted by `strength` descending; the code-volume assessment is always
|
|
104
|
+
* pinned first when diff data exists. Empty when no candidate qualifies.
|
|
87
105
|
*/
|
|
88
106
|
export function deriveKeyInsights(stats, now) {
|
|
89
|
-
const
|
|
107
|
+
const trends = [];
|
|
90
108
|
const reviewVolume = reviewVolumeInsight(stats.reviews, now);
|
|
91
109
|
if (reviewVolume !== null)
|
|
92
|
-
|
|
110
|
+
trends.push(reviewVolume);
|
|
93
111
|
const category = dominantCategoryInsight(stats.categoryBreakdown ?? null);
|
|
94
112
|
if (category !== null)
|
|
95
|
-
|
|
113
|
+
trends.push(category);
|
|
96
114
|
const reviewTime = reviewTimeInsight(stats.reviews);
|
|
97
115
|
if (reviewTime !== null)
|
|
98
|
-
|
|
99
|
-
|
|
116
|
+
trends.push(reviewTime);
|
|
117
|
+
const ranked = trends.toSorted((left, right) => right.strength - left.strength);
|
|
118
|
+
const codeVolume = codeVolumeInsight(stats);
|
|
119
|
+
return codeVolume !== null ? [codeVolume, ...ranked] : ranked;
|
|
100
120
|
}
|
|
101
121
|
//# sourceMappingURL=keyInsights.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyInsights.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keyInsights.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStats.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qEAAqE,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"projectStats.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qEAAqE,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAiB/C"}
|
|
@@ -34,6 +34,8 @@ export declare const isValidProjectStats: (data: unknown) => data is {
|
|
|
34
34
|
totalDeletions: number;
|
|
35
35
|
averageAdditions: number | null;
|
|
36
36
|
averageDeletions: number | null;
|
|
37
|
+
totalCommits?: number | undefined;
|
|
38
|
+
averageCommits?: number | null | undefined;
|
|
37
39
|
totalScoreSum?: number | undefined;
|
|
38
40
|
scoredReviewCount?: number | undefined;
|
|
39
41
|
diffStatsReviewCount?: number | undefined;
|
|
@@ -82,6 +84,8 @@ export declare const safeParseProjectStats: (data: unknown) => import("zod").Zod
|
|
|
82
84
|
totalDeletions: number;
|
|
83
85
|
averageAdditions: number | null;
|
|
84
86
|
averageDeletions: number | null;
|
|
87
|
+
totalCommits?: number | undefined;
|
|
88
|
+
averageCommits?: number | null | undefined;
|
|
85
89
|
totalScoreSum?: number | undefined;
|
|
86
90
|
scoredReviewCount?: number | undefined;
|
|
87
91
|
diffStatsReviewCount?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStats.guard.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.guard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"projectStats.guard.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.guard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStats.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"projectStats.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -59,6 +59,8 @@ export declare const projectStatsSchema: z.ZodObject<{
|
|
|
59
59
|
totalDeletions: z.ZodNumber;
|
|
60
60
|
averageAdditions: z.ZodNullable<z.ZodNumber>;
|
|
61
61
|
averageDeletions: z.ZodNullable<z.ZodNumber>;
|
|
62
|
+
totalCommits: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
averageCommits: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
62
64
|
totalScoreSum: z.ZodOptional<z.ZodNumber>;
|
|
63
65
|
scoredReviewCount: z.ZodOptional<z.ZodNumber>;
|
|
64
66
|
diffStatsReviewCount: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStats.schema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"projectStats.schema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC"}
|
|
@@ -31,6 +31,8 @@ export const projectStatsSchema = z.object({
|
|
|
31
31
|
totalDeletions: z.number(),
|
|
32
32
|
averageAdditions: z.number().nullable(),
|
|
33
33
|
averageDeletions: z.number().nullable(),
|
|
34
|
+
totalCommits: z.number().optional(),
|
|
35
|
+
averageCommits: z.number().nullable().optional(),
|
|
34
36
|
totalScoreSum: z.number().optional(),
|
|
35
37
|
scoredReviewCount: z.number().optional(),
|
|
36
38
|
diffStatsReviewCount: z.number().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStats.schema.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0EAA0E,CAAC;AAEnH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"projectStats.schema.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0EAA0E,CAAC;AAEnH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
|
package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { ProjectStats } from '../../../../modules/statistics-insights/entities/stats/projectStats.js';
|
|
2
2
|
import type { Presenter } from '../../../../shared/foundation/presenter.base.js';
|
|
3
3
|
type Trend = 'up' | 'down' | 'stable';
|
|
4
|
+
export interface StatsPeriod {
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
days: number;
|
|
8
|
+
}
|
|
4
9
|
export interface StatsSummaryViewModel {
|
|
5
10
|
totalReviews: number;
|
|
6
11
|
totalTime: string;
|
|
@@ -8,11 +13,15 @@ export interface StatsSummaryViewModel {
|
|
|
8
13
|
averageScore: string;
|
|
9
14
|
totalBlocking: number;
|
|
10
15
|
totalWarnings: number;
|
|
16
|
+
bugsDetected: number;
|
|
11
17
|
totalAdditions: number;
|
|
12
18
|
totalDeletions: number;
|
|
19
|
+
totalCommits: number;
|
|
13
20
|
averageAdditions: string;
|
|
14
21
|
averageDeletions: string;
|
|
22
|
+
averageCommits: string;
|
|
15
23
|
totalLinesReviewed: number;
|
|
24
|
+
period: StatsPeriod | null;
|
|
16
25
|
trend: {
|
|
17
26
|
score: Trend;
|
|
18
27
|
blocking: Trend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsSummary.presenter.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"statsSummary.presenter.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAItC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;CAC1C;AAsDD,qBAAa,qBAAsB,YAAW,SAAS,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC1F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB;CAqBpD"}
|
package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { formatReviewDuration } from '../../../../modules/statistics-insights/entities/stats/reviewDuration.format.js';
|
|
2
|
+
const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
3
|
+
function formatPeriodDate(timestamp) {
|
|
4
|
+
return new Date(timestamp).toLocaleDateString('en-GB', {
|
|
5
|
+
day: 'numeric',
|
|
6
|
+
month: 'short',
|
|
7
|
+
year: 'numeric',
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
function periodOf(reviews) {
|
|
11
|
+
if (reviews.length === 0)
|
|
12
|
+
return null;
|
|
13
|
+
const times = reviews.map((review) => new Date(review.timestamp).getTime());
|
|
14
|
+
const from = Math.min(...times);
|
|
15
|
+
const to = Math.max(...times);
|
|
16
|
+
return {
|
|
17
|
+
from: formatPeriodDate(from),
|
|
18
|
+
to: formatPeriodDate(to),
|
|
19
|
+
days: Math.round((to - from) / MILLISECONDS_PER_DAY),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
2
22
|
function averageScoreOf(reviews) {
|
|
3
23
|
const scored = reviews.filter((review) => review.score !== null);
|
|
4
24
|
if (scored.length === 0)
|
|
@@ -33,18 +53,23 @@ function computeTrend(stats) {
|
|
|
33
53
|
}
|
|
34
54
|
export class StatsSummaryPresenter {
|
|
35
55
|
present(stats) {
|
|
56
|
+
const averageScore = averageScoreOf(stats.reviews);
|
|
36
57
|
return {
|
|
37
58
|
totalReviews: stats.totalReviews,
|
|
38
59
|
totalTime: formatReviewDuration(stats.totalDuration),
|
|
39
60
|
averageTime: formatReviewDuration(stats.averageDuration),
|
|
40
|
-
averageScore:
|
|
61
|
+
averageScore: averageScore !== null ? averageScore.toFixed(1) : '-',
|
|
41
62
|
totalBlocking: stats.totalBlocking,
|
|
42
63
|
totalWarnings: stats.totalWarnings,
|
|
64
|
+
bugsDetected: stats.totalBlocking + stats.totalWarnings,
|
|
43
65
|
totalAdditions: stats.totalAdditions,
|
|
44
66
|
totalDeletions: stats.totalDeletions,
|
|
67
|
+
totalCommits: stats.totalCommits ?? 0,
|
|
45
68
|
averageAdditions: stats.averageAdditions !== null ? stats.averageAdditions.toFixed(1) : '-',
|
|
46
69
|
averageDeletions: stats.averageDeletions !== null ? stats.averageDeletions.toFixed(1) : '-',
|
|
70
|
+
averageCommits: stats.averageCommits != null ? stats.averageCommits.toFixed(1) : '-',
|
|
47
71
|
totalLinesReviewed: stats.totalAdditions + stats.totalDeletions,
|
|
72
|
+
period: periodOf(stats.reviews),
|
|
48
73
|
trend: computeTrend(stats),
|
|
49
74
|
};
|
|
50
75
|
}
|
package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsSummary.presenter.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;
|
|
1
|
+
{"version":3,"file":"statsSummary.presenter.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,11 +71,13 @@ function updateAggregatesForNewReview(stats, review) {
|
|
|
71
71
|
if (review.diffStats) {
|
|
72
72
|
stats.totalAdditions += review.diffStats.additions;
|
|
73
73
|
stats.totalDeletions += review.diffStats.deletions;
|
|
74
|
+
stats.totalCommits = (stats.totalCommits ?? 0) + review.diffStats.commitsCount;
|
|
74
75
|
stats.diffStatsReviewCount = (stats.diffStatsReviewCount ?? 0) + 1;
|
|
75
76
|
}
|
|
76
77
|
if (stats.diffStatsReviewCount && stats.diffStatsReviewCount > 0) {
|
|
77
78
|
stats.averageAdditions = stats.totalAdditions / stats.diffStatsReviewCount;
|
|
78
79
|
stats.averageDeletions = stats.totalDeletions / stats.diffStatsReviewCount;
|
|
80
|
+
stats.averageCommits = (stats.totalCommits ?? 0) / stats.diffStatsReviewCount;
|
|
79
81
|
}
|
|
80
82
|
if (review.categoryBreakdown != null) {
|
|
81
83
|
stats.categoryBreakdown = stats.categoryBreakdown ?? emptyBreakdown();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addReviewStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/addReviewStats.usecase.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,6DAA6D,CAAC;AACrE,OAAO,EACL,gBAAgB,GAGjB,MAAM,8DAA8D,CAAC;AAKtE,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAWjC,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAE3D,OAAO,CAAC,KAA0B;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAE1F,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAgB;YAC/B,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE;YACxC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;YAC/B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;YACrC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB;SAClD,CAAC;QAEF,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAEpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YAChD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE7D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAED,SAAS,YAAY,CAAC,MAAyB,EAAE,YAA+B;IAC9E,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAmB;IACvD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBACrC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO;IAE9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACjF,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAElD,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;IACxF,KAAK,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAmB,EAAE,MAAmB;IAC5E,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC;IACvC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;IACjE,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC;IACvC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC;IAEvC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1B,KAAK,CAAC,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAChE,KAAK,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC5E,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACnD,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACnD,KAAK,CAAC,oBAAoB,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,oBAAoB,CAAC;QAC3E,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"addReviewStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/addReviewStats.usecase.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recalculateProjectStats.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,mCAAmC,GAChD,YAAY,
|
|
1
|
+
{"version":3,"file":"recalculateProjectStats.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,mCAAmC,GAChD,YAAY,CA0Ed"}
|
|
@@ -15,6 +15,8 @@ export function recalculateProjectStats(projectPath, dependencies) {
|
|
|
15
15
|
totalDeletions: 0,
|
|
16
16
|
averageAdditions: 0,
|
|
17
17
|
averageDeletions: 0,
|
|
18
|
+
totalCommits: 0,
|
|
19
|
+
averageCommits: 0,
|
|
18
20
|
diffStatsReviewCount: 0,
|
|
19
21
|
};
|
|
20
22
|
return emptyStats;
|
|
@@ -36,14 +38,18 @@ export function recalculateProjectStats(projectPath, dependencies) {
|
|
|
36
38
|
if (reviewsWithDiffStats.length > 0) {
|
|
37
39
|
stats.totalAdditions = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.additions ?? 0), 0);
|
|
38
40
|
stats.totalDeletions = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.deletions ?? 0), 0);
|
|
41
|
+
stats.totalCommits = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.commitsCount ?? 0), 0);
|
|
39
42
|
stats.averageAdditions = stats.totalAdditions / reviewsWithDiffStats.length;
|
|
40
43
|
stats.averageDeletions = stats.totalDeletions / reviewsWithDiffStats.length;
|
|
44
|
+
stats.averageCommits = stats.totalCommits / reviewsWithDiffStats.length;
|
|
41
45
|
}
|
|
42
46
|
else {
|
|
43
47
|
stats.totalAdditions = 0;
|
|
44
48
|
stats.totalDeletions = 0;
|
|
45
49
|
stats.averageAdditions = 0;
|
|
46
50
|
stats.averageDeletions = 0;
|
|
51
|
+
stats.totalCommits = 0;
|
|
52
|
+
stats.averageCommits = 0;
|
|
47
53
|
}
|
|
48
54
|
statsGateway.saveProjectStats(projectPath, stats);
|
|
49
55
|
return stats;
|
package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recalculateProjectStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"recalculateProjectStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import type { FastifyPluginAsync } from 'fastify';
|
|
2
|
+
import type { Logger } from 'pino';
|
|
3
|
+
import type { ReviewContextGateway } from '../../../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
|
|
2
4
|
import type { StatsGateway } from '../../../../../modules/statistics-insights/entities/stats/stats.gateway.js';
|
|
3
|
-
import type { ReviewRequestTrackingGateway } from '../../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
|
|
5
|
+
import type { Platform, ReviewRequestTrackingGateway } from '../../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
|
|
6
|
+
import type { RemoveWorktreeAction } from '../../../../../modules/worktree-management/entities/worktree/worktree.schema.js';
|
|
4
7
|
interface MrTrackingRoutesOptions {
|
|
5
8
|
reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
|
|
6
9
|
getQualityThreshold?: (projectPath: string) => number | null;
|
|
7
10
|
statsGateway?: StatsGateway;
|
|
11
|
+
reviewContextGateway: ReviewContextGateway;
|
|
12
|
+
cancelJob: (jobId: string) => boolean;
|
|
13
|
+
buildJobId: (platform: Platform, projectPath: string, mrNumber: number) => string;
|
|
14
|
+
removeWorktree: RemoveWorktreeAction;
|
|
15
|
+
logger: Logger;
|
|
8
16
|
}
|
|
9
17
|
export declare const mrTrackingRoutes: FastifyPluginAsync<MrTrackingRoutesOptions>;
|
|
10
18
|
export {};
|
package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mrTracking.routes.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mrTracking.routes.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,OAAO,KAAK,EACV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAI/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;AAE/G,UAAU,uBAAuB;IAC/B,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,cAAc,EAAE,oBAAoB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,uBAAuB,CA6HxE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { logInfo, logError } from '../../../../../frameworks/logging/logBuffer.js';
|
|
2
2
|
import { evaluateQualityGate } from '../../../../../modules/tracking/entities/qualityGate/qualityGate.js';
|
|
3
3
|
import { MrDiffStatsPresenter } from '../../../../../modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.js';
|
|
4
|
+
import { MarkReviewAsMergedUseCase } from '../../../../../modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js';
|
|
4
5
|
import { TransitionStateUseCase } from '../../../../../modules/tracking/usecases/tracking/transitionState.usecase.js';
|
|
5
6
|
function validateProjectPath(path) {
|
|
6
7
|
if (!path) {
|
|
@@ -13,7 +14,7 @@ function validateProjectPath(path) {
|
|
|
13
14
|
return { valid: true, path: trimmed };
|
|
14
15
|
}
|
|
15
16
|
export const mrTrackingRoutes = async (fastify, opts) => {
|
|
16
|
-
const { reviewRequestTrackingGateway, getQualityThreshold, statsGateway } = opts;
|
|
17
|
+
const { reviewRequestTrackingGateway, getQualityThreshold, statsGateway, reviewContextGateway, cancelJob, buildJobId, removeWorktree, logger, } = opts;
|
|
17
18
|
const mrDiffStatsPresenter = new MrDiffStatsPresenter();
|
|
18
19
|
fastify.get('/api/mr-tracking', async (request, reply) => {
|
|
19
20
|
const validation = validateProjectPath(request.query.path);
|
|
@@ -24,11 +25,13 @@ export const mrTrackingRoutes = async (fastify, opts) => {
|
|
|
24
25
|
try {
|
|
25
26
|
const pendingFix = reviewRequestTrackingGateway.getByState(validation.path, 'pending-fix');
|
|
26
27
|
const pendingApproval = reviewRequestTrackingGateway.getByState(validation.path, 'pending-approval');
|
|
28
|
+
const merged = reviewRequestTrackingGateway.getByState(validation.path, 'merged');
|
|
27
29
|
const stats = statsGateway?.loadProjectStats(validation.path) ?? null;
|
|
28
30
|
return {
|
|
29
31
|
success: true,
|
|
30
32
|
pendingFix: mrDiffStatsPresenter.present(pendingFix, stats),
|
|
31
33
|
pendingApproval: mrDiffStatsPresenter.present(pendingApproval, stats),
|
|
34
|
+
merged: mrDiffStatsPresenter.present(merged, stats),
|
|
32
35
|
};
|
|
33
36
|
}
|
|
34
37
|
catch (error) {
|
|
@@ -82,35 +85,21 @@ export const mrTrackingRoutes = async (fastify, opts) => {
|
|
|
82
85
|
reply.code(400);
|
|
83
86
|
return { success: false, error: validation.error };
|
|
84
87
|
}
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
const markReviewAsMerged = new MarkReviewAsMergedUseCase({
|
|
89
|
+
trackingGateway: reviewRequestTrackingGateway,
|
|
90
|
+
reviewContextGateway,
|
|
91
|
+
cancelJob,
|
|
92
|
+
buildJobId,
|
|
93
|
+
removeWorktree,
|
|
94
|
+
logger,
|
|
91
95
|
});
|
|
96
|
+
const result = await markReviewAsMerged.execute({ projectPath: validation.path, mrId });
|
|
92
97
|
if (result.ok) {
|
|
93
98
|
logInfo('MR marquée comme mergée', { mrId });
|
|
94
99
|
return { success: true, mrId, message: 'MR marquée comme mergée' };
|
|
95
100
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
reply.code(404);
|
|
99
|
-
return { success: false, error: 'MR non trouvée' };
|
|
100
|
-
case 'invalid-current-state':
|
|
101
|
-
reply.code(409);
|
|
102
|
-
return {
|
|
103
|
-
success: false,
|
|
104
|
-
error: 'Seules les MR en correction peuvent être marquées comme mergées',
|
|
105
|
-
};
|
|
106
|
-
case 'quality-gate':
|
|
107
|
-
reply.code(409);
|
|
108
|
-
return { success: false, error: result.message };
|
|
109
|
-
default: {
|
|
110
|
-
const _exhaustive = result;
|
|
111
|
-
throw new Error(`Unhandled transition rejection: ${JSON.stringify(_exhaustive)}`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
101
|
+
reply.code(404);
|
|
102
|
+
return { success: false, error: 'MR non trouvée' };
|
|
114
103
|
});
|
|
115
104
|
};
|
|
116
105
|
//# sourceMappingURL=mrTracking.routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mrTracking.routes.js","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mrTracking.routes.js","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import type { ReviewContextGateway } from '../../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
|
|
3
|
+
import type { Platform, ReviewRequestTrackingGateway } from '../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
|
|
4
|
+
import type { RemoveWorktreeAction } from '../../../../modules/worktree-management/entities/worktree/worktree.schema.js';
|
|
5
|
+
import type { UseCase } from '../../../../shared/foundation/usecase.base.js';
|
|
6
|
+
export interface MarkReviewAsMergedInput {
|
|
7
|
+
projectPath: string;
|
|
8
|
+
mrId: string;
|
|
9
|
+
}
|
|
10
|
+
export type MarkReviewAsMergedResult = {
|
|
11
|
+
ok: true;
|
|
12
|
+
jobCancelled: boolean;
|
|
13
|
+
contextReleased: boolean;
|
|
14
|
+
recordRetained: true;
|
|
15
|
+
} | {
|
|
16
|
+
ok: false;
|
|
17
|
+
reason: 'not-found';
|
|
18
|
+
};
|
|
19
|
+
export interface MarkReviewAsMergedDependencies {
|
|
20
|
+
trackingGateway: Pick<ReviewRequestTrackingGateway, 'getById' | 'update'>;
|
|
21
|
+
reviewContextGateway: Pick<ReviewContextGateway, 'delete'>;
|
|
22
|
+
cancelJob: (jobId: string) => boolean;
|
|
23
|
+
buildJobId: (platform: Platform, projectPath: string, mrNumber: number) => string;
|
|
24
|
+
removeWorktree: RemoveWorktreeAction;
|
|
25
|
+
logger: Logger;
|
|
26
|
+
}
|
|
27
|
+
export declare class MarkReviewAsMergedUseCase implements UseCase<MarkReviewAsMergedInput, Promise<MarkReviewAsMergedResult>> {
|
|
28
|
+
private readonly deps;
|
|
29
|
+
constructor(deps: MarkReviewAsMergedDependencies);
|
|
30
|
+
execute(input: MarkReviewAsMergedInput): Promise<MarkReviewAsMergedResult>;
|
|
31
|
+
private removeWorktreeBestEffort;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=markReviewAsMerged.usecase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markReviewAsMerged.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EACV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;AAC/G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,IAAI,CAAA;CAAE,GACnF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,8BAA8B;IAC7C,eAAe,EAAE,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC1E,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC3D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,cAAc,EAAE,oBAAoB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,yBAA0B,YAAW,OAAO,CACvD,uBAAuB,EACvB,OAAO,CAAC,wBAAwB,CAAC,CAClC;IACa,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,8BAA8B;IAE3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAuBlE,wBAAwB;CAuBvC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export class MarkReviewAsMergedUseCase {
|
|
2
|
+
deps;
|
|
3
|
+
constructor(deps) {
|
|
4
|
+
this.deps = deps;
|
|
5
|
+
}
|
|
6
|
+
async execute(input) {
|
|
7
|
+
const { projectPath, mrId } = input;
|
|
8
|
+
const mr = this.deps.trackingGateway.getById(projectPath, mrId);
|
|
9
|
+
if (!mr)
|
|
10
|
+
return { ok: false, reason: 'not-found' };
|
|
11
|
+
if (mr.state === 'merged') {
|
|
12
|
+
return { ok: true, jobCancelled: false, contextReleased: false, recordRetained: true };
|
|
13
|
+
}
|
|
14
|
+
const jobCancelled = this.deps.cancelJob(this.deps.buildJobId(mr.platform, projectPath, mr.mrNumber));
|
|
15
|
+
const contextReleased = this.deps.reviewContextGateway.delete(projectPath, mrId).deleted;
|
|
16
|
+
await this.removeWorktreeBestEffort(mr, projectPath);
|
|
17
|
+
this.deps.trackingGateway.update(projectPath, mrId, {
|
|
18
|
+
state: 'merged',
|
|
19
|
+
mergedAt: new Date().toISOString(),
|
|
20
|
+
});
|
|
21
|
+
return { ok: true, jobCancelled, contextReleased, recordRetained: true };
|
|
22
|
+
}
|
|
23
|
+
async removeWorktreeBestEffort(mr, projectPath) {
|
|
24
|
+
try {
|
|
25
|
+
const removal = await this.deps.removeWorktree({
|
|
26
|
+
identity: { platform: mr.platform, projectPath, mrNumber: mr.mrNumber },
|
|
27
|
+
sourceCheckoutPath: projectPath,
|
|
28
|
+
});
|
|
29
|
+
if (removal.status === 'failed') {
|
|
30
|
+
this.deps.logger.warn({ projectPath, mrNumber: mr.mrNumber, warning: removal.warning }, 'removeWorktree failed on mark-as-merged');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
this.deps.logger.warn({
|
|
35
|
+
projectPath,
|
|
36
|
+
mrNumber: mr.mrNumber,
|
|
37
|
+
error: error instanceof Error ? error.message : String(error),
|
|
38
|
+
}, 'removeWorktree threw on mark-as-merged');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=markReviewAsMerged.usecase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markReviewAsMerged.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,yBAAyB;IAIP;IAA7B,YAA6B,IAAoC;QAApC,SAAI,GAAJ,IAAI,CAAgC;IAAG,CAAC;IAErE,KAAK,CAAC,OAAO,CAAC,KAA8B;QAC1C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAEnD,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,CAC5D,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;QACzF,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;YAClD,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,EAAa,EAAE,WAAmB;QACvE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC7C,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvE,kBAAkB,EAAE,WAAW;aAChC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAChE,yCAAyC,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB;gBACE,WAAW;gBACX,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,wCAAwC,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|