feat: 修改从gitea上获取配置的逻辑
All checks were successful
Redis序列化结构检查 / redis-schema-check (push) Has been skipped

This commit is contained in:
2026-07-14 10:23:51 +08:00
parent 797f435ccd
commit ea7bcaff2f
3 changed files with 85 additions and 16 deletions

View File

@@ -22,20 +22,12 @@ public class ReportBuilder {
public String toMarkdown(CheckReport report) {
StringBuilder sb = new StringBuilder();
sb.append("## ").append(titlePrefix).append(' ')
.append(nvl(report.getRepository())).append('\n');
sb.append("> 分支: ").append(nvl(report.getBranch())).append('\n');
sb.append("> 提交: ").append(shortSha(report.getOldSha()))
.append(nvl(report.getRepository())).append("\n\n");
sb.append("> **分支**: ").append(nvl(report.getBranch())).append('\n');
sb.append("> **提交**: ").append(shortSha(report.getOldSha()))
.append("").append(shortSha(report.getNewSha())).append('\n');
sb.append("> 提交人: ").append(nvl(report.getModifier())).append('\n');
sb.append("> 时间: ").append(nvl(report.getModifyTime())).append('\n');
sb.append("> 模式: ").append(nvl(report.getMode()));
if (report.isBlocked()) {
sb.append("(已阻断)");
}
sb.append('\n');
sb.append("> 汇总: P0=").append(report.count(Severity.P0))
.append(" P1=").append(report.count(Severity.P1))
.append(" P2=").append(report.count(Severity.P2)).append("\n\n");
sb.append("> **提交人**: ").append(nvl(report.getModifier())).append('\n');
sb.append("> **时间**: ").append(nvl(report.getModifyTime())).append("\n\n");
Map<Severity, List<SchemaChange>> grouped = new EnumMap<>(Severity.class);
for (SchemaChange c : report.getChanges()) {
@@ -55,10 +47,10 @@ public class ReportBuilder {
}
sb.append('\n');
if (c.getWriteLocation() != null) {
sb.append(" - 位置: ").append(c.getWriteLocation()).append('\n');
sb.append(" - **位置**: ").append(c.getWriteLocation()).append('\n');
}
if (c.getMessage() != null) {
sb.append(" - ").append(c.getMessage()).append('\n');
sb.append(" - ").append(formatDetailMessage(c.getMessage())).append('\n');
}
}
sb.append('\n');
@@ -66,6 +58,40 @@ public class ReportBuilder {
return sb.toString();
}
/**
* 将详情文案中的 key 加粗,如「删除字段 lastError」→「**删除字段**: lastError」。
*/
private String formatDetailMessage(String message) {
String trimmed = message.trim();
int colonCn = trimmed.indexOf('');
if (colonCn > 0 && colonCn <= 24) {
return "**" + trimmed.substring(0, colonCn) + "**: "
+ trimmed.substring(colonCn + 1).trim();
}
int colonEn = trimmed.indexOf(':');
if (colonEn > 0 && colonEn <= 24 && !trimmed.substring(0, colonEn).contains(" ")) {
return "**" + trimmed.substring(0, colonEn) + "**: "
+ trimmed.substring(colonEn + 1).trim();
}
String[] knownPrefixes = {
"删除字段 ", "新增字段 ", "字段路径迁移 ", "新增包装层 ", "新增 Redis 写入点,",
"删除 Redis 写入点,原 value 类型: "
};
for (String prefix : knownPrefixes) {
if (trimmed.startsWith(prefix)) {
String key = prefix.trim();
if (key.endsWith("") || key.endsWith(",")) {
key = key.substring(0, key.length() - 1);
}
return "**" + key + "**: " + trimmed.substring(prefix.length()).trim();
}
}
if (trimmed.startsWith("字段 ") && trimmed.contains(" 类型由 ")) {
return "**字段类型变更**: " + trimmed.substring("字段 ".length()).trim();
}
return trimmed;
}
public String toConsole(CheckReport report) {
if (!report.hasChanges()) {
return "未检测到 Redis 序列化结构变更。";