@godv61/dsh-task-engine 0.29.2 → 0.29.8
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/.adaptive-test.mjs +302 -149
- package/.codex-project-test.mjs +18 -18
- package/.evidence-test.mjs +16 -3
- package/.hook-test.mjs +19 -19
- package/.resource-test.mjs +19 -2
- package/.roundtrip-test.mjs +8 -3
- package/.sonar-credential-test.mjs +38 -0
- package/.sonarlint-local-test.mjs +65 -0
- package/.workflow-test.mjs +29 -12
- package/README.md +22 -22
- package/docs/CHANGELOG.md +33 -14
- package/docs/README.md +6 -6
- package/docs/adaptive-workflows.md +85 -71
- package/docs/configuration.md +4 -4
- package/docs/faq.md +21 -11
- package/docs/getting-started.md +9 -9
- package/docs/manual-legacy.html +1 -1
- package/docs/manual.html +124 -116
- package/docs/roadmap.md +7 -7
- package/hooks/commit-msg +1 -1
- package/lib/adaptive.js +1 -1
- package/lib/adaptive.js.map +1 -1
- package/lib/client.js +337 -20
- package/lib/client.js.map +2 -2
- package/lib/controller.d.ts +35 -0
- package/lib/controller.js +68 -0
- package/lib/controller.js.map +1 -1
- package/lib/dev-task.d.ts +2 -0
- package/lib/dev-task.js +261 -31
- package/lib/dev-task.js.map +1 -1
- package/lib/engine.d.ts +1 -1
- package/lib/hook.js +3 -3
- package/lib/hook.js.map +1 -1
- package/lib/project-init.d.ts +4 -0
- package/lib/project-init.js +21 -2
- package/lib/project-init.js.map +1 -1
- package/lib/skill-audit.js +9 -1
- package/lib/skill-audit.js.map +1 -1
- package/lib/sonar-credential.d.ts +17 -0
- package/lib/sonar-credential.js +17 -0
- package/lib/sonar-credential.js.map +1 -0
- package/lib/sonar-report.d.ts +4 -0
- package/lib/sonar-report.js +40 -0
- package/lib/sonar-report.js.map +1 -0
- package/lib/sonar.d.ts +23 -2
- package/lib/sonar.js +55 -4
- package/lib/sonar.js.map +1 -1
- package/lib/sonarlint-local.d.ts +15 -0
- package/lib/sonarlint-local.js +307 -0
- package/lib/sonarlint-local.js.map +1 -0
- package/package.json +9 -7
- package/preset/enable.mjs +2 -2
- package/preset/persona.md +4 -4
- package/scripts/verify-dsh-compat.mjs +14 -14
- package/scripts/verify-package.mjs +7 -7
- package/skills/architecture-design/SKILL.md +11 -11
- package/skills/code-development/SKILL.md +11 -11
- package/skills/code-review/SKILL.md +11 -11
- package/skills/eng-delivery/SKILL.md +6 -4
- package/skills/requirements-analysis/SKILL.md +11 -11
- package/skills/task-orchestration/SKILL.md +11 -11
- package/skills/test-validation/SKILL.md +11 -11
package/lib/project-init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-init.js","sourceRoot":"","sources":["../src/project-init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-init.js","sourceRoot":"","sources":["../src/project-init.ts"],"names":[],"mappings":"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"}
|
package/lib/skill-audit.js
CHANGED
|
@@ -19,8 +19,16 @@ export function loadedSkills(session) {
|
|
|
19
19
|
}
|
|
20
20
|
else if (event.type === 'tool/result') {
|
|
21
21
|
const data = event.data;
|
|
22
|
-
if (data.error)
|
|
22
|
+
if (data.error || data.message?.isError)
|
|
23
23
|
continue;
|
|
24
|
+
// DSH 0.2 stores the call id on the tool message itself. Older session
|
|
25
|
+
// logs carried it on a tool-result content block; accept both shapes.
|
|
26
|
+
const messageCallId = data.message?.toolCallId;
|
|
27
|
+
if (messageCallId) {
|
|
28
|
+
const name = calls.get(messageCallId);
|
|
29
|
+
if (name)
|
|
30
|
+
loaded.set(name, messageCallId);
|
|
31
|
+
}
|
|
24
32
|
for (const block of data.message?.content ?? []) {
|
|
25
33
|
if (block.type !== 'tool-result' || block.isError || !block.toolCallId)
|
|
26
34
|
continue;
|
package/lib/skill-audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"AAQA,2GAA2G;AAC3G,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAA8D,CAAA;YACjF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YACjF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAqF,CAAA;gBACnI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;uBACjG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;oBACnC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;YAChE,CAAC;YAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface SonarCredentialInfo {
|
|
2
|
+
configured: boolean;
|
|
3
|
+
source?: string;
|
|
4
|
+
writable: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** The existing DSH credential service; kept structural so this plugin needs no new runtime dependency. */
|
|
7
|
+
export interface SonarCredentialProvider {
|
|
8
|
+
describe(ref: string): Promise<SonarCredentialInfo>;
|
|
9
|
+
set(ref: string, value: string): Promise<void>;
|
|
10
|
+
unset(ref: string): Promise<void>;
|
|
11
|
+
resolve(ref: string): Promise<{
|
|
12
|
+
value: string;
|
|
13
|
+
source: string;
|
|
14
|
+
} | undefined>;
|
|
15
|
+
}
|
|
16
|
+
export declare function sonarCredentialRef(workspace: string): string;
|
|
17
|
+
export declare function resolveSonarToken(provider: SonarCredentialProvider | undefined, workspace: string | undefined, legacyValue: string | undefined): Promise<string>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Keep Sonar tokens in the local DSH credential provider, scoped by workspace. */
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
|
+
export function sonarCredentialRef(workspace) {
|
|
5
|
+
const normalized = process.platform === 'win32' ? resolve(workspace).toLowerCase() : resolve(workspace);
|
|
6
|
+
const suffix = createHash('sha256').update(normalized).digest('hex').slice(0, 24).toUpperCase();
|
|
7
|
+
return `DSH_TASK_ENGINE_SONAR_${suffix}`;
|
|
8
|
+
}
|
|
9
|
+
export async function resolveSonarToken(provider, workspace, legacyValue) {
|
|
10
|
+
if (provider && workspace) {
|
|
11
|
+
const saved = await provider.resolve(sonarCredentialRef(workspace));
|
|
12
|
+
if (saved?.value)
|
|
13
|
+
return saved.value;
|
|
14
|
+
}
|
|
15
|
+
return legacyValue ?? '';
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=sonar-credential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonar-credential.js","sourceRoot":"","sources":["../src/sonar-credential.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWnC,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvG,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/F,OAAO,yBAAyB,MAAM,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAA6C,EAAE,SAA6B,EAClH,WAA+B;IAC/B,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QACnE,IAAI,KAAK,EAAE,KAAK;YAAE,OAAO,KAAK,CAAC,KAAK,CAAA;IACtC,CAAC;IACD,OAAO,WAAW,IAAI,EAAE,CAAA;AAC1B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Human-readable, credential-free record of one SonarQube review run. */
|
|
2
|
+
import type { SonarAudit, SonarPolicy } from './sonar.ts';
|
|
3
|
+
export declare function sonarReportPath(taskId: string, audit: SonarAudit): string;
|
|
4
|
+
export declare function renderSonarReport(taskId: string, policy: SonarPolicy, audit: SonarAudit): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function line(value) {
|
|
2
|
+
return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>')
|
|
3
|
+
.replace(/[\r\n]+/gu, ' ').replaceAll('`', '\\`').replaceAll('|', '\\|');
|
|
4
|
+
}
|
|
5
|
+
export function sonarReportPath(taskId, audit) {
|
|
6
|
+
const stamp = audit.checked_at.replace(/[^A-Za-z0-9-]/gu, '-');
|
|
7
|
+
return `.dsh/reviews/${taskId}/${stamp}-${audit.analysis_id.slice(0, 8)}.md`;
|
|
8
|
+
}
|
|
9
|
+
export function renderSonarReport(taskId, policy, audit) {
|
|
10
|
+
const blocked = new Set(audit.blocking.map(finding => finding.key));
|
|
11
|
+
const rows = [
|
|
12
|
+
`# SonarQube 代码审核:${line(taskId)}`,
|
|
13
|
+
'',
|
|
14
|
+
`- 时间:${line(audit.checked_at)}`,
|
|
15
|
+
`- 来源:${line(policy.source ?? 'ci')}`,
|
|
16
|
+
`- 项目 Key:${line(policy.project_key)}`,
|
|
17
|
+
`- 分析目标:${line(audit.target)}`,
|
|
18
|
+
`- 本次结论:${line(audit.gate)}`,
|
|
19
|
+
`- 问题:${audit.findings.length} 条;阻断:${audit.blocking.length} 条`,
|
|
20
|
+
`- 本地审核范围:${policy.include_paths?.length ? policy.include_paths.map(line).join('、') : '任务登记的全部代码文件'}`,
|
|
21
|
+
'',
|
|
22
|
+
'## 本次分析的文件',
|
|
23
|
+
'',
|
|
24
|
+
...(audit.scanned_files?.length ? audit.scanned_files.map(file => `- ${line(file)}`) : ['- 由 CI 或服务端分析范围决定']),
|
|
25
|
+
'',
|
|
26
|
+
'## 未覆盖的文件',
|
|
27
|
+
'',
|
|
28
|
+
...(audit.uncovered_files?.length ? audit.uncovered_files.map(file => `- ${line(file)}`) : ['- 无']),
|
|
29
|
+
'',
|
|
30
|
+
'## 新代码问题',
|
|
31
|
+
'',
|
|
32
|
+
...(audit.findings.length ? audit.findings.map((finding, index) => `${index + 1}. ${blocked.has(finding.key) ? '**阻断** ' : ''}${line(finding.severity)} · ${line(finding.rule)} · ${line(finding.file)}${finding.line === undefined ? '' : `:${finding.line}`}\n ${line(finding.message)}(${line(finding.key)})`)
|
|
33
|
+
: ['- 无']),
|
|
34
|
+
'',
|
|
35
|
+
'本报告记录一次审核;代码或规则变化后请重新测试并审核。Token 不写入报告。',
|
|
36
|
+
'',
|
|
37
|
+
];
|
|
38
|
+
return rows.join('\n');
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sonar-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonar-report.js","sourceRoot":"","sources":["../src/sonar-report.ts"],"names":[],"mappings":"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"}
|
package/lib/sonar.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Optional SonarQube audit
|
|
1
|
+
/** Optional SonarQube audit for an existing CI scan or a local scanner run. */
|
|
2
2
|
export interface SonarPolicy {
|
|
3
3
|
enabled: true;
|
|
4
4
|
host_url: string;
|
|
@@ -6,6 +6,12 @@ export interface SonarPolicy {
|
|
|
6
6
|
mode: 'branch' | 'pull-request';
|
|
7
7
|
/** Name of an environment variable containing a SonarQube user token. */
|
|
8
8
|
token_env: string;
|
|
9
|
+
/** CI is the backwards-compatible default. Local runs the configured scanner before inspection. */
|
|
10
|
+
source?: 'ci' | 'local' | 'ide-local';
|
|
11
|
+
reference_branch?: string;
|
|
12
|
+
scan_command?: string;
|
|
13
|
+
/** Project-relative directories or files analyzed by the configured CI scan (ide-local only). */
|
|
14
|
+
include_paths?: string[];
|
|
9
15
|
}
|
|
10
16
|
export interface SonarFinding {
|
|
11
17
|
key: string;
|
|
@@ -19,15 +25,30 @@ export interface SonarAudit {
|
|
|
19
25
|
ce_task_id: string;
|
|
20
26
|
analysis_id: string;
|
|
21
27
|
gate: string;
|
|
28
|
+
/** Unfiltered server Quality Gate, retained while this audit gates only new-code conditions. */
|
|
29
|
+
server_gate?: string;
|
|
22
30
|
checked_at: string;
|
|
23
31
|
scope_hash: string;
|
|
24
32
|
commit_hash?: string;
|
|
25
33
|
findings: SonarFinding[];
|
|
26
34
|
blocking: SonarFinding[];
|
|
35
|
+
/** Changed code files for which the local analyzer could not run. */
|
|
36
|
+
uncovered_files?: string[];
|
|
27
37
|
/** Branch or merge request used for new-code findings. */
|
|
28
38
|
target: string;
|
|
39
|
+
/** Project-relative Markdown report written for this audit run. */
|
|
40
|
+
report_path?: string;
|
|
41
|
+
/** Changed task files actually analyzed by the local engine. */
|
|
42
|
+
scanned_files?: string[];
|
|
29
43
|
}
|
|
44
|
+
/** Limit local analysis to the project-relative source roots used by the project's scanner. */
|
|
45
|
+
export declare function validAuditIncludePaths(value: unknown): value is string[];
|
|
46
|
+
export declare function isIncludedAuditPath(path: string, includePaths: string[] | undefined): boolean;
|
|
47
|
+
/** A project file must not turn a credential-bearing scanner invocation into an arbitrary shell command. */
|
|
48
|
+
export declare function validLocalScanCommand(command: string): boolean;
|
|
49
|
+
/** Refuse a branch upload before invoking the scanner when the server cannot store it safely. */
|
|
50
|
+
export declare function assertLocalSonarReady(policy: SonarPolicy, token: string, fetcher?: typeof fetch): Promise<void>;
|
|
30
51
|
/** Both SonarQube severity schemes: Standard and Multi-Quality Rule. */
|
|
31
52
|
export declare function isBlockingFinding(finding: SonarFinding): boolean;
|
|
32
53
|
/** Resolve an exact CI Compute Engine task to its analysis and Quality Gate. */
|
|
33
|
-
export declare function inspectSonar(policy: SonarPolicy, token: string, ceTaskId: string, target: string, scopeHash: string, fetcher?: typeof fetch): Promise<SonarAudit>;
|
|
54
|
+
export declare function inspectSonar(policy: SonarPolicy, token: string, ceTaskId: string, target: string, scopeHash: string, fetcher?: typeof fetch, newCodeOnly?: boolean): Promise<SonarAudit>;
|
package/lib/sonar.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
/** Limit local analysis to the project-relative source roots used by the project's scanner. */
|
|
2
|
+
export function validAuditIncludePaths(value) {
|
|
3
|
+
return Array.isArray(value) && value.length <= 64 && value.every(path => typeof path === 'string' && path.length > 0 && path.length <= 240
|
|
4
|
+
&& /^[A-Za-z0-9._/-]+$/u.test(path)
|
|
5
|
+
&& path.split('/').every((part) => part !== '' && part !== '.' && part !== '..'));
|
|
6
|
+
}
|
|
7
|
+
export function isIncludedAuditPath(path, includePaths) {
|
|
8
|
+
if (!includePaths?.length)
|
|
9
|
+
return true;
|
|
10
|
+
const normalized = path.replace(/\\/gu, '/');
|
|
11
|
+
return includePaths.some(prefix => normalized === prefix || normalized.startsWith(`${prefix}/`));
|
|
12
|
+
}
|
|
13
|
+
/** A project file must not turn a credential-bearing scanner invocation into an arbitrary shell command. */
|
|
14
|
+
export function validLocalScanCommand(command) {
|
|
15
|
+
const value = command.trim();
|
|
16
|
+
if (!value || /[^A-Za-z0-9_ .:\\/='",-]/u.test(value) || /\r|\n|sonar\.(?:token|login|password)|SONAR_TOKEN/iu.test(value))
|
|
17
|
+
return false;
|
|
18
|
+
const executable = value.split(/\s+/u)[0];
|
|
19
|
+
return /(?:^|[\\/])(?:mvn|mvn\.cmd|mvnw|mvnw\.cmd|sonar-scanner|sonar-scanner\.bat|sonar-scanner\.cmd)$/iu.test(executable);
|
|
20
|
+
}
|
|
1
21
|
function object(value) {
|
|
2
22
|
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
3
23
|
throw new Error('SonarQube returned an invalid object');
|
|
@@ -18,12 +38,27 @@ async function api(policy, token, path, params, fetcher) {
|
|
|
18
38
|
throw new Error(`SonarQube ${path} returned HTTP ${response.status}`);
|
|
19
39
|
return object(await response.json());
|
|
20
40
|
}
|
|
41
|
+
/** Refuse a branch upload before invoking the scanner when the server cannot store it safely. */
|
|
42
|
+
export async function assertLocalSonarReady(policy, token, fetcher = fetch) {
|
|
43
|
+
const navigation = await api(policy, token, 'navigation/global', {}, fetcher);
|
|
44
|
+
const edition = typeof navigation.edition === 'string' ? navigation.edition.toLowerCase() : '';
|
|
45
|
+
if (edition === 'community') {
|
|
46
|
+
throw new Error('SonarQube Community Build supports only the main analysis branch; local task-branch scanning needs Developer Edition or higher. The shared main analysis was not changed.');
|
|
47
|
+
}
|
|
48
|
+
if (!['developer', 'enterprise', 'datacenter', 'data_center'].includes(edition)) {
|
|
49
|
+
throw new Error('cannot confirm SonarQube branch-analysis edition; refusing to upload a local scan to the shared project');
|
|
50
|
+
}
|
|
51
|
+
const branches = await api(policy, token, 'project_branches/list', { project: policy.project_key }, fetcher);
|
|
52
|
+
if (!Array.isArray(branches.branches) || !branches.branches.some(entry => object(entry).name === policy.reference_branch)) {
|
|
53
|
+
throw new Error(`SonarQube reference branch ${policy.reference_branch ?? '(missing)'} has no analysis in this project`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
21
56
|
/** Both SonarQube severity schemes: Standard and Multi-Quality Rule. */
|
|
22
57
|
export function isBlockingFinding(finding) {
|
|
23
58
|
return ['MAJOR', 'CRITICAL', 'BLOCKER', 'MEDIUM', 'HIGH'].includes(finding.severity.toUpperCase());
|
|
24
59
|
}
|
|
25
60
|
/** Resolve an exact CI Compute Engine task to its analysis and Quality Gate. */
|
|
26
|
-
export async function inspectSonar(policy, token, ceTaskId, target, scopeHash, fetcher = fetch) {
|
|
61
|
+
export async function inspectSonar(policy, token, ceTaskId, target, scopeHash, fetcher = fetch, newCodeOnly = false) {
|
|
27
62
|
if (!token)
|
|
28
63
|
throw new Error(`SonarQube token environment variable ${policy.token_env} is not set`);
|
|
29
64
|
if (!/^[\w-]{8,120}$/u.test(ceTaskId))
|
|
@@ -33,7 +68,7 @@ export async function inspectSonar(policy, token, ceTaskId, target, scopeHash, f
|
|
|
33
68
|
const ce = object((await api(policy, token, 'ce/task', { id: ceTaskId }, fetcher)).task);
|
|
34
69
|
const status = string(ce.status, 'task.status');
|
|
35
70
|
if (status !== 'SUCCESS')
|
|
36
|
-
throw new Error(`SonarQube Compute Engine task is ${status}; wait for its
|
|
71
|
+
throw new Error(`SonarQube Compute Engine task is ${status}; wait for its analysis to finish successfully`);
|
|
37
72
|
const analysisId = string(ce.analysisId, 'task.analysisId');
|
|
38
73
|
const componentKey = ce.componentKey;
|
|
39
74
|
if (typeof componentKey === 'string' && componentKey !== policy.project_key) {
|
|
@@ -43,7 +78,22 @@ export async function inspectSonar(policy, token, ceTaskId, target, scopeHash, f
|
|
|
43
78
|
if (typeof taskTarget === 'string' && taskTarget !== target) {
|
|
44
79
|
throw new Error(`SonarQube analysis belongs to ${taskTarget}, expected ${target}`);
|
|
45
80
|
}
|
|
46
|
-
const
|
|
81
|
+
const gateStatus = object((await api(policy, token, 'qualitygates/project_status', { analysisId }, fetcher)).projectStatus);
|
|
82
|
+
const serverGate = string(gateStatus.status, 'projectStatus.status');
|
|
83
|
+
if (newCodeOnly && serverGate !== 'OK' && serverGate !== 'ERROR') {
|
|
84
|
+
throw new Error(`SonarQube Quality Gate is ${serverGate}; local audit cannot claim a pass`);
|
|
85
|
+
}
|
|
86
|
+
let gate = serverGate;
|
|
87
|
+
if (newCodeOnly) {
|
|
88
|
+
if (!Array.isArray(gateStatus.conditions)) {
|
|
89
|
+
if (serverGate !== 'OK')
|
|
90
|
+
throw new Error('SonarQube did not return Quality Gate conditions; cannot separate new-code failures from old-code failures');
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const newConditions = gateStatus.conditions.map(object).filter(condition => typeof condition.metricKey === 'string' && condition.metricKey.startsWith('new_'));
|
|
94
|
+
gate = newConditions.some(condition => condition.status !== 'OK') ? 'ERROR' : 'OK';
|
|
95
|
+
}
|
|
96
|
+
}
|
|
47
97
|
const findings = [];
|
|
48
98
|
const selector = policy.mode === 'branch' ? { branch: target } : { pullRequest: target };
|
|
49
99
|
for (let page = 1; page <= 20; page++) {
|
|
@@ -74,7 +124,8 @@ export async function inspectSonar(policy, token, ceTaskId, target, scopeHash, f
|
|
|
74
124
|
if (page === 20)
|
|
75
125
|
throw new Error('SonarQube new-code findings exceed 10,000; audit cannot claim completeness');
|
|
76
126
|
}
|
|
77
|
-
return { ce_task_id: ceTaskId, analysis_id: analysisId, gate,
|
|
127
|
+
return { ce_task_id: ceTaskId, analysis_id: analysisId, gate,
|
|
128
|
+
...(newCodeOnly ? { server_gate: serverGate } : {}), checked_at: new Date().toISOString(),
|
|
78
129
|
scope_hash: scopeHash, findings, blocking: findings.filter(isBlockingFinding), target };
|
|
79
130
|
}
|
|
80
131
|
//# sourceMappingURL=sonar.js.map
|
package/lib/sonar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonar.js","sourceRoot":"","sources":["../src/sonar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sonar.js","sourceRoot":"","sources":["../src/sonar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SonarAudit, SonarPolicy } from './sonar.ts';
|
|
2
|
+
export declare function uncoveredLocalFiles(paths: string[], profiles: {
|
|
3
|
+
language?: string;
|
|
4
|
+
activeRuleCount?: number;
|
|
5
|
+
}[]): string[];
|
|
6
|
+
interface ChangedFile {
|
|
7
|
+
path: string;
|
|
8
|
+
lines: Set<number>;
|
|
9
|
+
newFile: boolean;
|
|
10
|
+
}
|
|
11
|
+
/** Compare the current working tree with a reference; an untracked file is wholly new. */
|
|
12
|
+
export declare function changedLines(root: string, reference: string, taskPaths?: string[]): Promise<ChangedFile[]>;
|
|
13
|
+
/** Analyze only changed supported files with the project's synchronized Quality Profile. */
|
|
14
|
+
export declare function inspectLocalRules(policy: SonarPolicy, token: string, root: string, scopeHash: string, signal?: AbortSignal, taskPaths?: string[]): Promise<SonarAudit>;
|
|
15
|
+
export {};
|