From 871823b3dae6047852fe3c97579b1131eebe5ce7 Mon Sep 17 00:00:00 2001 From: dongzi Date: Tue, 9 Jun 2026 11:20:24 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84=E5=8F=98?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/checker/dependency-reduced-pom.xml | 8 +-- .gitea/checker/pom.xml | 8 +-- .../CodeCheckMain.java} | 43 +++++++------ .../analyzer/ClassChangeAnalyzer.java | 26 ++++---- .../analyzer/EndpointIndexBuilder.java | 8 +-- .../analyzer/FieldDiffEngine.java | 6 +- .../analyzer/ImpactAnalyzer.java | 12 ++-- .../api/analyzer/ApiChangeAnalyzer.java | 16 ++--- .../api/analyzer/EndpointDiffEngine.java | 10 +-- .../api/analyzer/ParameterDiffEngine.java | 18 +++--- .../api/model/ApiChangeKind.java | 4 +- .../api/model/EndpointChangeReport.java | 2 +- .../api/model/EndpointSnapshot.java | 2 +- .../api/model/MethodParameterSnapshot.java | 2 +- .../api/model/ParameterChange.java | 2 +- .../api/notify/ApiChangeNotifier.java | 12 ++-- .../api/parser/EndpointSnapshotParser.java | 8 +-- .../api/parser/JavaSourceLocator.java | 2 +- .../parser/MethodDescriptionExtractor.java | 2 +- .../api/parser/NestedDtoFieldParser.java | 8 +-- .../api/parser/NestedFieldInfo.java | 2 +- .../api/scanner/ApiFileChangeScanner.java | 4 +- .../common/MarkdownStyles.java | 2 +- .../common/WeComMarkdownSender.java | 2 +- .../config/AppConfig.java | 21 +++++-- .../git/GitChangeScanner.java | 8 +-- .../model/ApiEndpoint.java | 2 +- .../model/ChangedClassFile.java | 2 +- .../model/ClassChangeKind.java | 2 +- .../model/ClassChangeReport.java | 2 +- .../model/ClassType.java | 2 +- .../model/FieldChange.java | 2 +- .../model/FieldInfo.java | 2 +- .../notify/WeComNotifier.java | 10 +-- .../parser/ClassDeclParser.java | 2 +- .../parser/ClassFieldParser.java | 4 +- .../parser/ConversionParser.java | 2 +- .../parser/EndpointParser.java | 4 +- .../parser/TypeNameUtils.java | 2 +- .gitea/config.yaml | 43 +++++-------- .gitea/workflows/class-change-check.yml | 59 ------------------ .gitea/workflows/code-check.yml | 53 ++++++++++++++++ .../{class-checker.jar => code-checker.jar} | Bin 9983246 -> 9984060 bytes .gitignore | 4 +- ...ass-checker.ps1 => build-code-checker.ps1} | 10 +-- 45 files changed, 222 insertions(+), 223 deletions(-) rename .gitea/checker/src/main/java/com/{autoCheck/ClassCheckMain.java => codechecker/CodeCheckMain.java} (74%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/analyzer/ClassChangeAnalyzer.java (88%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/analyzer/EndpointIndexBuilder.java (87%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/analyzer/FieldDiffEngine.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/analyzer/ImpactAnalyzer.java (93%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/analyzer/ApiChangeAnalyzer.java (84%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/analyzer/EndpointDiffEngine.java (95%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/analyzer/ParameterDiffEngine.java (93%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/model/ApiChangeKind.java (51%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/model/EndpointChangeReport.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/model/EndpointSnapshot.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/model/MethodParameterSnapshot.java (97%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/model/ParameterChange.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/notify/ApiChangeNotifier.java (97%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/parser/EndpointSnapshotParser.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/parser/JavaSourceLocator.java (97%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/parser/MethodDescriptionExtractor.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/parser/NestedDtoFieldParser.java (93%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/parser/NestedFieldInfo.java (93%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/api/scanner/ApiFileChangeScanner.java (95%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/common/MarkdownStyles.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/common/WeComMarkdownSender.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/config/AppConfig.java (90%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/git/GitChangeScanner.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/ApiEndpoint.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/ChangedClassFile.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/ClassChangeKind.java (91%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/ClassChangeReport.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/ClassType.java (97%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/FieldChange.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/model/FieldInfo.java (97%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/notify/WeComNotifier.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/parser/ClassDeclParser.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/parser/ClassFieldParser.java (98%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/parser/ConversionParser.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/parser/EndpointParser.java (99%) rename .gitea/checker/src/main/java/com/{autoCheck => codechecker}/parser/TypeNameUtils.java (99%) delete mode 100644 .gitea/workflows/class-change-check.yml create mode 100644 .gitea/workflows/code-check.yml rename .gitea/workflows/{class-checker.jar => code-checker.jar} (94%) rename scripts/{build-class-checker.ps1 => build-code-checker.ps1} (68%) diff --git a/.gitea/checker/dependency-reduced-pom.xml b/.gitea/checker/dependency-reduced-pom.xml index cd6d6a9..bfdcb07 100644 --- a/.gitea/checker/dependency-reduced-pom.xml +++ b/.gitea/checker/dependency-reduced-pom.xml @@ -1,11 +1,11 @@ 4.0.0 - com.aicheck - class-checker + com.codechecker + code-checker 1.0.0 - class-checker + code-checker maven-compiler-plugin @@ -23,7 +23,7 @@ - com.aicheck.ClassCheckMain + com.codechecker.CodeCheckMain diff --git a/.gitea/checker/pom.xml b/.gitea/checker/pom.xml index f4200ec..6912686 100644 --- a/.gitea/checker/pom.xml +++ b/.gitea/checker/pom.xml @@ -4,8 +4,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.aicheck - class-checker + com.codechecker + code-checker 1.0.0 jar @@ -40,7 +40,7 @@ - class-checker + code-checker org.apache.maven.plugins @@ -60,7 +60,7 @@ - com.aicheck.ClassCheckMain + com.codechecker.CodeCheckMain diff --git a/.gitea/checker/src/main/java/com/autoCheck/ClassCheckMain.java b/.gitea/checker/src/main/java/com/codechecker/CodeCheckMain.java similarity index 74% rename from .gitea/checker/src/main/java/com/autoCheck/ClassCheckMain.java rename to .gitea/checker/src/main/java/com/codechecker/CodeCheckMain.java index e3786f4..d6d149b 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/ClassCheckMain.java +++ b/.gitea/checker/src/main/java/com/codechecker/CodeCheckMain.java @@ -1,15 +1,15 @@ -package com.aicheck; +package com.codechecker; -import com.aicheck.analyzer.ClassChangeAnalyzer; -import com.aicheck.analyzer.EndpointIndexBuilder; -import com.aicheck.api.analyzer.ApiChangeAnalyzer; -import com.aicheck.api.model.EndpointChangeReport; -import com.aicheck.api.notify.ApiChangeNotifier; -import com.aicheck.config.AppConfig; -import com.aicheck.git.GitChangeScanner; -import com.aicheck.model.ApiEndpoint; -import com.aicheck.model.ClassChangeReport; -import com.aicheck.notify.WeComNotifier; +import com.codechecker.analyzer.ClassChangeAnalyzer; +import com.codechecker.analyzer.EndpointIndexBuilder; +import com.codechecker.api.analyzer.ApiChangeAnalyzer; +import com.codechecker.api.model.EndpointChangeReport; +import com.codechecker.api.notify.ApiChangeNotifier; +import com.codechecker.config.AppConfig; +import com.codechecker.git.GitChangeScanner; +import com.codechecker.model.ApiEndpoint; +import com.codechecker.model.ClassChangeReport; +import com.codechecker.notify.WeComNotifier; import picocli.CommandLine; import picocli.CommandLine.Command; import picocli.CommandLine.Option; @@ -22,9 +22,9 @@ import java.util.concurrent.Callable; /** * CLI 入口:加载配置 → 扫描 git 变更 → 分析影响 → 输出/发送企微通知。 */ -@Command(name = "class-checker", mixinStandardHelpOptions = true, +@Command(name = "code-checker", mixinStandardHelpOptions = true, description = "检测类变更与 API 变更并发送企业微信通知") -public class ClassCheckMain implements Callable { +public class CodeCheckMain implements Callable { @Option(names = "--config", required = true, description = "配置文件路径") private Path config; @@ -45,7 +45,7 @@ public class ClassCheckMain implements Callable { /** 程序入口 */ public static void main(String[] args) { - int exitCode = new CommandLine(new ClassCheckMain()).execute(args); + int exitCode = new CommandLine(new CodeCheckMain()).execute(args); System.exit(exitCode); } @@ -53,17 +53,22 @@ public class ClassCheckMain implements Callable { @Override public Integer call() throws Exception { AppConfig appConfig = AppConfig.load(config.toAbsolutePath()); + if (!appConfig.isMasterEnabled()) { + System.out.println("变更检测已全部关闭(checker.enabled=false)"); + return 0; + } + GitChangeScanner gitScanner = new GitChangeScanner(repoRoot.toAbsolutePath()); int totalSent = 0; - if (appConfig.isEnabled()) { - totalSent += runClassChangeCheck(appConfig, gitScanner); + if (appConfig.isClassCheckEnabled()) { + totalSent += executeClassCheck(appConfig, gitScanner); } else { System.out.println("类变更检测已关闭(class_check.enabled=false)"); } if (appConfig.isApiCheckEnabled()) { - totalSent += runApiChangeCheck(appConfig, gitScanner); + totalSent += executeApiCheck(appConfig, gitScanner); } else { System.out.println("API 变更检测已关闭(api_check.enabled=false)"); } @@ -74,7 +79,7 @@ public class ClassCheckMain implements Callable { return 0; } - private int runClassChangeCheck(AppConfig appConfig, GitChangeScanner gitScanner) throws Exception { + private int executeClassCheck(AppConfig appConfig, GitChangeScanner gitScanner) throws Exception { System.out.println("=== 类变更检测 ==="); EndpointIndexBuilder indexBuilder = new EndpointIndexBuilder(); Map endpointIndex = indexBuilder.buildIndex(repoRoot.toAbsolutePath(), appConfig); @@ -95,7 +100,7 @@ public class ClassCheckMain implements Callable { return reports.size(); } - private int runApiChangeCheck(AppConfig appConfig, GitChangeScanner gitScanner) throws Exception { + private int executeApiCheck(AppConfig appConfig, GitChangeScanner gitScanner) throws Exception { System.out.println("=== API 变更检测 ==="); ApiChangeAnalyzer analyzer = new ApiChangeAnalyzer(gitScanner); List reports = analyzer.analyze( diff --git a/.gitea/checker/src/main/java/com/autoCheck/analyzer/ClassChangeAnalyzer.java b/.gitea/checker/src/main/java/com/codechecker/analyzer/ClassChangeAnalyzer.java similarity index 88% rename from .gitea/checker/src/main/java/com/autoCheck/analyzer/ClassChangeAnalyzer.java rename to .gitea/checker/src/main/java/com/codechecker/analyzer/ClassChangeAnalyzer.java index f9e539f..0746457 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/analyzer/ClassChangeAnalyzer.java +++ b/.gitea/checker/src/main/java/com/codechecker/analyzer/ClassChangeAnalyzer.java @@ -1,14 +1,14 @@ -package com.aicheck.analyzer; +package com.codechecker.analyzer; -import com.aicheck.config.AppConfig; -import com.aicheck.git.GitChangeScanner; -import com.aicheck.model.ChangedClassFile; -import com.aicheck.model.ClassChangeKind; -import com.aicheck.model.ClassChangeReport; -import com.aicheck.model.FieldChange; -import com.aicheck.model.FieldInfo; -import com.aicheck.parser.ClassDeclParser; -import com.aicheck.parser.ClassFieldParser; +import com.codechecker.config.AppConfig; +import com.codechecker.git.GitChangeScanner; +import com.codechecker.model.ChangedClassFile; +import com.codechecker.model.ClassChangeKind; +import com.codechecker.model.ClassChangeReport; +import com.codechecker.model.FieldChange; +import com.codechecker.model.FieldInfo; +import com.codechecker.parser.ClassDeclParser; +import com.codechecker.parser.ClassFieldParser; import java.io.IOException; import java.nio.file.Path; @@ -32,7 +32,7 @@ public class ClassChangeAnalyzer { /** 扫描变更文件并逐条分析,无实质变更的 MODIFIED 会被跳过 */ public List analyze(Path repoRoot, AppConfig config, String oldSha, String newSha, - Map endpointIndex) throws IOException { + Map endpointIndex) throws IOException { List changedFiles = gitScanner.scanChangedClasses(oldSha, newSha); List reports = new ArrayList<>(); @@ -51,7 +51,7 @@ public class ClassChangeAnalyzer { /** 处理删除:标记 DELETED 并分析影响(基于旧源码) */ private ClassChangeReport analyzeDeleted(ChangedClassFile changedFile, AppConfig config, Path repoRoot, - String oldSha, Map endpointIndex) + String oldSha, Map endpointIndex) throws IOException { String path = changedFile.getRelativePath(); String oldSource = gitScanner.readFileAtCommit(oldSha, path); @@ -75,7 +75,7 @@ public class ClassChangeAnalyzer { /** 处理修改/重命名:字段 diff → 判定 changeKind → 影响分析 */ private ClassChangeReport analyzeModifiedOrRenamed(ChangedClassFile changedFile, AppConfig config, Path repoRoot, String oldSha, String newSha, - Map endpointIndex) + Map endpointIndex) throws IOException { String oldPath = changedFile.pathForOldCommit(); String newPath = changedFile.getRelativePath(); diff --git a/.gitea/checker/src/main/java/com/autoCheck/analyzer/EndpointIndexBuilder.java b/.gitea/checker/src/main/java/com/codechecker/analyzer/EndpointIndexBuilder.java similarity index 87% rename from .gitea/checker/src/main/java/com/autoCheck/analyzer/EndpointIndexBuilder.java rename to .gitea/checker/src/main/java/com/codechecker/analyzer/EndpointIndexBuilder.java index ada2195..5dadfb4 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/analyzer/EndpointIndexBuilder.java +++ b/.gitea/checker/src/main/java/com/codechecker/analyzer/EndpointIndexBuilder.java @@ -1,8 +1,8 @@ -package com.aicheck.analyzer; +package com.codechecker.analyzer; -import com.aicheck.config.AppConfig; -import com.aicheck.model.ApiEndpoint; -import com.aicheck.parser.EndpointParser; +import com.codechecker.config.AppConfig; +import com.codechecker.model.ApiEndpoint; +import com.codechecker.parser.EndpointParser; import java.io.IOException; import java.nio.file.Path; diff --git a/.gitea/checker/src/main/java/com/autoCheck/analyzer/FieldDiffEngine.java b/.gitea/checker/src/main/java/com/codechecker/analyzer/FieldDiffEngine.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/analyzer/FieldDiffEngine.java rename to .gitea/checker/src/main/java/com/codechecker/analyzer/FieldDiffEngine.java index 5d34456..2549c1b 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/analyzer/FieldDiffEngine.java +++ b/.gitea/checker/src/main/java/com/codechecker/analyzer/FieldDiffEngine.java @@ -1,7 +1,7 @@ -package com.aicheck.analyzer; +package com.codechecker.analyzer; -import com.aicheck.model.FieldChange; -import com.aicheck.model.FieldInfo; +import com.codechecker.model.FieldChange; +import com.codechecker.model.FieldInfo; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/.gitea/checker/src/main/java/com/autoCheck/analyzer/ImpactAnalyzer.java b/.gitea/checker/src/main/java/com/codechecker/analyzer/ImpactAnalyzer.java similarity index 93% rename from .gitea/checker/src/main/java/com/autoCheck/analyzer/ImpactAnalyzer.java rename to .gitea/checker/src/main/java/com/codechecker/analyzer/ImpactAnalyzer.java index 51b1e6a..fb761bd 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/analyzer/ImpactAnalyzer.java +++ b/.gitea/checker/src/main/java/com/codechecker/analyzer/ImpactAnalyzer.java @@ -1,10 +1,10 @@ -package com.aicheck.analyzer; +package com.codechecker.analyzer; -import com.aicheck.config.AppConfig; -import com.aicheck.model.ApiEndpoint; -import com.aicheck.model.ClassChangeReport; -import com.aicheck.model.ClassType; -import com.aicheck.parser.ConversionParser; +import com.codechecker.config.AppConfig; +import com.codechecker.model.ApiEndpoint; +import com.codechecker.model.ClassChangeReport; +import com.codechecker.model.ClassType; +import com.codechecker.parser.ConversionParser; import java.io.IOException; import java.nio.file.Path; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/ApiChangeAnalyzer.java b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/ApiChangeAnalyzer.java similarity index 84% rename from .gitea/checker/src/main/java/com/autoCheck/api/analyzer/ApiChangeAnalyzer.java rename to .gitea/checker/src/main/java/com/codechecker/api/analyzer/ApiChangeAnalyzer.java index 09a98a6..c5c0a6c 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/ApiChangeAnalyzer.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/ApiChangeAnalyzer.java @@ -1,11 +1,11 @@ -package com.aicheck.api.analyzer; +package com.codechecker.api.analyzer; -import com.aicheck.api.model.EndpointChangeReport; -import com.aicheck.api.model.EndpointSnapshot; -import com.aicheck.api.parser.EndpointSnapshotParser; -import com.aicheck.api.scanner.ApiFileChangeScanner; -import com.aicheck.config.AppConfig; -import com.aicheck.git.GitChangeScanner; +import com.codechecker.api.model.EndpointChangeReport; +import com.codechecker.api.model.EndpointSnapshot; +import com.codechecker.api.parser.EndpointSnapshotParser; +import com.codechecker.api.scanner.ApiFileChangeScanner; +import com.codechecker.config.AppConfig; +import com.codechecker.git.GitChangeScanner; import java.io.IOException; import java.nio.file.Path; @@ -13,7 +13,7 @@ import java.util.ArrayList; import java.util.List; /** - * API 变更分析编排(与 {@link com.aicheck.analyzer.ClassChangeAnalyzer} 平行、互不调用)。 + * API 变更分析编排(与 {@link com.codechecker.analyzer.ClassChangeAnalyzer} 平行、互不调用)。 */ public class ApiChangeAnalyzer { private final GitChangeScanner gitScanner; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/EndpointDiffEngine.java b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/EndpointDiffEngine.java similarity index 95% rename from .gitea/checker/src/main/java/com/autoCheck/api/analyzer/EndpointDiffEngine.java rename to .gitea/checker/src/main/java/com/codechecker/api/analyzer/EndpointDiffEngine.java index 6f22da9..84fd5f5 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/EndpointDiffEngine.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/EndpointDiffEngine.java @@ -1,9 +1,9 @@ -package com.aicheck.api.analyzer; +package com.codechecker.api.analyzer; -import com.aicheck.api.model.ApiChangeKind; -import com.aicheck.api.model.EndpointChangeReport; -import com.aicheck.api.model.EndpointSnapshot; -import com.aicheck.api.model.ParameterChange; +import com.codechecker.api.model.ApiChangeKind; +import com.codechecker.api.model.EndpointChangeReport; +import com.codechecker.api.model.EndpointSnapshot; +import com.codechecker.api.model.ParameterChange; import java.io.IOException; import java.util.ArrayList; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/ParameterDiffEngine.java b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/ParameterDiffEngine.java similarity index 93% rename from .gitea/checker/src/main/java/com/autoCheck/api/analyzer/ParameterDiffEngine.java rename to .gitea/checker/src/main/java/com/codechecker/api/analyzer/ParameterDiffEngine.java index 6551cb7..5b60ebf 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/analyzer/ParameterDiffEngine.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/analyzer/ParameterDiffEngine.java @@ -1,13 +1,13 @@ -package com.aicheck.api.analyzer; +package com.codechecker.api.analyzer; -import com.aicheck.analyzer.FieldDiffEngine; -import com.aicheck.api.model.EndpointSnapshot; -import com.aicheck.api.model.MethodParameterSnapshot; -import com.aicheck.api.model.ParameterChange; -import com.aicheck.api.parser.NestedDtoFieldParser; -import com.aicheck.api.parser.NestedFieldInfo; -import com.aicheck.model.FieldChange; -import com.aicheck.model.FieldInfo; +import com.codechecker.analyzer.FieldDiffEngine; +import com.codechecker.api.model.EndpointSnapshot; +import com.codechecker.api.model.MethodParameterSnapshot; +import com.codechecker.api.model.ParameterChange; +import com.codechecker.api.parser.NestedDtoFieldParser; +import com.codechecker.api.parser.NestedFieldInfo; +import com.codechecker.model.FieldChange; +import com.codechecker.model.FieldInfo; import java.io.IOException; import java.nio.file.Path; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/model/ApiChangeKind.java b/.gitea/checker/src/main/java/com/codechecker/api/model/ApiChangeKind.java similarity index 51% rename from .gitea/checker/src/main/java/com/autoCheck/api/model/ApiChangeKind.java rename to .gitea/checker/src/main/java/com/codechecker/api/model/ApiChangeKind.java index b79af71..e731ffc 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/model/ApiChangeKind.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/model/ApiChangeKind.java @@ -1,7 +1,7 @@ -package com.aicheck.api.model; +package com.codechecker.api.model; /** - * API 变更类型(与类变更 {@link com.aicheck.model.ClassChangeKind} 独立)。 + * API 变更类型(与类变更 {@link com.codechecker.model.ClassChangeKind} 独立)。 */ public enum ApiChangeKind { NEW_ENDPOINT, diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/model/EndpointChangeReport.java b/.gitea/checker/src/main/java/com/codechecker/api/model/EndpointChangeReport.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/api/model/EndpointChangeReport.java rename to .gitea/checker/src/main/java/com/codechecker/api/model/EndpointChangeReport.java index 1bf19b6..d414c0c 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/model/EndpointChangeReport.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/model/EndpointChangeReport.java @@ -1,4 +1,4 @@ -package com.aicheck.api.model; +package com.codechecker.api.model; import java.util.ArrayList; import java.util.List; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/model/EndpointSnapshot.java b/.gitea/checker/src/main/java/com/codechecker/api/model/EndpointSnapshot.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/api/model/EndpointSnapshot.java rename to .gitea/checker/src/main/java/com/codechecker/api/model/EndpointSnapshot.java index b6875e0..04e3e6a 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/model/EndpointSnapshot.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/model/EndpointSnapshot.java @@ -1,4 +1,4 @@ -package com.aicheck.api.model; +package com.codechecker.api.model; import java.util.ArrayList; import java.util.List; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/model/MethodParameterSnapshot.java b/.gitea/checker/src/main/java/com/codechecker/api/model/MethodParameterSnapshot.java similarity index 97% rename from .gitea/checker/src/main/java/com/autoCheck/api/model/MethodParameterSnapshot.java rename to .gitea/checker/src/main/java/com/codechecker/api/model/MethodParameterSnapshot.java index 1bd457e..606aea8 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/model/MethodParameterSnapshot.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/model/MethodParameterSnapshot.java @@ -1,4 +1,4 @@ -package com.aicheck.api.model; +package com.codechecker.api.model; /** * 接口方法入参快照。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/model/ParameterChange.java b/.gitea/checker/src/main/java/com/codechecker/api/model/ParameterChange.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/api/model/ParameterChange.java rename to .gitea/checker/src/main/java/com/codechecker/api/model/ParameterChange.java index 3853c81..3e0af5c 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/model/ParameterChange.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/model/ParameterChange.java @@ -1,4 +1,4 @@ -package com.aicheck.api.model; +package com.codechecker.api.model; /** * API 参数或 RequestBody 嵌套字段变更。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/notify/ApiChangeNotifier.java b/.gitea/checker/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java similarity index 97% rename from .gitea/checker/src/main/java/com/autoCheck/api/notify/ApiChangeNotifier.java rename to .gitea/checker/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java index 55fa6f5..8aa1e3a 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/notify/ApiChangeNotifier.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/notify/ApiChangeNotifier.java @@ -1,10 +1,10 @@ -package com.aicheck.api.notify; +package com.codechecker.api.notify; -import com.aicheck.api.model.ApiChangeKind; -import com.aicheck.api.model.EndpointChangeReport; -import com.aicheck.api.model.ParameterChange; -import com.aicheck.common.MarkdownStyles; -import com.aicheck.common.WeComMarkdownSender; +import com.codechecker.api.model.ApiChangeKind; +import com.codechecker.api.model.EndpointChangeReport; +import com.codechecker.api.model.ParameterChange; +import com.codechecker.common.MarkdownStyles; +import com.codechecker.common.WeComMarkdownSender; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/parser/EndpointSnapshotParser.java b/.gitea/checker/src/main/java/com/codechecker/api/parser/EndpointSnapshotParser.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/api/parser/EndpointSnapshotParser.java rename to .gitea/checker/src/main/java/com/codechecker/api/parser/EndpointSnapshotParser.java index a65b27e..3031d5e 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/parser/EndpointSnapshotParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/parser/EndpointSnapshotParser.java @@ -1,8 +1,8 @@ -package com.aicheck.api.parser; +package com.codechecker.api.parser; -import com.aicheck.api.model.EndpointSnapshot; -import com.aicheck.api.model.MethodParameterSnapshot; -import com.aicheck.parser.TypeNameUtils; +import com.codechecker.api.model.EndpointSnapshot; +import com.codechecker.api.model.MethodParameterSnapshot; +import com.codechecker.parser.TypeNameUtils; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.NodeList; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/parser/JavaSourceLocator.java b/.gitea/checker/src/main/java/com/codechecker/api/parser/JavaSourceLocator.java similarity index 97% rename from .gitea/checker/src/main/java/com/autoCheck/api/parser/JavaSourceLocator.java rename to .gitea/checker/src/main/java/com/codechecker/api/parser/JavaSourceLocator.java index 6554b93..e119909 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/parser/JavaSourceLocator.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/parser/JavaSourceLocator.java @@ -1,4 +1,4 @@ -package com.aicheck.api.parser; +package com.codechecker.api.parser; import java.io.IOException; import java.nio.file.Files; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/parser/MethodDescriptionExtractor.java b/.gitea/checker/src/main/java/com/codechecker/api/parser/MethodDescriptionExtractor.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/api/parser/MethodDescriptionExtractor.java rename to .gitea/checker/src/main/java/com/codechecker/api/parser/MethodDescriptionExtractor.java index 8defa19..bbea177 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/parser/MethodDescriptionExtractor.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/parser/MethodDescriptionExtractor.java @@ -1,4 +1,4 @@ -package com.aicheck.api.parser; +package com.codechecker.api.parser; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.comments.JavadocComment; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/parser/NestedDtoFieldParser.java b/.gitea/checker/src/main/java/com/codechecker/api/parser/NestedDtoFieldParser.java similarity index 93% rename from .gitea/checker/src/main/java/com/autoCheck/api/parser/NestedDtoFieldParser.java rename to .gitea/checker/src/main/java/com/codechecker/api/parser/NestedDtoFieldParser.java index 763f1db..53e8d30 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/parser/NestedDtoFieldParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/parser/NestedDtoFieldParser.java @@ -1,8 +1,8 @@ -package com.aicheck.api.parser; +package com.codechecker.api.parser; -import com.aicheck.model.FieldInfo; -import com.aicheck.parser.ClassFieldParser; -import com.aicheck.parser.TypeNameUtils; +import com.codechecker.model.FieldInfo; +import com.codechecker.parser.ClassFieldParser; +import com.codechecker.parser.TypeNameUtils; import java.io.IOException; import java.nio.file.Path; diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/parser/NestedFieldInfo.java b/.gitea/checker/src/main/java/com/codechecker/api/parser/NestedFieldInfo.java similarity index 93% rename from .gitea/checker/src/main/java/com/autoCheck/api/parser/NestedFieldInfo.java rename to .gitea/checker/src/main/java/com/codechecker/api/parser/NestedFieldInfo.java index 838b7fe..870817e 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/parser/NestedFieldInfo.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/parser/NestedFieldInfo.java @@ -1,4 +1,4 @@ -package com.aicheck.api.parser; +package com.codechecker.api.parser; /** * DTO 嵌套字段扁平化条目(dot path)。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/api/scanner/ApiFileChangeScanner.java b/.gitea/checker/src/main/java/com/codechecker/api/scanner/ApiFileChangeScanner.java similarity index 95% rename from .gitea/checker/src/main/java/com/autoCheck/api/scanner/ApiFileChangeScanner.java rename to .gitea/checker/src/main/java/com/codechecker/api/scanner/ApiFileChangeScanner.java index c12081f..40b3686 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/api/scanner/ApiFileChangeScanner.java +++ b/.gitea/checker/src/main/java/com/codechecker/api/scanner/ApiFileChangeScanner.java @@ -1,6 +1,6 @@ -package com.aicheck.api.scanner; +package com.codechecker.api.scanner; -import com.aicheck.git.GitChangeScanner; +import com.codechecker.git.GitChangeScanner; import java.io.IOException; import java.nio.file.Path; diff --git a/.gitea/checker/src/main/java/com/autoCheck/common/MarkdownStyles.java b/.gitea/checker/src/main/java/com/codechecker/common/MarkdownStyles.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/common/MarkdownStyles.java rename to .gitea/checker/src/main/java/com/codechecker/common/MarkdownStyles.java index 5cee1b5..9a579f7 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/common/MarkdownStyles.java +++ b/.gitea/checker/src/main/java/com/codechecker/common/MarkdownStyles.java @@ -1,4 +1,4 @@ -package com.aicheck.common; +package com.codechecker.common; /** * 企微 Markdown v1 公共样式(类变更 / API 变更通知共用)。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/common/WeComMarkdownSender.java b/.gitea/checker/src/main/java/com/codechecker/common/WeComMarkdownSender.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/common/WeComMarkdownSender.java rename to .gitea/checker/src/main/java/com/codechecker/common/WeComMarkdownSender.java index 96a1615..3d6c56c 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/common/WeComMarkdownSender.java +++ b/.gitea/checker/src/main/java/com/codechecker/common/WeComMarkdownSender.java @@ -1,4 +1,4 @@ -package com.aicheck.common; +package com.codechecker.common; import okhttp3.MediaType; import okhttp3.OkHttpClient; diff --git a/.gitea/checker/src/main/java/com/autoCheck/config/AppConfig.java b/.gitea/checker/src/main/java/com/codechecker/config/AppConfig.java similarity index 90% rename from .gitea/checker/src/main/java/com/autoCheck/config/AppConfig.java rename to .gitea/checker/src/main/java/com/codechecker/config/AppConfig.java index d597665..019f686 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/config/AppConfig.java +++ b/.gitea/checker/src/main/java/com/codechecker/config/AppConfig.java @@ -1,4 +1,4 @@ -package com.aicheck.config; +package com.codechecker.config; import org.yaml.snakeyaml.Yaml; @@ -14,7 +14,8 @@ import java.util.Map; * 读取 .gitea/config.yaml,提供检测开关、扫描目录、企微配置等。 */ public class AppConfig { - private boolean enabled = true; + private boolean masterEnabled = true; + private boolean classCheckEnabled = true; private boolean dtoEntityConversionEnabled = true; private List modelDirs = new ArrayList<>(); private List controllerScanDirs = new ArrayList<>(); @@ -42,8 +43,11 @@ public class AppConfig { } AppConfig config = new AppConfig(); + Map checker = mapOrEmpty(root.get("checker")); + config.masterEnabled = boolOrDefault(checker.get("enabled"), true); + Map classCheck = mapOrEmpty(root.get("class_check")); - config.enabled = boolOrDefault(classCheck.get("enabled"), true); + config.classCheckEnabled = boolOrDefault(classCheck.get("enabled"), true); Map conversion = mapOrEmpty(classCheck.get("dto_entity_conversion")); config.dtoEntityConversionEnabled = boolOrDefault(conversion.get("enabled"), true); @@ -115,9 +119,14 @@ public class AppConfig { return value == null ? "" : value.toString(); } - /** 类变更检测总开关 */ - public boolean isEnabled() { - return enabled; + /** 变更检测总开关(checker.enabled,控制 class_check + api_check) */ + public boolean isMasterEnabled() { + return masterEnabled; + } + + /** 类变更检测开关(class_check.enabled) */ + public boolean isClassCheckEnabled() { + return classCheckEnabled; } /** Dto→Entity 类转换检测开关 */ diff --git a/.gitea/checker/src/main/java/com/autoCheck/git/GitChangeScanner.java b/.gitea/checker/src/main/java/com/codechecker/git/GitChangeScanner.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/git/GitChangeScanner.java rename to .gitea/checker/src/main/java/com/codechecker/git/GitChangeScanner.java index 8af68f0..f7716bf 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/git/GitChangeScanner.java +++ b/.gitea/checker/src/main/java/com/codechecker/git/GitChangeScanner.java @@ -1,8 +1,8 @@ -package com.aicheck.git; +package com.codechecker.git; -import com.aicheck.model.ChangedClassFile; -import com.aicheck.model.ClassType; -import com.aicheck.parser.ClassDeclParser; +import com.codechecker.model.ChangedClassFile; +import com.codechecker.model.ClassType; +import com.codechecker.parser.ClassDeclParser; import java.io.BufferedReader; import java.io.IOException; diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/ApiEndpoint.java b/.gitea/checker/src/main/java/com/codechecker/model/ApiEndpoint.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/model/ApiEndpoint.java rename to .gitea/checker/src/main/java/com/codechecker/model/ApiEndpoint.java index 13cc8de..d07db6e 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/ApiEndpoint.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/ApiEndpoint.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; import java.util.LinkedHashSet; import java.util.Set; diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/ChangedClassFile.java b/.gitea/checker/src/main/java/com/codechecker/model/ChangedClassFile.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/model/ChangedClassFile.java rename to .gitea/checker/src/main/java/com/codechecker/model/ChangedClassFile.java index 445143f..09d38a3 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/ChangedClassFile.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/ChangedClassFile.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; /** * Git 扫描得到的单个 Java 模型类变更记录。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/ClassChangeKind.java b/.gitea/checker/src/main/java/com/codechecker/model/ClassChangeKind.java similarity index 91% rename from .gitea/checker/src/main/java/com/autoCheck/model/ClassChangeKind.java rename to .gitea/checker/src/main/java/com/codechecker/model/ClassChangeKind.java index 3765961..b3c1fbd 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/ClassChangeKind.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/ClassChangeKind.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; /** * 单次类变更的类型,决定通知内容与影响分析策略。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/ClassChangeReport.java b/.gitea/checker/src/main/java/com/codechecker/model/ClassChangeReport.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/model/ClassChangeReport.java rename to .gitea/checker/src/main/java/com/codechecker/model/ClassChangeReport.java index 2f47c4d..1dfc0d7 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/ClassChangeReport.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/ClassChangeReport.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; import java.util.ArrayList; import java.util.List; diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/ClassType.java b/.gitea/checker/src/main/java/com/codechecker/model/ClassType.java similarity index 97% rename from .gitea/checker/src/main/java/com/autoCheck/model/ClassType.java rename to .gitea/checker/src/main/java/com/codechecker/model/ClassType.java index ee02e9a..ee2fa8f 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/ClassType.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/ClassType.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; /** * 目标模型类后缀类型,决定通知模版中展示哪些影响段落。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/FieldChange.java b/.gitea/checker/src/main/java/com/codechecker/model/FieldChange.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/model/FieldChange.java rename to .gitea/checker/src/main/java/com/codechecker/model/FieldChange.java index ad03a6a..0870d1f 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/FieldChange.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/FieldChange.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; /** * 字段级 diff 结果,用于通知中的 [新增]/[删除]/[修改]/[重命名] 行。 diff --git a/.gitea/checker/src/main/java/com/autoCheck/model/FieldInfo.java b/.gitea/checker/src/main/java/com/codechecker/model/FieldInfo.java similarity index 97% rename from .gitea/checker/src/main/java/com/autoCheck/model/FieldInfo.java rename to .gitea/checker/src/main/java/com/codechecker/model/FieldInfo.java index 1ee6176..00d8055 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/model/FieldInfo.java +++ b/.gitea/checker/src/main/java/com/codechecker/model/FieldInfo.java @@ -1,4 +1,4 @@ -package com.aicheck.model; +package com.codechecker.model; import java.util.Objects; diff --git a/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java b/.gitea/checker/src/main/java/com/codechecker/notify/WeComNotifier.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java rename to .gitea/checker/src/main/java/com/codechecker/notify/WeComNotifier.java index ee35f53..c023610 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/notify/WeComNotifier.java +++ b/.gitea/checker/src/main/java/com/codechecker/notify/WeComNotifier.java @@ -1,9 +1,9 @@ -package com.aicheck.notify; +package com.codechecker.notify; -import com.aicheck.model.ApiEndpoint; -import com.aicheck.model.ClassChangeReport; -import com.aicheck.model.ClassType; -import com.aicheck.model.FieldChange; +import com.codechecker.model.ApiEndpoint; +import com.codechecker.model.ClassChangeReport; +import com.codechecker.model.ClassType; +import com.codechecker.model.FieldChange; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/.gitea/checker/src/main/java/com/autoCheck/parser/ClassDeclParser.java b/.gitea/checker/src/main/java/com/codechecker/parser/ClassDeclParser.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/parser/ClassDeclParser.java rename to .gitea/checker/src/main/java/com/codechecker/parser/ClassDeclParser.java index f8ed0c3..eafa1b2 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/parser/ClassDeclParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/parser/ClassDeclParser.java @@ -1,4 +1,4 @@ -package com.aicheck.parser; +package com.codechecker.parser; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; diff --git a/.gitea/checker/src/main/java/com/autoCheck/parser/ClassFieldParser.java b/.gitea/checker/src/main/java/com/codechecker/parser/ClassFieldParser.java similarity index 98% rename from .gitea/checker/src/main/java/com/autoCheck/parser/ClassFieldParser.java rename to .gitea/checker/src/main/java/com/codechecker/parser/ClassFieldParser.java index 7de0f1b..15be0c1 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/parser/ClassFieldParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/parser/ClassFieldParser.java @@ -1,6 +1,6 @@ -package com.aicheck.parser; +package com.codechecker.parser; -import com.aicheck.model.FieldInfo; +import com.codechecker.model.FieldInfo; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; diff --git a/.gitea/checker/src/main/java/com/autoCheck/parser/ConversionParser.java b/.gitea/checker/src/main/java/com/codechecker/parser/ConversionParser.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/parser/ConversionParser.java rename to .gitea/checker/src/main/java/com/codechecker/parser/ConversionParser.java index 28a783f..6bfc1ec 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/parser/ConversionParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/parser/ConversionParser.java @@ -1,4 +1,4 @@ -package com.aicheck.parser; +package com.codechecker.parser; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; diff --git a/.gitea/checker/src/main/java/com/autoCheck/parser/EndpointParser.java b/.gitea/checker/src/main/java/com/codechecker/parser/EndpointParser.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/parser/EndpointParser.java rename to .gitea/checker/src/main/java/com/codechecker/parser/EndpointParser.java index 5cb3010..8dee22f 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/parser/EndpointParser.java +++ b/.gitea/checker/src/main/java/com/codechecker/parser/EndpointParser.java @@ -1,6 +1,6 @@ -package com.aicheck.parser; +package com.codechecker.parser; -import com.aicheck.model.ApiEndpoint; +import com.codechecker.model.ApiEndpoint; import com.github.javaparser.StaticJavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.NodeList; diff --git a/.gitea/checker/src/main/java/com/autoCheck/parser/TypeNameUtils.java b/.gitea/checker/src/main/java/com/codechecker/parser/TypeNameUtils.java similarity index 99% rename from .gitea/checker/src/main/java/com/autoCheck/parser/TypeNameUtils.java rename to .gitea/checker/src/main/java/com/codechecker/parser/TypeNameUtils.java index fb0c946..27ed236 100644 --- a/.gitea/checker/src/main/java/com/autoCheck/parser/TypeNameUtils.java +++ b/.gitea/checker/src/main/java/com/codechecker/parser/TypeNameUtils.java @@ -1,4 +1,4 @@ -package com.aicheck.parser; +package com.codechecker.parser; import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.Type; diff --git a/.gitea/config.yaml b/.gitea/config.yaml index bd4a92f..fdf062f 100644 --- a/.gitea/config.yaml +++ b/.gitea/config.yaml @@ -1,52 +1,35 @@ # ============================================================ -# 类变更检测配置 -# 由 CI 流水线加载;jar 位于 .gitea/workflows/class-checker.jar +# 变更检测配置 +# 由 CI 流水线加载;jar 位于 .gitea/workflows/code-checker.jar # 修改后 push 即可生效,无需重新打包 jar(除非改动了 Java 源码) # ============================================================ -# 总开关。false 时跳过全部检测,流水线直接成功退出 -class_check: + +# 总开关:false 时跳过 class_check + api_check,流水线直接退出 +checker: enabled: true - # Dto → Entity 类转换影响检测开关 - # true:分析 Dto 变更是否通过 convert() 或 BeanUtils.copyProperties 影响到 Entity - # false:通知中「② 类转换影响」段落显示「未开启检测」 +# 类变更检测(Vo/Dto/Entity/Model 字段增删改等) +class_check: + enabled: true dto_entity_conversion: enabled: false - # 模型类源码目录(相对仓库根路径,可配置多个) - # 用于声明 Vo/Dto/Entity/Model 所在模块;当前版本按 git diff 全仓库扫描, - # 类名须以 Dto、Vo、VO、Entity、Model 结尾才会纳入检测 model_dirs: - jnpf-ftb/jnpf-ftb-entity/src/main/java # 接口索引扫描目录,用于分析类变更对 API 的影响范围 endpoint_scan: controllers: - # Spring @RestController / @Controller 所在目录 - # 解析 @RequestMapping 等注解,建立「HTTP 方法 + 路径 → 入参/返回值类型」索引 - jnpf-ftb/jnpf-ftb-biz/src/main/java feign_apis: - # OpenFeign @FeignClient 接口所在目录 - # 解析 Feign 接口方法签名,补充远程调用端的影响范围 - jnpf-ftb/jnpf-ftb-api/src/main/java conversion_scan: - # Dto → Entity 转换代码扫描目录(相对仓库根路径,可配置多个) - # 在这些目录中搜索 BeanUtils.copyProperties(source, target) 等调用, - # 判断哪些 Entity 会因 Dto 字段变更而受影响 - jnpf-ftb/jnpf-ftb-biz/src/main/java -# 企业微信通知开关 # false:不发送企微,完整通知内容仅打印到 CI 日志 -wecom: - enabled: true - webhook_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=61f08cc9-b734-4dff-a931-7f33654c0a81" -# true:无变更时打印「无类变更,静默退出」后正常结束(不发送通知) -notify: - only_on_change: true - -# API 变更检测(路径 / 请求方式 / 参数),与 class_check 共用同一 jar 与 wecom 配置 +# API 变更检测(路径 / 请求方式 / 参数),与 class_check 同级 api_check: enabled: true exclude_framework_params: true @@ -55,3 +38,11 @@ api_check: - jnpf-ftb/jnpf-ftb-biz/src/main/java feign_apis: - jnpf-ftb/jnpf-ftb-api/src/main/java + +# 企业微信通知开关 +wecom: + enabled: true + webhook_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=61f08cc9-b734-4dff-a931-7f33654c0a81" + +notify: + only_on_change: true diff --git a/.gitea/workflows/class-change-check.yml b/.gitea/workflows/class-change-check.yml deleted file mode 100644 index bee6298..0000000 --- a/.gitea/workflows/class-change-check.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: 类变更检测 -run-name: ${{ gitea.actor }}的类变更检测 - -#on: [push] -on: - push: - branches: - - class-check - workflow_dispatch: - -jobs: - class-change-check: - if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }} - runs-on: jdk11 - - steps: - - name: 检出代码 - run: | - git config --global http.sslVerify false - git clone "https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" . - git checkout ${{ gitea.sha }} -# -# run: | -# git clone --depth=2 \ -# "http://oauth2:${{ gitea.token }}@host.docker.internal:3000/${{ gitea.repository }}.git" \ -# . -# git checkout ${{ gitea.sha }} - - - name: 检查配置文件与预编译 jar - run: | - if [ ! -f .gitea/config.yaml ]; then - echo "错误: 缺少 .gitea/config.yaml" - exit 1 - fi - if [ ! -f .gitea/workflows/class-checker.jar ]; then - echo "错误: 缺少 .gitea/workflows/class-checker.jar" - echo "请本地执行: powershell -File scripts/build-class-checker.ps1" - exit 1 - fi - - - name: 验证 JDK - run: | - echo "Java: $(java -version 2>&1 | head -1)" - - - name: 执行类变更检测 - run: | - OLD_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "") - if [ -z "$OLD_SHA" ]; then - echo "首次提交,跳过类变更检测" - exit 0 - fi - COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S') - java -jar .gitea/workflows/class-checker.jar \ - --config .gitea/config.yaml \ - --repo-root . \ - --old-sha "$OLD_SHA" \ - --new-sha "$(git rev-parse HEAD)" \ - --modifier "${{ gitea.actor }}" \ - --modify-time "$COMMIT_TIME" diff --git a/.gitea/workflows/code-check.yml b/.gitea/workflows/code-check.yml new file mode 100644 index 0000000..989dc4c --- /dev/null +++ b/.gitea/workflows/code-check.yml @@ -0,0 +1,53 @@ +name: CodeChecker 变更检测 +run-name: ${{ gitea.actor }}的CodeChecker变更检测 + +on: + push: + branches: + - class-check + workflow_dispatch: + +jobs: + code-check: + if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }} + runs-on: jdk11 + + steps: + - name: 检出代码 + run: | + git config --global http.sslVerify false + git clone "https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" . + git checkout ${{ gitea.sha }} + + - name: 检查配置文件与预编译 jar + run: | + if [ ! -f .gitea/config.yaml ]; then + echo "错误: 缺少 .gitea/config.yaml" + exit 1 + fi + if [ ! -f .gitea/workflows/code-checker.jar ]; then + echo "错误: 缺少 .gitea/workflows/code-checker.jar" + echo "请本地执行: powershell -File scripts/build-code-checker.ps1" + exit 1 + fi + + - name: 验证 JDK + run: | + echo "Java: $(java -version 2>&1 | head -1)" + + - name: 执行 CodeChecker 变更检测 + run: | + OLD_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "") + if [ -z "$OLD_SHA" ]; then + echo "首次提交,跳过变更检测" + exit 0 + fi + COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S') + java -jar .gitea/workflows/code-checker.jar \ + --config .gitea/config.yaml \ + --repo-root . \ + --old-sha "$OLD_SHA" \ + --new-sha "$(git rev-parse HEAD)" \ + --modifier "${{ gitea.actor }}" \ + --modify-time "$COMMIT_TIME" + \ No newline at end of file diff --git a/.gitea/workflows/class-checker.jar b/.gitea/workflows/code-checker.jar similarity index 94% rename from .gitea/workflows/class-checker.jar rename to .gitea/workflows/code-checker.jar index dc30e1939563716396bf54b4281198200581a6cd..6bcb45681fe2aa6088356bdce0700e7ee41a6ac2 100644 GIT binary patch delta 219425 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 h4Q}m_wChE$<%849o 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%0Ar^gx79ND)wPTZEry+E#8fZ z$rmh`=?E(dcpPXXiZgN#g0Xlhc(eAv#OF7H(BBIp<`WZLr58W>H;8P0APw{5Q4c=v zh2mTTYEX;`&FtL;rpz;-5-G@ta`vH^PMa!t8}?z!w$DOFOvt?$alh}#NGGYUEB{uf z8^wsWSye&AmK0=2GinIJ!z0LvPLv=AjC^Ipg8cVmsKkPlRvR+rv~w0(|N8xiTt>Kn zb0UK9rb=j#wfMlQbO5}FdNL0ym;8}4is5B(0^WB3oy*!Y%l01u`@`T}oy=eb2wA33tg6t{k2y91U*PN03Bk2Dt z4HrbvP_VVN)!`_#E{zoMi{FrI(88r$hOduf*q`nq&Bu$T*I|@SjQdj$`7x@i@wNn}&%FQn$GR%sYX6UA~aTz3A)- z%xv)NZW&=g^)8_A?RXNgI9H^AH=jg@b!eGDtWP225!kU}6FpAB-t$d@IKjjgY)dg` z=3hZ@D*7b|6SF0#tu0T(=pgJ;F>ldn2%bRGV#56t3bynN>hG*G1(xJ~2CeZAY%u*l zUX=6!yG%+rRWd#!ki4^KD{3@E9ov*{p2gS0lD`#5$<-iJYI_c)vkJS@ELeOSLE~7P zk2DH+M?wV)F*cg)