reviewflow 3.39.0 → 3.39.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.
- package/CHANGELOG.md +9 -0
- package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts +3 -1
- package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.d.ts.map +1 -1
- package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js +35 -19
- package/dist/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js.map +1 -1
- package/dist/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.js +1 -1
- package/dist/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.js.map +1 -1
- package/dist/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.d.ts +17 -0
- package/dist/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.d.ts.map +1 -0
- package/dist/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.js +69 -0
- package/dist/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.js.map +1 -0
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js +75 -36
- package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js.map +1 -1
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js +9 -5
- package/dist/tests/units/usecases/stats/backfillDiffStats.usecase.test.js.map +1 -1
- package/package.json +9 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.39.1](https://github.com/DGouron/review-flow/compare/reviewflow-v3.39.0...reviewflow-v3.39.1) (2026-06-20)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
* **deps:** patch hono, ws, qs, vite advisories via resolutions ([120dec1](https://github.com/DGouron/review-flow/commit/120dec1b98039401e6ad69e7fbe1a48a8591caf2))
|
|
14
|
+
* **stats:** real GitLab diff stats + backfill null-poisoned reviews ([03ee814](https://github.com/DGouron/review-flow/commit/03ee814c0900dd43dd982c4ddfb62d53a2c588c7))
|
|
15
|
+
* **stats:** real GitLab diff stats + backfill null-poisoned reviews (spec-206, spec-207) ([fa166d9](https://github.com/DGouron/review-flow/commit/fa166d985b109c252853ed6c7a7052ecb41d8ad7))
|
|
16
|
+
|
|
8
17
|
## [3.39.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.38.0...reviewflow-v3.39.0) (2026-06-20)
|
|
9
18
|
|
|
10
19
|
|
|
@@ -5,6 +5,8 @@ export type CommandExecutor = SimpleCommandExecutor;
|
|
|
5
5
|
export declare class GitLabDiffStatsFetchGateway implements DiffStatsFetchGateway {
|
|
6
6
|
private readonly executor;
|
|
7
7
|
constructor(executor: CommandExecutor);
|
|
8
|
-
fetchDiffStats(projectPath: string, mergeRequestNumber: number): DiffStats
|
|
8
|
+
fetchDiffStats(projectPath: string, mergeRequestNumber: number): DiffStats;
|
|
9
|
+
private fetchDiffSummary;
|
|
10
|
+
private fetchCommitsCount;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=diffStatsFetch.gitlab.gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffStatsFetch.gitlab.gateway.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"diffStatsFetch.gitlab.gateway.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sEAAsE,CAAC;AAClH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AA4BpD,qBAAa,2BAA4B,YAAW,qBAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEtD,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS;IAW1E,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;CAQ1B"}
|
|
@@ -1,28 +1,44 @@
|
|
|
1
|
+
function readField(value, field) {
|
|
2
|
+
if (typeof value !== 'object' || value === null || !(field in value)) {
|
|
3
|
+
throw new Error(`GitLab GraphQL response is missing "${field}"`);
|
|
4
|
+
}
|
|
5
|
+
return Reflect.get(value, field);
|
|
6
|
+
}
|
|
7
|
+
function extractDiffStatsSummary(response) {
|
|
8
|
+
const project = readField(readField(response, 'data'), 'project');
|
|
9
|
+
const mergeRequest = readField(project, 'mergeRequest');
|
|
10
|
+
const summary = readField(mergeRequest, 'diffStatsSummary');
|
|
11
|
+
const additions = readField(summary, 'additions');
|
|
12
|
+
const deletions = readField(summary, 'deletions');
|
|
13
|
+
if (typeof additions !== 'number' || typeof deletions !== 'number') {
|
|
14
|
+
throw new Error('GitLab GraphQL diff summary is missing additions or deletions');
|
|
15
|
+
}
|
|
16
|
+
return { additions, deletions };
|
|
17
|
+
}
|
|
1
18
|
export class GitLabDiffStatsFetchGateway {
|
|
2
19
|
executor;
|
|
3
20
|
constructor(executor) {
|
|
4
21
|
this.executor = executor;
|
|
5
22
|
}
|
|
6
23
|
fetchDiffStats(projectPath, mergeRequestNumber) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
24
|
+
const summary = this.fetchDiffSummary(projectPath, mergeRequestNumber);
|
|
25
|
+
const commitsCount = this.fetchCommitsCount(projectPath, mergeRequestNumber);
|
|
26
|
+
return {
|
|
27
|
+
additions: summary.additions,
|
|
28
|
+
deletions: summary.deletions,
|
|
29
|
+
commitsCount,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
fetchDiffSummary(projectPath, mergeRequestNumber) {
|
|
33
|
+
const query = `query { project(fullPath:"${projectPath}") { mergeRequest(iid:"${mergeRequestNumber}") { diffStatsSummary { additions deletions fileCount } } } }`;
|
|
34
|
+
const response = this.executor(`glab api graphql -f query='${query}'`);
|
|
35
|
+
return extractDiffStatsSummary(JSON.parse(response));
|
|
36
|
+
}
|
|
37
|
+
fetchCommitsCount(projectPath, mergeRequestNumber) {
|
|
38
|
+
const encodedProject = projectPath.replace(/\//g, '%2F');
|
|
39
|
+
const commitsResponse = this.executor(`glab api projects/${encodedProject}/merge_requests/${mergeRequestNumber}/commits`);
|
|
40
|
+
const commits = JSON.parse(commitsResponse);
|
|
41
|
+
return Array.isArray(commits) ? commits.length : 0;
|
|
26
42
|
}
|
|
27
43
|
}
|
|
28
44
|
//# sourceMappingURL=diffStatsFetch.gitlab.gateway.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffStatsFetch.gitlab.gateway.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.ts"],"names":[],"mappings":"AAWA,
|
|
1
|
+
{"version":3,"file":"diffStatsFetch.gitlab.gateway.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.ts"],"names":[],"mappings":"AAWA,SAAS,SAAS,CAAC,KAAc,EAAE,KAAa;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAiB;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAElD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,2BAA2B;IACT;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,cAAc,CAAC,WAAmB,EAAE,kBAA0B;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAE7E,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,WAAmB,EAAE,kBAA0B;QACtE,MAAM,KAAK,GAAG,6BAA6B,WAAW,0BAA0B,kBAAkB,+DAA+D,CAAC;QAClK,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,8BAA8B,KAAK,GAAG,CAAC,CAAC;QACvE,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,iBAAiB,CAAC,WAAmB,EAAE,kBAA0B;QACvE,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CACnC,qBAAqB,cAAc,mBAAmB,kBAAkB,UAAU,CACnF,CAAC;QACF,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@ export async function backfillDiffStats(input, dependencies) {
|
|
|
5
5
|
if (!stats) {
|
|
6
6
|
return { total: 0, completed: 0, failed: 0, status: 'completed' };
|
|
7
7
|
}
|
|
8
|
-
const reviewsNeedingBackfill = stats.reviews.filter((review) => review.diffStats ===
|
|
8
|
+
const reviewsNeedingBackfill = stats.reviews.filter((review) => review.diffStats === null || review.diffStats === undefined);
|
|
9
9
|
if (reviewsNeedingBackfill.length === 0) {
|
|
10
10
|
return { total: 0, completed: 0, failed: 0, status: 'completed' };
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfillDiffStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA6B,EAC7B,YAA2C;IAE3C,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACrE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE/E,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,
|
|
1
|
+
{"version":3,"file":"backfillDiffStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/backfillDiffStats.usecase.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA6B,EAC7B,YAA2C;IAE3C,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;IACrE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE/E,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CACxE,CAAC;IAEF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAqB;QACjC,KAAK,EAAE,sBAAsB,CAAC,MAAM;QACpC,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;QAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjE,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3F,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3F,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;YAED,QAAQ,CAAC,SAAS,EAAE,CAAC;YACrB,UAAU,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,WAAW,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;IAE9B,YAAY,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPEC-206 — Fix the GitLab change-size source
|
|
3
|
+
*
|
|
4
|
+
* Outer-loop acceptance test (SDD): drives the REAL GitLabDiffStatsFetchGateway
|
|
5
|
+
* through the production fetchDiffStatsSafely helper with a stubbed
|
|
6
|
+
* SimpleCommandExecutor and a pino silent logger.
|
|
7
|
+
*
|
|
8
|
+
* Scenarios from docs/specs/206-fix-gitlab-diff-stats-source.md:
|
|
9
|
+
* 1. gitlab with changes → real additions/deletions, no warning
|
|
10
|
+
* 2. gitlab no diff summary → no change-size data + warning logged
|
|
11
|
+
* 3. gitlab fetch error → no change-size data + warning logged
|
|
12
|
+
*
|
|
13
|
+
* GitHub-unchanged (rule 4 / scenario "github unchanged") is covered by the
|
|
14
|
+
* untouched GitHub gateway unit test — no new acceptance needed here.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=206-fix-gitlab-diff-stats-source.acceptance.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"206-fix-gitlab-diff-stats-source.acceptance.test.d.ts","sourceRoot":"","sources":["../../../src/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPEC-206 — Fix the GitLab change-size source
|
|
3
|
+
*
|
|
4
|
+
* Outer-loop acceptance test (SDD): drives the REAL GitLabDiffStatsFetchGateway
|
|
5
|
+
* through the production fetchDiffStatsSafely helper with a stubbed
|
|
6
|
+
* SimpleCommandExecutor and a pino silent logger.
|
|
7
|
+
*
|
|
8
|
+
* Scenarios from docs/specs/206-fix-gitlab-diff-stats-source.md:
|
|
9
|
+
* 1. gitlab with changes → real additions/deletions, no warning
|
|
10
|
+
* 2. gitlab no diff summary → no change-size data + warning logged
|
|
11
|
+
* 3. gitlab fetch error → no change-size data + warning logged
|
|
12
|
+
*
|
|
13
|
+
* GitHub-unchanged (rule 4 / scenario "github unchanged") is covered by the
|
|
14
|
+
* untouched GitHub gateway unit test — no new acceptance needed here.
|
|
15
|
+
*/
|
|
16
|
+
import { pino } from 'pino';
|
|
17
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
18
|
+
import { GitLabDiffStatsFetchGateway } from '../../modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js';
|
|
19
|
+
import { fetchDiffStatsSafely } from '../../modules/statistics-insights/services/fetchDiffStatsSafely.js';
|
|
20
|
+
function graphqlEnvelope(diffStatsSummary) {
|
|
21
|
+
return JSON.stringify({ data: { project: { mergeRequest: { diffStatsSummary } } } });
|
|
22
|
+
}
|
|
23
|
+
describe('Acceptance — SPEC-206: Fix the GitLab change-size source', () => {
|
|
24
|
+
let logger;
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
logger = pino({ level: 'silent' });
|
|
27
|
+
});
|
|
28
|
+
describe('Rule: a merge request that exposes a diff summary yields its real additions and deletions', () => {
|
|
29
|
+
it('gitlab with changes: returns real additions/deletions without logging a warning', () => {
|
|
30
|
+
const warnSpy = vi.spyOn(logger, 'warn');
|
|
31
|
+
const executor = (command) => {
|
|
32
|
+
if (command.includes('/commits')) {
|
|
33
|
+
return JSON.stringify([{ id: 'c1' }, { id: 'c2' }]);
|
|
34
|
+
}
|
|
35
|
+
return graphqlEnvelope({ additions: 629, deletions: 3, fileCount: 11 });
|
|
36
|
+
};
|
|
37
|
+
const gateway = new GitLabDiffStatsFetchGateway(executor);
|
|
38
|
+
const fetched = fetchDiffStatsSafely(gateway, 'group/proj', 5444, logger);
|
|
39
|
+
expect(fetched).toEqual({ commitsCount: 2, additions: 629, deletions: 3 });
|
|
40
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('Rule: a fetch with no usable diff summary yields no change-size data and is logged as a warning', () => {
|
|
44
|
+
it('gitlab no diff summary: returns null and logs a warning once', () => {
|
|
45
|
+
const warnSpy = vi.spyOn(logger, 'warn');
|
|
46
|
+
const executor = (command) => {
|
|
47
|
+
if (command.includes('/commits')) {
|
|
48
|
+
return JSON.stringify([{ id: 'c1' }]);
|
|
49
|
+
}
|
|
50
|
+
return JSON.stringify({ data: { project: { mergeRequest: null } } });
|
|
51
|
+
};
|
|
52
|
+
const gateway = new GitLabDiffStatsFetchGateway(executor);
|
|
53
|
+
const fetched = fetchDiffStatsSafely(gateway, 'group/proj', 9999, logger);
|
|
54
|
+
expect(fetched).toBeNull();
|
|
55
|
+
expect(warnSpy).toHaveBeenCalledOnce();
|
|
56
|
+
});
|
|
57
|
+
it('gitlab fetch error: returns null and logs a warning once', () => {
|
|
58
|
+
const warnSpy = vi.spyOn(logger, 'warn');
|
|
59
|
+
const executor = () => {
|
|
60
|
+
throw new Error('glab unreachable');
|
|
61
|
+
};
|
|
62
|
+
const gateway = new GitLabDiffStatsFetchGateway(executor);
|
|
63
|
+
const fetched = fetchDiffStatsSafely(gateway, 'missing', 1, logger);
|
|
64
|
+
expect(fetched).toBeNull();
|
|
65
|
+
expect(warnSpy).toHaveBeenCalledOnce();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=206-fix-gitlab-diff-stats-source.acceptance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"206-fix-gitlab-diff-stats-source.acceptance.test.js","sourceRoot":"","sources":["../../../src/tests/acceptance/206-fix-gitlab-diff-stats-source.acceptance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,88 +1,127 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
2
|
import { GitLabDiffStatsFetchGateway } from '../../../../modules/statistics-insights/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.js';
|
|
3
|
+
function graphqlEnvelope(diffStatsSummary) {
|
|
4
|
+
return JSON.stringify({ data: { project: { mergeRequest: { diffStatsSummary } } } });
|
|
5
|
+
}
|
|
3
6
|
describe('GitLabDiffStatsFetchGateway', () => {
|
|
4
7
|
describe('fetchDiffStats', () => {
|
|
5
|
-
it('should
|
|
8
|
+
it('should read additions/deletions from GraphQL diff summary and count commits', () => {
|
|
6
9
|
const stubExecutor = (command) => {
|
|
7
10
|
if (command.includes('/commits')) {
|
|
8
11
|
return JSON.stringify([{ id: 'commit1' }, { id: 'commit2' }, { id: 'commit3' }]);
|
|
9
12
|
}
|
|
10
|
-
return
|
|
11
|
-
changes_count: '5',
|
|
12
|
-
additions: 150,
|
|
13
|
-
deletions: 30,
|
|
14
|
-
});
|
|
13
|
+
return graphqlEnvelope({ additions: 629, deletions: 3, fileCount: 11 });
|
|
15
14
|
};
|
|
16
15
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
17
|
-
const result = gateway.fetchDiffStats('group/project',
|
|
18
|
-
expect(result).
|
|
19
|
-
expect(result?.additions).toBe(150);
|
|
20
|
-
expect(result?.deletions).toBe(30);
|
|
21
|
-
expect(result?.commitsCount).toBe(3);
|
|
16
|
+
const result = gateway.fetchDiffStats('group/project', 5444);
|
|
17
|
+
expect(result).toEqual({ commitsCount: 3, additions: 629, deletions: 3 });
|
|
22
18
|
});
|
|
23
|
-
it('should
|
|
19
|
+
it('should emit a GraphQL query with the raw project fullPath and merge request iid', () => {
|
|
24
20
|
const capturedCommands = [];
|
|
25
21
|
const stubExecutor = (command) => {
|
|
26
22
|
capturedCommands.push(command);
|
|
27
23
|
if (command.includes('/commits')) {
|
|
28
24
|
return JSON.stringify([{ id: 'commit1' }]);
|
|
29
25
|
}
|
|
30
|
-
return
|
|
26
|
+
return graphqlEnvelope({ additions: 0, deletions: 0, fileCount: 0 });
|
|
31
27
|
};
|
|
32
28
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
33
29
|
gateway.fetchDiffStats('group/project', 99);
|
|
34
|
-
|
|
35
|
-
expect(
|
|
30
|
+
const graphqlCommand = capturedCommands.find((command) => command.includes('graphql'));
|
|
31
|
+
expect(graphqlCommand).toBeDefined();
|
|
32
|
+
expect(graphqlCommand).toContain('fullPath:"group/project"');
|
|
33
|
+
expect(graphqlCommand).toContain('iid:"99"');
|
|
36
34
|
});
|
|
37
|
-
it('should
|
|
38
|
-
const
|
|
39
|
-
|
|
35
|
+
it('should encode the project path for the REST commits call', () => {
|
|
36
|
+
const capturedCommands = [];
|
|
37
|
+
const stubExecutor = (command) => {
|
|
38
|
+
capturedCommands.push(command);
|
|
39
|
+
if (command.includes('/commits')) {
|
|
40
|
+
return JSON.stringify([{ id: 'commit1' }]);
|
|
41
|
+
}
|
|
42
|
+
return graphqlEnvelope({ additions: 0, deletions: 0, fileCount: 0 });
|
|
40
43
|
};
|
|
41
44
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
gateway.fetchDiffStats('group/project', 99);
|
|
46
|
+
const commitsCommand = capturedCommands.find((command) => command.includes('/commits'));
|
|
47
|
+
expect(commitsCommand).toContain('group%2Fproject');
|
|
48
|
+
expect(commitsCommand).toContain('merge_requests/99/commits');
|
|
44
49
|
});
|
|
45
|
-
it('should
|
|
50
|
+
it('should throw when the project is missing from the GraphQL response', () => {
|
|
51
|
+
const stubExecutor = (command) => {
|
|
52
|
+
if (command.includes('/commits')) {
|
|
53
|
+
return JSON.stringify([{ id: 'commit1' }]);
|
|
54
|
+
}
|
|
55
|
+
return JSON.stringify({ data: { project: null } });
|
|
56
|
+
};
|
|
57
|
+
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
58
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
59
|
+
});
|
|
60
|
+
it('should throw when the merge request is missing from the GraphQL response', () => {
|
|
61
|
+
const stubExecutor = (command) => {
|
|
62
|
+
if (command.includes('/commits')) {
|
|
63
|
+
return JSON.stringify([{ id: 'commit1' }]);
|
|
64
|
+
}
|
|
65
|
+
return JSON.stringify({ data: { project: { mergeRequest: null } } });
|
|
66
|
+
};
|
|
67
|
+
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
68
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
69
|
+
});
|
|
70
|
+
it('should throw when the diff summary is missing from the GraphQL response', () => {
|
|
71
|
+
const stubExecutor = (command) => {
|
|
72
|
+
if (command.includes('/commits')) {
|
|
73
|
+
return JSON.stringify([{ id: 'commit1' }]);
|
|
74
|
+
}
|
|
75
|
+
return JSON.stringify({ data: { project: { mergeRequest: { diffStatsSummary: null } } } });
|
|
76
|
+
};
|
|
77
|
+
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
78
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
79
|
+
});
|
|
80
|
+
it('should throw when the GraphQL call throws', () => {
|
|
81
|
+
const stubExecutor = (command) => {
|
|
82
|
+
if (command.includes('graphql')) {
|
|
83
|
+
throw new Error('GraphQL API error');
|
|
84
|
+
}
|
|
85
|
+
return JSON.stringify([{ id: 'commit1' }]);
|
|
86
|
+
};
|
|
87
|
+
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
88
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
89
|
+
});
|
|
90
|
+
it('should throw when the commits call throws', () => {
|
|
46
91
|
const stubExecutor = (command) => {
|
|
47
92
|
if (command.includes('/commits')) {
|
|
48
93
|
throw new Error('Commits API error');
|
|
49
94
|
}
|
|
50
|
-
return
|
|
95
|
+
return graphqlEnvelope({ additions: 10, deletions: 5, fileCount: 2 });
|
|
51
96
|
};
|
|
52
97
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
53
|
-
|
|
54
|
-
expect(result).toBeNull();
|
|
98
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
55
99
|
});
|
|
56
|
-
it('should
|
|
100
|
+
it('should throw when the GraphQL response is malformed JSON', () => {
|
|
57
101
|
const stubExecutor = () => 'not valid json';
|
|
58
102
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
59
|
-
|
|
60
|
-
expect(result).toBeNull();
|
|
103
|
+
expect(() => gateway.fetchDiffStats('group/project', 42)).toThrow();
|
|
61
104
|
});
|
|
62
|
-
it('should
|
|
105
|
+
it('should return zero additions and deletions without throwing', () => {
|
|
63
106
|
const stubExecutor = (command) => {
|
|
64
107
|
if (command.includes('/commits')) {
|
|
65
108
|
return JSON.stringify([{ id: 'commit1' }]);
|
|
66
109
|
}
|
|
67
|
-
return
|
|
110
|
+
return graphqlEnvelope({ additions: 0, deletions: 0, fileCount: 0 });
|
|
68
111
|
};
|
|
69
112
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
70
113
|
const result = gateway.fetchDiffStats('group/project', 10);
|
|
71
|
-
expect(result).
|
|
72
|
-
expect(result?.additions).toBe(0);
|
|
73
|
-
expect(result?.deletions).toBe(0);
|
|
74
|
-
expect(result?.commitsCount).toBe(1);
|
|
114
|
+
expect(result).toEqual({ commitsCount: 1, additions: 0, deletions: 0 });
|
|
75
115
|
});
|
|
76
|
-
it('should
|
|
116
|
+
it('should count zero commits when the commits array is empty', () => {
|
|
77
117
|
const stubExecutor = (command) => {
|
|
78
118
|
if (command.includes('/commits')) {
|
|
79
119
|
return JSON.stringify([]);
|
|
80
120
|
}
|
|
81
|
-
return
|
|
121
|
+
return graphqlEnvelope({ additions: 10, deletions: 5, fileCount: 1 });
|
|
82
122
|
};
|
|
83
123
|
const gateway = new GitLabDiffStatsFetchGateway(stubExecutor);
|
|
84
124
|
const result = gateway.fetchDiffStats('group/project', 42);
|
|
85
|
-
expect(result).not.toBeNull();
|
|
86
125
|
expect(result?.commitsCount).toBe(0);
|
|
87
126
|
});
|
|
88
127
|
});
|
package/dist/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffStatsFetch.gitlab.gateway.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4FAA4F,CAAC;AAEzI,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"diffStatsFetch.gitlab.gateway.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/interface-adapters/gateways/diffStatsFetch.gitlab.gateway.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,18 +42,22 @@ describe('backfillDiffStats', () => {
|
|
|
42
42
|
expect(result.status).toBe('completed');
|
|
43
43
|
expect(diffStatsFetchGateway.fetchCallCount).toBe(0);
|
|
44
44
|
});
|
|
45
|
-
it('should
|
|
45
|
+
it('should retry reviews that have diffStats === null (poisoned by a failed fetch)', async () => {
|
|
46
46
|
const statsGateway = new InMemoryStatsGateway();
|
|
47
47
|
const diffStatsFetchGateway = new StubDiffStatsFetchGateway();
|
|
48
48
|
const reviews = [ReviewStatsFactory.create({ id: 'r1', mrNumber: 10, diffStats: null })];
|
|
49
49
|
const projectStats = ProjectStatsFactory.create({ reviews });
|
|
50
50
|
statsGateway.saveProjectStats('/test/project', projectStats);
|
|
51
|
+
diffStatsFetchGateway.setResponse(10, { commitsCount: 3, additions: 100, deletions: 20 });
|
|
51
52
|
const promise = backfillDiffStats({ projectPath: '/test/project', batchSize: 10, batchDelayMs: 0 }, { statsGateway, diffStatsFetchGateway, logger: { warn: vi.fn() } });
|
|
52
53
|
await vi.runAllTimersAsync();
|
|
53
54
|
const result = await promise;
|
|
54
|
-
expect(result.total).toBe(
|
|
55
|
-
expect(result.completed).toBe(
|
|
56
|
-
expect(
|
|
55
|
+
expect(result.total).toBe(1);
|
|
56
|
+
expect(result.completed).toBe(1);
|
|
57
|
+
expect(result.failed).toBe(0);
|
|
58
|
+
expect(diffStatsFetchGateway.fetchCallCount).toBe(1);
|
|
59
|
+
const saved = statsGateway.loadProjectStats('/test/project');
|
|
60
|
+
expect(saved?.reviews[0].diffStats).toEqual({ commitsCount: 3, additions: 100, deletions: 20 });
|
|
57
61
|
});
|
|
58
62
|
it('should call onProgress after each review', async () => {
|
|
59
63
|
const statsGateway = new InMemoryStatsGateway();
|
|
@@ -137,7 +141,7 @@ describe('backfillDiffStats', () => {
|
|
|
137
141
|
const diffStatsFetchGateway = new StubDiffStatsFetchGateway();
|
|
138
142
|
const reviews = [
|
|
139
143
|
ReviewStatsFactory.withDiffStats({ commitsCount: 1, additions: 10, deletions: 5 }, { id: 'r1', mrNumber: 10 }),
|
|
140
|
-
ReviewStatsFactory.
|
|
144
|
+
ReviewStatsFactory.withDiffStats({ commitsCount: 2, additions: 20, deletions: 10 }, { id: 'r2', mrNumber: 11 }),
|
|
141
145
|
];
|
|
142
146
|
const projectStats = ProjectStatsFactory.create({ reviews });
|
|
143
147
|
statsGateway.saveProjectStats('/test/project', projectStats);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfillDiffStats.usecase.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/stats/backfillDiffStats.usecase.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backfillDiffStats.usecase.test.js","sourceRoot":"","sources":["../../../../../src/tests/units/usecases/stats/backfillDiffStats.usecase.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reviewflow",
|
|
3
|
-
"version": "3.39.
|
|
3
|
+
"version": "3.39.1",
|
|
4
4
|
"description": "AI-powered code review automation for GitLab/GitHub using Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main/server.js",
|
|
@@ -92,9 +92,13 @@
|
|
|
92
92
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
|
|
93
93
|
"resolutions": {
|
|
94
94
|
"esbuild": "^0.25.0",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
95
|
+
"hono": "^4.12.25",
|
|
96
|
+
"ws": "^8.21.0",
|
|
97
|
+
"qs": "^6.15.2",
|
|
98
|
+
"vitest/vite": "^7.3.5",
|
|
99
|
+
"@vitest/coverage-v8/vite": "^7.3.5",
|
|
100
|
+
"@vitest/ui/vite": "^7.3.5",
|
|
101
|
+
"vite-node/vite": "^7.3.5",
|
|
102
|
+
"vitepress/vite": "^6.4.3"
|
|
99
103
|
}
|
|
100
104
|
}
|