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 dc30e19..6bcb456 100644 Binary files a/.gitea/workflows/class-checker.jar and b/.gitea/workflows/code-checker.jar differ diff --git a/.gitignore b/.gitignore index b1ada3d..97b2b37 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ # Package Files # *.jar -!.gitea/workflows/class-checker.jar +!.gitea/workflows/code-checker.jar *.war *.nar *.ear @@ -29,6 +29,6 @@ replay_pid* .env.gitea gitea-runner/data/ -# maven build output(提交 .gitea/workflows/class-checker.jar 即可) +# maven build output(提交 .gitea/workflows/code-checker.jar 即可) .gitea/checker/target/ diff --git a/scripts/build-class-checker.ps1 b/scripts/build-code-checker.ps1 similarity index 68% rename from scripts/build-class-checker.ps1 rename to scripts/build-code-checker.ps1 index a10e006..8f6da3f 100644 --- a/scripts/build-class-checker.ps1 +++ b/scripts/build-code-checker.ps1 @@ -1,12 +1,12 @@ -# 本地打包 class-checker 并复制到 .gitea/workflows/ +# 本地打包 CodeChecker 并复制到 .gitea/workflows/ $ErrorActionPreference = "Stop" $Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path) $CheckerDir = Join-Path $Root ".gitea\checker" $WorkflowsDir = Join-Path $Root ".gitea\workflows" -$TargetJar = Join-Path $CheckerDir "target\class-checker.jar" -$OutputJar = Join-Path $WorkflowsDir "class-checker.jar" +$TargetJar = Join-Path $CheckerDir "target\code-checker.jar" +$OutputJar = Join-Path $WorkflowsDir "code-checker.jar" -Write-Host ">> 编译 class-checker..." +Write-Host ">> 编译 CodeChecker..." Push-Location $Root & mvn -q -f .gitea/checker/pom.xml package -DskipTests if ($LASTEXITCODE -ne 0) { @@ -22,4 +22,4 @@ if (-not (Test-Path $TargetJar)) { New-Item -ItemType Directory -Force -Path $WorkflowsDir | Out-Null Copy-Item -Force $TargetJar $OutputJar Write-Host ">> 已输出: $OutputJar" -Write-Host ">> 请 commit 并 push .gitea/workflows/class-checker.jar" +Write-Host ">> 请 commit 并 push .gitea/workflows/code-checker.jar"