frontend-guardian-core 3.4.0 → 3.5.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/bin/fg-core.js +93 -7
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/baseline.d.ts +31 -3
- package/dist/utils/baseline.d.ts.map +1 -1
- package/dist/utils/baseline.js +125 -5
- package/dist/utils/baseline.js.map +1 -1
- package/dist/utils/codeowners.d.ts +31 -0
- package/dist/utils/codeowners.d.ts.map +1 -0
- package/dist/utils/codeowners.js +97 -0
- package/dist/utils/codeowners.js.map +1 -0
- package/dist/utils/notification.d.ts +52 -0
- package/dist/utils/notification.d.ts.map +1 -0
- package/dist/utils/notification.js +226 -0
- package/dist/utils/notification.js.map +1 -0
- package/package.json +3 -3
package/bin/fg-core.js
CHANGED
|
@@ -49,6 +49,10 @@ import {
|
|
|
49
49
|
compareHistoryReports,
|
|
50
50
|
formatHistoryCompare,
|
|
51
51
|
formatHistoryCompareJson,
|
|
52
|
+
CodeownersParser,
|
|
53
|
+
sendNotifications,
|
|
54
|
+
detectNotificationConfig,
|
|
55
|
+
buildNotificationPayload,
|
|
52
56
|
} from "../dist/index.js";
|
|
53
57
|
import pc from "picocolors";
|
|
54
58
|
import { runWatchMode } from "./watch-mode.js";
|
|
@@ -81,7 +85,7 @@ const MODULE_RULES = {
|
|
|
81
85
|
|
|
82
86
|
function showHelp() {
|
|
83
87
|
console.log(`
|
|
84
|
-
Frontend Guardian Core v3.
|
|
88
|
+
Frontend Guardian Core v3.5.0
|
|
85
89
|
|
|
86
90
|
Usage:
|
|
87
91
|
fg-core <project-dir> [options]
|
|
@@ -132,6 +136,9 @@ Options:
|
|
|
132
136
|
--no-cross-deps 禁用跨包依赖分析(配合 --monorepo)
|
|
133
137
|
--ai-fix 启用 AI 修复建议(需配置 FG_AI_API_KEY 环境变量)
|
|
134
138
|
--ai-model <model> 指定 AI 模型(如 gpt-4o-mini / claude-3-5-sonnet,配合 --ai-fix)
|
|
139
|
+
--team-baseline <url> 团队共享 baseline URL(支持远程加载,1小时缓存)
|
|
140
|
+
--notify 扫描完成后发送 webhook 通知(需配置 notifications)
|
|
141
|
+
--assign 通过 CODEOWNERS 为 issue 推断责任人
|
|
135
142
|
--help, -h 显示帮助
|
|
136
143
|
|
|
137
144
|
Examples:
|
|
@@ -199,6 +206,9 @@ async function main() {
|
|
|
199
206
|
crossDeps: true,
|
|
200
207
|
aiFix: false,
|
|
201
208
|
aiModel: undefined,
|
|
209
|
+
teamBaseline: undefined,
|
|
210
|
+
notify: false,
|
|
211
|
+
assign: false,
|
|
202
212
|
};
|
|
203
213
|
|
|
204
214
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -345,6 +355,15 @@ async function main() {
|
|
|
345
355
|
case "--ai-model":
|
|
346
356
|
options.aiModel = args[++i];
|
|
347
357
|
break;
|
|
358
|
+
case "--team-baseline":
|
|
359
|
+
options.teamBaseline = args[++i];
|
|
360
|
+
break;
|
|
361
|
+
case "--notify":
|
|
362
|
+
options.notify = true;
|
|
363
|
+
break;
|
|
364
|
+
case "--assign":
|
|
365
|
+
options.assign = true;
|
|
366
|
+
break;
|
|
348
367
|
case "--help":
|
|
349
368
|
case "-h":
|
|
350
369
|
showHelp();
|
|
@@ -754,12 +773,18 @@ async function runAllModules(options, cacheInstance) {
|
|
|
754
773
|
}
|
|
755
774
|
}
|
|
756
775
|
|
|
757
|
-
//
|
|
776
|
+
// v3.5.0: 为 issues 添加责任人(CODEOWNERS)
|
|
777
|
+
if (options.assign) {
|
|
778
|
+
applyAssignees(allResults, externalResults, options.projectDir);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// v2.3.0 / v3.5.0: Baseline 模式 —— 生成或应用 baseline 过滤(支持远程团队 baseline)
|
|
758
782
|
let baselineResult = null;
|
|
759
|
-
|
|
783
|
+
const baselinePath = options.teamBaseline || options.baseline;
|
|
784
|
+
if (baselinePath) {
|
|
760
785
|
const allIssues = collectAllIssues(allResults, externalResults);
|
|
761
786
|
if (options.generateBaseline) {
|
|
762
|
-
const baseline = new BaselineManager(
|
|
787
|
+
const baseline = new BaselineManager(baselinePath, options.projectDir);
|
|
763
788
|
baseline.save(allIssues, { projectDir: options.projectDir });
|
|
764
789
|
if (!options.json) {
|
|
765
790
|
console.log(pc.cyan(`📋 Baseline 已生成: ${baseline.getPath()}`));
|
|
@@ -767,7 +792,7 @@ async function runAllModules(options, cacheInstance) {
|
|
|
767
792
|
}
|
|
768
793
|
process.exit(0);
|
|
769
794
|
}
|
|
770
|
-
baselineResult = applyBaselineToResults(allResults, externalResults,
|
|
795
|
+
baselineResult = await applyBaselineToResults(allResults, externalResults, baselinePath, options.projectDir);
|
|
771
796
|
if (baselineResult.baselineLoaded && !options.json) {
|
|
772
797
|
console.log(
|
|
773
798
|
pc.cyan(
|
|
@@ -1070,6 +1095,31 @@ async function runAllModules(options, cacheInstance) {
|
|
|
1070
1095
|
}
|
|
1071
1096
|
}
|
|
1072
1097
|
|
|
1098
|
+
// v3.5.0: 发送扫描结果通知
|
|
1099
|
+
if (options.notify) {
|
|
1100
|
+
const notifyConfig = detectNotificationConfig();
|
|
1101
|
+
if (
|
|
1102
|
+
notifyConfig.feishu?.enabled ||
|
|
1103
|
+
notifyConfig.dingtalk?.enabled ||
|
|
1104
|
+
notifyConfig.wecom?.enabled ||
|
|
1105
|
+
notifyConfig.slack?.enabled
|
|
1106
|
+
) {
|
|
1107
|
+
const moduleResults = MODULES.map((m) => allResults[m]).filter(Boolean);
|
|
1108
|
+
const payload = buildNotificationPayload(moduleResults, {
|
|
1109
|
+
project: options.projectDir,
|
|
1110
|
+
duration: totalDuration,
|
|
1111
|
+
gatePassed: totalCritical === 0,
|
|
1112
|
+
});
|
|
1113
|
+
const notifyResults = await sendNotifications(payload, notifyConfig);
|
|
1114
|
+
for (const nr of notifyResults) {
|
|
1115
|
+
const icon = nr.success ? pc.green("✅") : pc.red("❌");
|
|
1116
|
+
console.log(pc.gray(` ${icon} ${nr.channel}: ${nr.success ? "已发送" : nr.error}`));
|
|
1117
|
+
}
|
|
1118
|
+
} else {
|
|
1119
|
+
console.log(pc.yellow("⚠️ 未配置通知渠道。请设置 FG_NOTIFY_FEISHU / FG_NOTIFY_DINGTALK / FG_NOTIFY_WECOM / FG_NOTIFY_SLACK 环境变量"));
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1073
1123
|
console.log(
|
|
1074
1124
|
pc.gray(
|
|
1075
1125
|
`⏱️ 总耗时: ${totalDuration}ms | 扫描 ${totalFilesScanned} 个文件 | ${totalFilesWithIssues} 个文件有问题`
|
|
@@ -1482,9 +1532,17 @@ function collectAllIssues(allResults, externalResults) {
|
|
|
1482
1532
|
}
|
|
1483
1533
|
|
|
1484
1534
|
/** 应用 baseline 过滤到 allResults,返回 BaselineResult */
|
|
1485
|
-
function applyBaselineToResults(allResults, externalResults, baselinePath, projectDir) {
|
|
1535
|
+
async function applyBaselineToResults(allResults, externalResults, baselinePath, projectDir) {
|
|
1486
1536
|
const allIssues = collectAllIssues(allResults, externalResults);
|
|
1487
|
-
const
|
|
1537
|
+
const isRemote = baselinePath.startsWith("http://") || baselinePath.startsWith("https://");
|
|
1538
|
+
const baseline = new BaselineManager(baselinePath, projectDir, {
|
|
1539
|
+
teamBaselineUrl: isRemote ? baselinePath : undefined,
|
|
1540
|
+
});
|
|
1541
|
+
|
|
1542
|
+
if (isRemote) {
|
|
1543
|
+
await baseline.init();
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1488
1546
|
const baselineResult = baseline.filterNewIssues(allIssues);
|
|
1489
1547
|
|
|
1490
1548
|
if (!baselineResult.baselineLoaded) {
|
|
@@ -1523,6 +1581,34 @@ function applyBaselineToResults(allResults, externalResults, baselinePath, proje
|
|
|
1523
1581
|
return baselineResult;
|
|
1524
1582
|
}
|
|
1525
1583
|
|
|
1584
|
+
/** 为所有 issues 添加责任人(CODEOWNERS) */
|
|
1585
|
+
function applyAssignees(allResults, externalResults, projectDir) {
|
|
1586
|
+
const parser = new CodeownersParser(projectDir);
|
|
1587
|
+
if (!parser.hasCodeowners()) return;
|
|
1588
|
+
|
|
1589
|
+
for (const mod of MODULES) {
|
|
1590
|
+
const r = allResults[mod];
|
|
1591
|
+
if (!r) continue;
|
|
1592
|
+
for (const sev of ["critical", "warning", "suggestion"]) {
|
|
1593
|
+
for (const issue of r.issues[sev]) {
|
|
1594
|
+
const owner = parser.getOwner(issue.file);
|
|
1595
|
+
if (owner) {
|
|
1596
|
+
issue.assignee = owner;
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
for (const er of externalResults) {
|
|
1603
|
+
for (const issue of er.issues) {
|
|
1604
|
+
const owner = parser.getOwner(issue.file);
|
|
1605
|
+
if (owner) {
|
|
1606
|
+
issue.assignee = owner;
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1526
1612
|
/** 重新计算 totals */
|
|
1527
1613
|
function recalculateTotals(allResults, externalResults) {
|
|
1528
1614
|
let critical = 0;
|
package/dist/index.d.ts
CHANGED
|
@@ -57,5 +57,10 @@ export { IncrementalDiagnostic, createIncrementalDiagnostic } from "./ide/increm
|
|
|
57
57
|
export type { DiagnosticResult, IncrementalDiagnosticOptions } from "./ide/incremental-diagnostic.js";
|
|
58
58
|
export { runLSPServer } from "./ide/lsp-server.js";
|
|
59
59
|
export type { LSPServerOptions } from "./ide/lsp-server.js";
|
|
60
|
+
export { CodeownersParser, findCodeowners, parseCodeowners, loadCodeowners, matchOwner } from "./utils/codeowners.js";
|
|
61
|
+
export type { CodeownersEntry, CodeownersResult } from "./utils/codeowners.js";
|
|
62
|
+
export { sendNotifications, detectNotificationConfig, buildNotificationPayload, } from "./utils/notification.js";
|
|
63
|
+
export type { NotificationConfig, NotificationPayload, NotificationResult } from "./utils/notification.js";
|
|
64
|
+
export { downloadBaseline, loadBaselineAsync } from "./utils/baseline.js";
|
|
60
65
|
export { getFileExt, getJSXTagName } from "./utils/common.js";
|
|
61
66
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.writeJobSummary = exports.isGitHubActions = exports.formatAllAnnotations = exports.formatIssuesAnnotations = exports.formatIssueAnnotation = exports.formatSarif = exports.generateSarif = exports.toBaselineIssue = exports.saveBaseline = exports.loadBaseline = exports.generateBaseline = exports.compareWithBaseline = exports.BaselineManager = exports.detectFixBotConfig = exports.runFixBot = exports.detectUploadConfig = exports.uploadReport = exports.formatHistoryCompareJson = exports.formatHistoryCompare = exports.compareHistoryReports = exports.generateAIFixSuggestions = exports.detectAIConfig = exports.AIFixSuggester = exports.formatWorkspaceJson = exports.formatWorkspaceReport = exports.scanWorkspace = exports.analyzeCrossPackageDeps = exports.detectMonorepo = exports.generateDashboard = exports.HistoryReport = exports.detectCIProvider = exports.generateCIConfig = exports.detectHusky = exports.hasGitHook = exports.uninstallGitHooks = exports.installGitHooks = exports.generateDefaultConfig = exports.initConfig = exports.loadConfig = exports.detectProjectMeta = exports.getAdaptiveConcurrency = exports.walkAST = exports.hasImport = exports.getImports = exports.parseAST = exports.createRegistry = exports.RuleRegistry = exports.SmartCache = exports.createEngine = exports.RuleEngine = void 0;
|
|
8
|
-
exports.getJSXTagName = exports.getFileExt = exports.runLSPServer = exports.createIncrementalDiagnostic = exports.IncrementalDiagnostic = exports.svelteRules = exports.platformRules = exports.hooksRules = exports.componentRules = exports.crossFileRules = exports.namingRules = exports.securityRules = exports.a11yRules = exports.performanceRules = exports.i18nRules = exports.runAllExternalTools = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.allExternalTools = exports.autoPublishComment = exports.createPublisher = exports.detectPublisherConfig = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.isGuardianComment = exports.COMMENT_MARKER = exports.generatePRCommentSummary = exports.generatePRComment = void 0;
|
|
8
|
+
exports.getJSXTagName = exports.getFileExt = exports.loadBaselineAsync = exports.downloadBaseline = exports.buildNotificationPayload = exports.detectNotificationConfig = exports.sendNotifications = exports.matchOwner = exports.loadCodeowners = exports.parseCodeowners = exports.findCodeowners = exports.CodeownersParser = exports.runLSPServer = exports.createIncrementalDiagnostic = exports.IncrementalDiagnostic = exports.svelteRules = exports.platformRules = exports.hooksRules = exports.componentRules = exports.crossFileRules = exports.namingRules = exports.securityRules = exports.a11yRules = exports.performanceRules = exports.i18nRules = exports.runAllExternalTools = exports.stylelintIntegration = exports.typescriptIntegration = exports.eslintIntegration = exports.allExternalTools = exports.autoPublishComment = exports.createPublisher = exports.detectPublisherConfig = exports.GitLabMRPublisher = exports.GitHubPRPublisher = exports.isGuardianComment = exports.COMMENT_MARKER = exports.generatePRCommentSummary = exports.generatePRComment = void 0;
|
|
9
9
|
var rule_engine_js_1 = require("./engine/rule-engine.js");
|
|
10
10
|
Object.defineProperty(exports, "RuleEngine", { enumerable: true, get: function () { return rule_engine_js_1.RuleEngine; } });
|
|
11
11
|
Object.defineProperty(exports, "createEngine", { enumerable: true, get: function () { return rule_engine_js_1.createEngine; } });
|
|
@@ -131,6 +131,20 @@ Object.defineProperty(exports, "IncrementalDiagnostic", { enumerable: true, get:
|
|
|
131
131
|
Object.defineProperty(exports, "createIncrementalDiagnostic", { enumerable: true, get: function () { return incremental_diagnostic_js_1.createIncrementalDiagnostic; } });
|
|
132
132
|
var lsp_server_js_1 = require("./ide/lsp-server.js");
|
|
133
133
|
Object.defineProperty(exports, "runLSPServer", { enumerable: true, get: function () { return lsp_server_js_1.runLSPServer; } });
|
|
134
|
+
// v3.5.0: Enterprise team collaboration
|
|
135
|
+
var codeowners_js_1 = require("./utils/codeowners.js");
|
|
136
|
+
Object.defineProperty(exports, "CodeownersParser", { enumerable: true, get: function () { return codeowners_js_1.CodeownersParser; } });
|
|
137
|
+
Object.defineProperty(exports, "findCodeowners", { enumerable: true, get: function () { return codeowners_js_1.findCodeowners; } });
|
|
138
|
+
Object.defineProperty(exports, "parseCodeowners", { enumerable: true, get: function () { return codeowners_js_1.parseCodeowners; } });
|
|
139
|
+
Object.defineProperty(exports, "loadCodeowners", { enumerable: true, get: function () { return codeowners_js_1.loadCodeowners; } });
|
|
140
|
+
Object.defineProperty(exports, "matchOwner", { enumerable: true, get: function () { return codeowners_js_1.matchOwner; } });
|
|
141
|
+
var notification_js_1 = require("./utils/notification.js");
|
|
142
|
+
Object.defineProperty(exports, "sendNotifications", { enumerable: true, get: function () { return notification_js_1.sendNotifications; } });
|
|
143
|
+
Object.defineProperty(exports, "detectNotificationConfig", { enumerable: true, get: function () { return notification_js_1.detectNotificationConfig; } });
|
|
144
|
+
Object.defineProperty(exports, "buildNotificationPayload", { enumerable: true, get: function () { return notification_js_1.buildNotificationPayload; } });
|
|
145
|
+
var baseline_js_2 = require("./utils/baseline.js");
|
|
146
|
+
Object.defineProperty(exports, "downloadBaseline", { enumerable: true, get: function () { return baseline_js_2.downloadBaseline; } });
|
|
147
|
+
Object.defineProperty(exports, "loadBaselineAsync", { enumerable: true, get: function () { return baseline_js_2.loadBaselineAsync; } });
|
|
134
148
|
var common_js_1 = require("./utils/common.js");
|
|
135
149
|
Object.defineProperty(exports, "getFileExt", { enumerable: true, get: function () { return common_js_1.getFileExt; } });
|
|
136
150
|
Object.defineProperty(exports, "getJSXTagName", { enumerable: true, get: function () { return common_js_1.getJSXTagName; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/baseline.d.ts
CHANGED
|
@@ -48,12 +48,24 @@ export interface BaselineResult {
|
|
|
48
48
|
/** 是否使用了 baseline */
|
|
49
49
|
baselineLoaded: boolean;
|
|
50
50
|
}
|
|
51
|
+
/** 下载远程 baseline */
|
|
52
|
+
export declare function downloadBaseline(url: string, cacheDir?: string): Promise<{
|
|
53
|
+
data: BaselineFile;
|
|
54
|
+
cached: boolean;
|
|
55
|
+
error?: string;
|
|
56
|
+
}>;
|
|
51
57
|
/** 将 Issue 精简为 BaselineIssue */
|
|
52
58
|
export declare function toBaselineIssue(issue: Issue): BaselineIssue;
|
|
53
|
-
/**
|
|
59
|
+
/** 加载本地 baseline 文件(同步) */
|
|
54
60
|
export declare function loadBaseline(filePath: string): BaselineFile | null;
|
|
61
|
+
/**
|
|
62
|
+
* 加载 baseline(支持本地路径或远程 URL)
|
|
63
|
+
* @param filePath 本地文件路径或远程 URL
|
|
64
|
+
* @param cacheDir 远程 baseline 缓存目录(可选,默认 .fg-cache)
|
|
65
|
+
*/
|
|
66
|
+
export declare function loadBaselineAsync(filePath: string, cacheDir?: string): Promise<BaselineFile | null>;
|
|
55
67
|
/** 保存 baseline 文件 */
|
|
56
|
-
export declare function saveBaseline(filePath: string, issues: Issue[], meta?: BaselineFile["meta"]): void;
|
|
68
|
+
export declare function saveBaseline(filePath: string, issues: Issue[] | BaselineIssue[], meta?: BaselineFile["meta"]): void;
|
|
57
69
|
/**
|
|
58
70
|
* 将当前扫描结果与 baseline 对比
|
|
59
71
|
* @param issues 当前扫描出的所有问题
|
|
@@ -69,12 +81,26 @@ export declare function compareWithBaseline(issues: Issue[], baselinePath: strin
|
|
|
69
81
|
export declare function generateBaseline(issues: Issue[], baselinePath: string, projectDir: string, meta?: BaselineFile["meta"]): void;
|
|
70
82
|
/**
|
|
71
83
|
* BaselineManager — 面向对象的封装
|
|
84
|
+
*
|
|
85
|
+
* 支持本地 baseline 文件或远程团队共享 baseline URL。
|
|
86
|
+
* 远程 baseline 会自动下载并缓存到本地(1 小时 TTL)。
|
|
72
87
|
*/
|
|
73
88
|
export declare class BaselineManager {
|
|
74
89
|
private baselinePath;
|
|
75
90
|
private projectDir;
|
|
76
91
|
private baseline;
|
|
77
|
-
|
|
92
|
+
private teamBaselineUrl?;
|
|
93
|
+
private cacheDir;
|
|
94
|
+
constructor(baselinePath: string, projectDir: string, options?: {
|
|
95
|
+
teamBaselineUrl?: string;
|
|
96
|
+
cacheDir?: string;
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* 异步初始化(用于加载远程 baseline)
|
|
100
|
+
* 若配置了 teamBaselineUrl,会下载并缓存远程 baseline。
|
|
101
|
+
* 下载失败时回退到本地 baseline(如果存在)。
|
|
102
|
+
*/
|
|
103
|
+
init(): Promise<void>;
|
|
78
104
|
/** 是否已加载有效的 baseline */
|
|
79
105
|
isLoaded(): boolean;
|
|
80
106
|
/** 获取已加载的 baseline 内容 */
|
|
@@ -85,5 +111,7 @@ export declare class BaselineManager {
|
|
|
85
111
|
save(issues: Issue[], meta?: BaselineFile["meta"]): void;
|
|
86
112
|
/** 获取 baseline 文件路径 */
|
|
87
113
|
getPath(): string;
|
|
114
|
+
/** 获取团队 baseline URL(如配置) */
|
|
115
|
+
getTeamBaselineUrl(): string | undefined;
|
|
88
116
|
}
|
|
89
117
|
//# sourceMappingURL=baseline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/baseline.js
CHANGED
|
@@ -12,21 +12,88 @@
|
|
|
12
12
|
* → 仅报告新增问题(与 baseline 对比)
|
|
13
13
|
* 3. 定期刷新:删除 baseline 重新生成(清理已修复的遗留问题)
|
|
14
14
|
*/
|
|
15
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
17
|
+
};
|
|
15
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
19
|
exports.BaselineManager = void 0;
|
|
20
|
+
exports.downloadBaseline = downloadBaseline;
|
|
17
21
|
exports.toBaselineIssue = toBaselineIssue;
|
|
18
22
|
exports.loadBaseline = loadBaseline;
|
|
23
|
+
exports.loadBaselineAsync = loadBaselineAsync;
|
|
19
24
|
exports.saveBaseline = saveBaseline;
|
|
20
25
|
exports.compareWithBaseline = compareWithBaseline;
|
|
21
26
|
exports.generateBaseline = generateBaseline;
|
|
22
27
|
const node_fs_1 = require("node:fs");
|
|
23
28
|
const node_path_1 = require("node:path");
|
|
29
|
+
const node_crypto_1 = require("node:crypto");
|
|
30
|
+
const picocolors_1 = __importDefault(require("picocolors"));
|
|
24
31
|
/** 问题匹配键 */
|
|
25
32
|
function issueKey(issue) {
|
|
26
33
|
// 列号可选,允许小范围偏移(±5列)视为同一问题
|
|
27
34
|
const col = issue.column != null ? Math.round(issue.column / 5) * 5 : 0;
|
|
28
35
|
return `${issue.file}|${issue.ruleId}|${issue.line}|${col}`;
|
|
29
36
|
}
|
|
37
|
+
/** 判断路径是否为远程 URL */
|
|
38
|
+
function isRemoteUrl(path) {
|
|
39
|
+
return path.startsWith("http://") || path.startsWith("https://");
|
|
40
|
+
}
|
|
41
|
+
/** 获取远程 baseline 的本地缓存路径 */
|
|
42
|
+
function getCachedBaselinePath(url, cacheDir) {
|
|
43
|
+
const hash = (0, node_crypto_1.createHash)("sha256").update(url).digest("hex").slice(0, 16);
|
|
44
|
+
const name = (0, node_path_1.basename)(url) || "baseline";
|
|
45
|
+
return (0, node_path_1.resolve)(cacheDir, `${name}.${hash}.json`);
|
|
46
|
+
}
|
|
47
|
+
/** 下载远程 baseline */
|
|
48
|
+
async function downloadBaseline(url, cacheDir) {
|
|
49
|
+
const dir = cacheDir || (0, node_path_1.resolve)(process.cwd(), ".fg-cache");
|
|
50
|
+
const cachePath = getCachedBaselinePath(url, dir);
|
|
51
|
+
// 检查本地缓存(1 小时 TTL)
|
|
52
|
+
if ((0, node_fs_1.existsSync)(cachePath)) {
|
|
53
|
+
const stat = (0, node_fs_1.readFileSync)(cachePath, "utf-8");
|
|
54
|
+
try {
|
|
55
|
+
const cached = JSON.parse(stat);
|
|
56
|
+
const age = Date.now() - (cached._downloadedAt || 0);
|
|
57
|
+
if (age < 3600_000) {
|
|
58
|
+
return { data: cached.data, cached: true };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// 缓存格式错误,继续下载
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const response = await fetch(url, { redirect: "follow" });
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
return {
|
|
69
|
+
data: { version: "1.0", generatedAt: Date.now(), issues: [] },
|
|
70
|
+
cached: false,
|
|
71
|
+
error: `HTTP ${response.status}: ${response.statusText}`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const data = (await response.json());
|
|
75
|
+
if (!data.version || !Array.isArray(data.issues)) {
|
|
76
|
+
return {
|
|
77
|
+
data: { version: "1.0", generatedAt: Date.now(), issues: [] },
|
|
78
|
+
cached: false,
|
|
79
|
+
error: "Invalid baseline format",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// 写入缓存
|
|
83
|
+
if (!(0, node_fs_1.existsSync)(dir)) {
|
|
84
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
85
|
+
}
|
|
86
|
+
(0, node_fs_1.writeFileSync)(cachePath, JSON.stringify({ _downloadedAt: Date.now(), data }, null, 2), "utf-8");
|
|
87
|
+
return { data, cached: false };
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
return {
|
|
91
|
+
data: { version: "1.0", generatedAt: Date.now(), issues: [] },
|
|
92
|
+
cached: false,
|
|
93
|
+
error: String(err),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
30
97
|
/** 将 Issue 精简为 BaselineIssue */
|
|
31
98
|
function toBaselineIssue(issue) {
|
|
32
99
|
return {
|
|
@@ -38,7 +105,7 @@ function toBaselineIssue(issue) {
|
|
|
38
105
|
title: issue.title,
|
|
39
106
|
};
|
|
40
107
|
}
|
|
41
|
-
/**
|
|
108
|
+
/** 加载本地 baseline 文件(同步) */
|
|
42
109
|
function loadBaseline(filePath) {
|
|
43
110
|
try {
|
|
44
111
|
if (!(0, node_fs_1.existsSync)(filePath)) {
|
|
@@ -46,7 +113,6 @@ function loadBaseline(filePath) {
|
|
|
46
113
|
}
|
|
47
114
|
const raw = (0, node_fs_1.readFileSync)(filePath, "utf-8");
|
|
48
115
|
const data = JSON.parse(raw);
|
|
49
|
-
// 版本校验
|
|
50
116
|
if (!data.version || !Array.isArray(data.issues)) {
|
|
51
117
|
return null;
|
|
52
118
|
}
|
|
@@ -56,12 +122,27 @@ function loadBaseline(filePath) {
|
|
|
56
122
|
return null;
|
|
57
123
|
}
|
|
58
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* 加载 baseline(支持本地路径或远程 URL)
|
|
127
|
+
* @param filePath 本地文件路径或远程 URL
|
|
128
|
+
* @param cacheDir 远程 baseline 缓存目录(可选,默认 .fg-cache)
|
|
129
|
+
*/
|
|
130
|
+
async function loadBaselineAsync(filePath, cacheDir) {
|
|
131
|
+
if (isRemoteUrl(filePath)) {
|
|
132
|
+
const result = await downloadBaseline(filePath, cacheDir);
|
|
133
|
+
if (result.error) {
|
|
134
|
+
console.warn(`⚠️ 远程 baseline 加载失败: ${result.error}`);
|
|
135
|
+
}
|
|
136
|
+
return result.data;
|
|
137
|
+
}
|
|
138
|
+
return loadBaseline(filePath);
|
|
139
|
+
}
|
|
59
140
|
/** 保存 baseline 文件 */
|
|
60
141
|
function saveBaseline(filePath, issues, meta) {
|
|
61
142
|
const baseline = {
|
|
62
143
|
version: "1.0",
|
|
63
144
|
generatedAt: Date.now(),
|
|
64
|
-
issues: issues.map(toBaselineIssue),
|
|
145
|
+
issues: issues.map((i) => "description" in i ? toBaselineIssue(i) : i),
|
|
65
146
|
meta: {
|
|
66
147
|
toolVersion: "2.3.0",
|
|
67
148
|
...meta,
|
|
@@ -120,16 +201,51 @@ function generateBaseline(issues, baselinePath, projectDir, meta) {
|
|
|
120
201
|
}
|
|
121
202
|
/**
|
|
122
203
|
* BaselineManager — 面向对象的封装
|
|
204
|
+
*
|
|
205
|
+
* 支持本地 baseline 文件或远程团队共享 baseline URL。
|
|
206
|
+
* 远程 baseline 会自动下载并缓存到本地(1 小时 TTL)。
|
|
123
207
|
*/
|
|
124
208
|
class BaselineManager {
|
|
125
209
|
baselinePath;
|
|
126
210
|
projectDir;
|
|
127
211
|
baseline = null;
|
|
128
|
-
|
|
129
|
-
|
|
212
|
+
teamBaselineUrl;
|
|
213
|
+
cacheDir;
|
|
214
|
+
constructor(baselinePath, projectDir, options) {
|
|
215
|
+
this.teamBaselineUrl = options?.teamBaselineUrl;
|
|
216
|
+
this.cacheDir = options?.cacheDir || (0, node_path_1.resolve)(projectDir, ".fg-cache");
|
|
130
217
|
this.projectDir = projectDir;
|
|
218
|
+
if (this.teamBaselineUrl) {
|
|
219
|
+
// 远程 baseline:缓存路径作为本地存储
|
|
220
|
+
this.baselinePath = getCachedBaselinePath(this.teamBaselineUrl, this.cacheDir);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
this.baselinePath = (0, node_path_1.resolve)(projectDir, baselinePath);
|
|
224
|
+
}
|
|
131
225
|
this.baseline = loadBaseline(this.baselinePath);
|
|
132
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* 异步初始化(用于加载远程 baseline)
|
|
229
|
+
* 若配置了 teamBaselineUrl,会下载并缓存远程 baseline。
|
|
230
|
+
* 下载失败时回退到本地 baseline(如果存在)。
|
|
231
|
+
*/
|
|
232
|
+
async init() {
|
|
233
|
+
if (!this.teamBaselineUrl) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const result = await downloadBaseline(this.teamBaselineUrl, this.cacheDir);
|
|
237
|
+
if (result.error) {
|
|
238
|
+
console.warn(picocolors_1.default.yellow(`⚠️ 团队 baseline 下载失败: ${result.error},回退到本地 baseline`));
|
|
239
|
+
// 回退:尝试加载已缓存的本地 baseline(即使过期)
|
|
240
|
+
this.baseline = loadBaseline(this.baselinePath);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
// 将下载的 baseline 写入缓存路径
|
|
244
|
+
saveBaseline(this.baselinePath, result.data.issues, result.data.meta);
|
|
245
|
+
this.baseline = result.data;
|
|
246
|
+
const source = result.cached ? "缓存" : "远程";
|
|
247
|
+
console.log(picocolors_1.default.blue(`📥 团队 baseline 已加载(${source}):${this.teamBaselineUrl}`));
|
|
248
|
+
}
|
|
133
249
|
/** 是否已加载有效的 baseline */
|
|
134
250
|
isLoaded() {
|
|
135
251
|
return this.baseline !== null;
|
|
@@ -151,6 +267,10 @@ class BaselineManager {
|
|
|
151
267
|
getPath() {
|
|
152
268
|
return this.baselinePath;
|
|
153
269
|
}
|
|
270
|
+
/** 获取团队 baseline URL(如配置) */
|
|
271
|
+
getTeamBaselineUrl() {
|
|
272
|
+
return this.teamBaselineUrl;
|
|
273
|
+
}
|
|
154
274
|
}
|
|
155
275
|
exports.BaselineManager = BaselineManager;
|
|
156
276
|
//# sourceMappingURL=baseline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/utils/baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CODEOWNERS parser
|
|
3
|
+
*
|
|
4
|
+
* Parses CODEOWNERS file from project root to infer issue assignees.
|
|
5
|
+
* Supports GitHub-style CODEOWNERS: .github/CODEOWNERS, CODEOWNERS, docs/CODEOWNERS
|
|
6
|
+
*/
|
|
7
|
+
export interface CodeownersEntry {
|
|
8
|
+
pattern: string;
|
|
9
|
+
owners: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface CodeownersResult {
|
|
12
|
+
entries: CodeownersEntry[];
|
|
13
|
+
sourcePath?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function findCodeowners(projectDir: string): {
|
|
16
|
+
content: string;
|
|
17
|
+
path: string;
|
|
18
|
+
} | null;
|
|
19
|
+
export declare function parseCodeowners(content: string): CodeownersEntry[];
|
|
20
|
+
export declare function loadCodeowners(projectDir: string): CodeownersResult;
|
|
21
|
+
export declare function matchOwner(filePath: string, entries: CodeownersEntry[]): string | undefined;
|
|
22
|
+
export declare class CodeownersParser {
|
|
23
|
+
private entries;
|
|
24
|
+
private sourcePath?;
|
|
25
|
+
constructor(projectDir: string);
|
|
26
|
+
hasCodeowners(): boolean;
|
|
27
|
+
getSourcePath(): string | undefined;
|
|
28
|
+
getOwner(filePath: string): string | undefined;
|
|
29
|
+
getEntries(): CodeownersEntry[];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=codeowners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeowners.d.ts","sourceRoot":"","sources":["../../src/utils/codeowners.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAkBlE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAInE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,GAAG,SAAS,CAQ3F;AAUD,qBAAa,gBAAgB;IACzB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,UAAU,EAAE,MAAM;IAM9B,aAAa,IAAI,OAAO;IAIxB,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,UAAU,IAAI,eAAe,EAAE;CAGlC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CODEOWNERS parser
|
|
4
|
+
*
|
|
5
|
+
* Parses CODEOWNERS file from project root to infer issue assignees.
|
|
6
|
+
* Supports GitHub-style CODEOWNERS: .github/CODEOWNERS, CODEOWNERS, docs/CODEOWNERS
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CodeownersParser = void 0;
|
|
10
|
+
exports.findCodeowners = findCodeowners;
|
|
11
|
+
exports.parseCodeowners = parseCodeowners;
|
|
12
|
+
exports.loadCodeowners = loadCodeowners;
|
|
13
|
+
exports.matchOwner = matchOwner;
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_path_1 = require("node:path");
|
|
16
|
+
const minimatch_1 = require("minimatch");
|
|
17
|
+
const CODEOWNERS_PATHS = [".github/CODEOWNERS", "CODEOWNERS", "docs/CODEOWNERS"];
|
|
18
|
+
function findCodeowners(projectDir) {
|
|
19
|
+
for (const relative of CODEOWNERS_PATHS) {
|
|
20
|
+
const fullPath = (0, node_path_1.resolve)(projectDir, relative);
|
|
21
|
+
if ((0, node_fs_1.existsSync)(fullPath)) {
|
|
22
|
+
try {
|
|
23
|
+
const content = (0, node_fs_1.readFileSync)(fullPath, "utf-8");
|
|
24
|
+
return { content, path: relative };
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
function parseCodeowners(content) {
|
|
34
|
+
const entries = [];
|
|
35
|
+
for (const rawLine of content.split("\n")) {
|
|
36
|
+
const line = rawLine.trim();
|
|
37
|
+
if (!line || line.startsWith("#"))
|
|
38
|
+
continue;
|
|
39
|
+
const parts = line.split(/\s+/);
|
|
40
|
+
if (parts.length < 2)
|
|
41
|
+
continue;
|
|
42
|
+
const pattern = parts[0];
|
|
43
|
+
const owners = parts.slice(1).filter((p) => p.startsWith("@"));
|
|
44
|
+
if (owners.length === 0)
|
|
45
|
+
continue;
|
|
46
|
+
entries.push({ pattern, owners });
|
|
47
|
+
}
|
|
48
|
+
return entries;
|
|
49
|
+
}
|
|
50
|
+
function loadCodeowners(projectDir) {
|
|
51
|
+
const found = findCodeowners(projectDir);
|
|
52
|
+
if (!found)
|
|
53
|
+
return { entries: [] };
|
|
54
|
+
return { entries: parseCodeowners(found.content), sourcePath: found.path };
|
|
55
|
+
}
|
|
56
|
+
function matchOwner(filePath, entries) {
|
|
57
|
+
let matchedOwner;
|
|
58
|
+
for (const entry of entries) {
|
|
59
|
+
if (matchPattern(filePath, entry.pattern)) {
|
|
60
|
+
matchedOwner = entry.owners[0].replace(/^@/, "");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return matchedOwner;
|
|
64
|
+
}
|
|
65
|
+
function matchPattern(filePath, pattern) {
|
|
66
|
+
let glob = pattern;
|
|
67
|
+
if (glob.startsWith("/"))
|
|
68
|
+
glob = glob.slice(1);
|
|
69
|
+
if (glob.endsWith("/"))
|
|
70
|
+
glob = `${glob}**`;
|
|
71
|
+
if (!glob.includes("/") && !glob.startsWith("*"))
|
|
72
|
+
glob = `**/${glob}`;
|
|
73
|
+
return (0, minimatch_1.minimatch)(filePath, glob, { dot: true });
|
|
74
|
+
}
|
|
75
|
+
class CodeownersParser {
|
|
76
|
+
entries;
|
|
77
|
+
sourcePath;
|
|
78
|
+
constructor(projectDir) {
|
|
79
|
+
const result = loadCodeowners(projectDir);
|
|
80
|
+
this.entries = result.entries;
|
|
81
|
+
this.sourcePath = result.sourcePath;
|
|
82
|
+
}
|
|
83
|
+
hasCodeowners() {
|
|
84
|
+
return this.entries.length > 0;
|
|
85
|
+
}
|
|
86
|
+
getSourcePath() {
|
|
87
|
+
return this.sourcePath;
|
|
88
|
+
}
|
|
89
|
+
getOwner(filePath) {
|
|
90
|
+
return matchOwner(filePath, this.entries);
|
|
91
|
+
}
|
|
92
|
+
getEntries() {
|
|
93
|
+
return this.entries;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.CodeownersParser = CodeownersParser;
|
|
97
|
+
//# sourceMappingURL=codeowners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeowners.js","sourceRoot":"","sources":["../../src/utils/codeowners.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkBH,wCAaC;AAED,0CAkBC;AAED,wCAIC;AAED,gCAQC;AAjED,qCAAmD;AACnD,yCAAoC;AACpC,yCAAsC;AAYtC,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAEjF,SAAgB,cAAc,CAAC,UAAkB;IAC7C,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAE/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAgB,cAAc,CAAC,UAAkB;IAC7C,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAA0B;IACnE,IAAI,YAAgC,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,OAAe;IACnD,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;IACtE,OAAO,IAAA,qBAAS,EAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAa,gBAAgB;IACjB,OAAO,CAAoB;IAC3B,UAAU,CAAU;IAE5B,YAAY,UAAkB;QAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,QAAgB;QACrB,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAzBD,4CAyBC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 扫描结果通知系统
|
|
3
|
+
*
|
|
4
|
+
* 支持飞书、钉钉、企业微信、Slack webhook 通知。
|
|
5
|
+
* 扫描完成后自动发送摘要到配置的渠道。
|
|
6
|
+
*/
|
|
7
|
+
import type { ScanResult, Severity } from "../types.js";
|
|
8
|
+
/** 通知渠道配置 */
|
|
9
|
+
export interface NotificationChannel {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
webhook: string;
|
|
12
|
+
}
|
|
13
|
+
/** 通知配置 */
|
|
14
|
+
export interface NotificationConfig {
|
|
15
|
+
feishu?: NotificationChannel;
|
|
16
|
+
dingtalk?: NotificationChannel;
|
|
17
|
+
wecom?: NotificationChannel;
|
|
18
|
+
slack?: NotificationChannel;
|
|
19
|
+
}
|
|
20
|
+
/** 通知内容 */
|
|
21
|
+
export interface NotificationPayload {
|
|
22
|
+
project: string;
|
|
23
|
+
modules: string[];
|
|
24
|
+
totalIssues: number;
|
|
25
|
+
issuesBySeverity: Record<Severity, number>;
|
|
26
|
+
duration: number;
|
|
27
|
+
topIssues: {
|
|
28
|
+
file: string;
|
|
29
|
+
title: string;
|
|
30
|
+
severity: Severity;
|
|
31
|
+
}[];
|
|
32
|
+
reportUrl?: string;
|
|
33
|
+
gatePassed?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** 通知结果 */
|
|
36
|
+
export interface NotificationResult {
|
|
37
|
+
channel: string;
|
|
38
|
+
success: boolean;
|
|
39
|
+
error?: string;
|
|
40
|
+
}
|
|
41
|
+
/** 从环境变量或配置检测通知配置 */
|
|
42
|
+
export declare function detectNotificationConfig(): NotificationConfig;
|
|
43
|
+
/** 发送通知到所有已启用渠道 */
|
|
44
|
+
export declare function sendNotifications(payload: NotificationPayload, config: NotificationConfig): Promise<NotificationResult[]>;
|
|
45
|
+
/** 从 ScanResult[] 构建通知 payload */
|
|
46
|
+
export declare function buildNotificationPayload(results: ScanResult[], options: {
|
|
47
|
+
project: string;
|
|
48
|
+
duration: number;
|
|
49
|
+
reportUrl?: string;
|
|
50
|
+
gatePassed?: boolean;
|
|
51
|
+
}): NotificationPayload;
|
|
52
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,aAAa;AACb,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,WAAW;AACX,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAC;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAqB;AACrB,wBAAgB,wBAAwB,IAAI,kBAAkB,CAkB7D;AAED,mBAAmB;AACnB,wBAAsB,iBAAiB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAoB/B;AAoMD,kCAAkC;AAClC,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,GACF,mBAAmB,CAiCrB"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 扫描结果通知系统
|
|
4
|
+
*
|
|
5
|
+
* 支持飞书、钉钉、企业微信、Slack webhook 通知。
|
|
6
|
+
* 扫描完成后自动发送摘要到配置的渠道。
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.detectNotificationConfig = detectNotificationConfig;
|
|
10
|
+
exports.sendNotifications = sendNotifications;
|
|
11
|
+
exports.buildNotificationPayload = buildNotificationPayload;
|
|
12
|
+
/** 从环境变量或配置检测通知配置 */
|
|
13
|
+
function detectNotificationConfig() {
|
|
14
|
+
const config = {};
|
|
15
|
+
const channels = [
|
|
16
|
+
{ key: "feishu", env: "FG_NOTIFY_FEISHU" },
|
|
17
|
+
{ key: "dingtalk", env: "FG_NOTIFY_DINGTALK" },
|
|
18
|
+
{ key: "wecom", env: "FG_NOTIFY_WECOM" },
|
|
19
|
+
{ key: "slack", env: "FG_NOTIFY_SLACK" },
|
|
20
|
+
];
|
|
21
|
+
for (const { key, env } of channels) {
|
|
22
|
+
const webhook = process.env[env];
|
|
23
|
+
if (webhook) {
|
|
24
|
+
config[key] = { enabled: true, webhook };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return config;
|
|
28
|
+
}
|
|
29
|
+
/** 发送通知到所有已启用渠道 */
|
|
30
|
+
async function sendNotifications(payload, config) {
|
|
31
|
+
const results = [];
|
|
32
|
+
const entries = Object.entries(config);
|
|
33
|
+
for (const [channel, channelConfig] of entries) {
|
|
34
|
+
if (!channelConfig?.enabled || !channelConfig.webhook) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const result = await sendToChannel(payload, channel, channelConfig.webhook);
|
|
39
|
+
results.push(result);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
results.push({ channel, success: false, error: String(err) });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return results;
|
|
46
|
+
}
|
|
47
|
+
/** 发送单渠道通知 */
|
|
48
|
+
async function sendToChannel(payload, channel, webhook) {
|
|
49
|
+
const body = buildPayload(payload, channel);
|
|
50
|
+
const response = await fetch(webhook, {
|
|
51
|
+
method: "POST",
|
|
52
|
+
headers: { "Content-Type": "application/json" },
|
|
53
|
+
body: JSON.stringify(body),
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
const text = await response.text().catch(() => "Unknown error");
|
|
57
|
+
return { channel, success: false, error: `HTTP ${response.status}: ${text}` };
|
|
58
|
+
}
|
|
59
|
+
return { channel, success: true };
|
|
60
|
+
}
|
|
61
|
+
/** 根据渠道构建不同格式的 payload */
|
|
62
|
+
function buildPayload(payload, channel) {
|
|
63
|
+
const status = payload.gatePassed !== false ? "✅ 扫描完成" : "❌ 门禁未通过";
|
|
64
|
+
const severityText = [
|
|
65
|
+
`🔴 Critical: ${payload.issuesBySeverity.critical || 0}`,
|
|
66
|
+
`🟡 Warning: ${payload.issuesBySeverity.warning || 0}`,
|
|
67
|
+
`💡 Suggestion: ${payload.issuesBySeverity.suggestion || 0}`,
|
|
68
|
+
].join(" | ");
|
|
69
|
+
const topIssuesText = payload.topIssues
|
|
70
|
+
.map((i) => `• [${i.severity.toUpperCase()}] ${i.file}: ${i.title}`)
|
|
71
|
+
.join("\n");
|
|
72
|
+
switch (channel) {
|
|
73
|
+
case "feishu":
|
|
74
|
+
return buildFeishuPayload(payload, status, severityText, topIssuesText);
|
|
75
|
+
case "dingtalk":
|
|
76
|
+
return buildDingTalkPayload(payload, status, severityText, topIssuesText);
|
|
77
|
+
case "wecom":
|
|
78
|
+
return buildWeComPayload(payload, status, severityText, topIssuesText);
|
|
79
|
+
case "slack":
|
|
80
|
+
return buildSlackPayload(payload, status, severityText, topIssuesText);
|
|
81
|
+
default:
|
|
82
|
+
return buildGenericPayload(payload, status, severityText, topIssuesText);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** 飞书 webhook payload */
|
|
86
|
+
function buildFeishuPayload(payload, status, severityText, topIssuesText) {
|
|
87
|
+
const content = [
|
|
88
|
+
`**${status}**`,
|
|
89
|
+
`项目: ${payload.project}`,
|
|
90
|
+
`模块: ${payload.modules.join(", ")}`,
|
|
91
|
+
`耗时: ${(payload.duration / 1000).toFixed(1)}s`,
|
|
92
|
+
``,
|
|
93
|
+
severityText,
|
|
94
|
+
``,
|
|
95
|
+
topIssuesText ? `**关键问题:**\n${topIssuesText}` : "",
|
|
96
|
+
payload.reportUrl ? `\n[查看完整报告](${payload.reportUrl})` : "",
|
|
97
|
+
]
|
|
98
|
+
.filter(Boolean)
|
|
99
|
+
.join("\n");
|
|
100
|
+
return {
|
|
101
|
+
msg_type: "interactive",
|
|
102
|
+
card: {
|
|
103
|
+
config: { wide_screen_mode: true },
|
|
104
|
+
header: {
|
|
105
|
+
title: { tag: "plain_text", content: `frontend-guardian: ${payload.project}` },
|
|
106
|
+
template: payload.gatePassed === false ? "red" : "green",
|
|
107
|
+
},
|
|
108
|
+
elements: [
|
|
109
|
+
{
|
|
110
|
+
tag: "div",
|
|
111
|
+
text: { tag: "lark_md", content },
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** 钉钉 webhook payload */
|
|
118
|
+
function buildDingTalkPayload(payload, status, severityText, topIssuesText) {
|
|
119
|
+
const text = [
|
|
120
|
+
`### ${status}`,
|
|
121
|
+
`**项目:** ${payload.project}`,
|
|
122
|
+
`**模块:** ${payload.modules.join(", ")}`,
|
|
123
|
+
`**耗时:** ${(payload.duration / 1000).toFixed(1)}s`,
|
|
124
|
+
``,
|
|
125
|
+
severityText,
|
|
126
|
+
``,
|
|
127
|
+
topIssuesText ? `**关键问题:**\n${topIssuesText}` : "",
|
|
128
|
+
payload.reportUrl ? `\n[查看完整报告](${payload.reportUrl})` : "",
|
|
129
|
+
]
|
|
130
|
+
.filter(Boolean)
|
|
131
|
+
.join("\n");
|
|
132
|
+
return {
|
|
133
|
+
msgtype: "markdown",
|
|
134
|
+
markdown: { title: `frontend-guardian: ${payload.project}`, text },
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/** 企业微信 webhook payload */
|
|
138
|
+
function buildWeComPayload(payload, status, severityText, topIssuesText) {
|
|
139
|
+
const content = [
|
|
140
|
+
`${status}`,
|
|
141
|
+
`项目: ${payload.project}`,
|
|
142
|
+
`模块: ${payload.modules.join(", ")}`,
|
|
143
|
+
`耗时: ${(payload.duration / 1000).toFixed(1)}s`,
|
|
144
|
+
``,
|
|
145
|
+
severityText,
|
|
146
|
+
``,
|
|
147
|
+
topIssuesText ? `关键问题:\n${topIssuesText}` : "",
|
|
148
|
+
payload.reportUrl ? `\n查看完整报告: ${payload.reportUrl}` : "",
|
|
149
|
+
]
|
|
150
|
+
.filter(Boolean)
|
|
151
|
+
.join("\n");
|
|
152
|
+
return {
|
|
153
|
+
msgtype: "markdown",
|
|
154
|
+
markdown: { content },
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** Slack webhook payload */
|
|
158
|
+
function buildSlackPayload(payload, status, severityText, topIssuesText) {
|
|
159
|
+
const color = payload.gatePassed === false ? "danger" : "good";
|
|
160
|
+
const fields = [
|
|
161
|
+
{ title: "项目", value: payload.project, short: true },
|
|
162
|
+
{ title: "模块", value: payload.modules.join(", "), short: true },
|
|
163
|
+
{ title: "耗时", value: `${(payload.duration / 1000).toFixed(1)}s`, short: true },
|
|
164
|
+
{ title: "问题分布", value: severityText.replace(/\|/g, "\n"), short: false },
|
|
165
|
+
];
|
|
166
|
+
if (topIssuesText) {
|
|
167
|
+
fields.push({ title: "关键问题", value: topIssuesText, short: false });
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
attachments: [
|
|
171
|
+
{
|
|
172
|
+
color,
|
|
173
|
+
pretext: status,
|
|
174
|
+
fields,
|
|
175
|
+
footer: "frontend-guardian",
|
|
176
|
+
ts: Math.floor(Date.now() / 1000),
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/** 通用 JSON payload */
|
|
182
|
+
function buildGenericPayload(payload, status, severityText, topIssuesText) {
|
|
183
|
+
return {
|
|
184
|
+
status,
|
|
185
|
+
project: payload.project,
|
|
186
|
+
modules: payload.modules,
|
|
187
|
+
duration: payload.duration,
|
|
188
|
+
severity: payload.issuesBySeverity,
|
|
189
|
+
topIssues: payload.topIssues,
|
|
190
|
+
reportUrl: payload.reportUrl,
|
|
191
|
+
gatePassed: payload.gatePassed,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/** 从 ScanResult[] 构建通知 payload */
|
|
195
|
+
function buildNotificationPayload(results, options) {
|
|
196
|
+
const issuesBySeverity = { critical: 0, warning: 0, suggestion: 0 };
|
|
197
|
+
const allIssues = [];
|
|
198
|
+
for (const result of results) {
|
|
199
|
+
for (const sev of ["critical", "warning", "suggestion"]) {
|
|
200
|
+
issuesBySeverity[sev] += result.issues[sev].length;
|
|
201
|
+
for (const issue of result.issues[sev]) {
|
|
202
|
+
allIssues.push({
|
|
203
|
+
file: issue.file,
|
|
204
|
+
title: issue.title,
|
|
205
|
+
severity: sev,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// 取最严重的 top 5
|
|
211
|
+
const severityOrder = { critical: 0, warning: 1, suggestion: 2 };
|
|
212
|
+
const topIssues = allIssues
|
|
213
|
+
.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity])
|
|
214
|
+
.slice(0, 5);
|
|
215
|
+
return {
|
|
216
|
+
project: options.project,
|
|
217
|
+
modules: results.map((r) => r.module),
|
|
218
|
+
totalIssues: allIssues.length,
|
|
219
|
+
issuesBySeverity,
|
|
220
|
+
duration: options.duration,
|
|
221
|
+
topIssues,
|
|
222
|
+
reportUrl: options.reportUrl,
|
|
223
|
+
gatePassed: options.gatePassed,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/utils/notification.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontend-guardian-core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "Core analysis engine for frontend-guardian — AST-based scanning and auto-fixing",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
|
-
"fg-core": "
|
|
16
|
-
"fg-lsp": "
|
|
15
|
+
"fg-core": "bin/fg-core.js",
|
|
16
|
+
"fg-lsp": "bin/fg-lsp.js"
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|