feat:通知新增分支参数

This commit is contained in:
2026-06-16 16:50:27 +08:00
parent 8ecc22e8af
commit 3c79428246
20 changed files with 74 additions and 29 deletions

View File

@@ -18,14 +18,14 @@ public class ApiChangeNotifier {
private final WeComMarkdownSender sender = new WeComMarkdownSender();
public int sendAll(String webhookUrl, List<EndpointChangeReport> reports,
String modifier, String modifyTime, boolean wecomEnabled) {
String modifier, String modifyTime, String branch, boolean wecomEnabled) {
if (reports == null || reports.isEmpty()) {
System.out.println("无 API 变更,不发送通知");
return 0;
}
int sent = 0;
for (EndpointChangeReport report : reports) {
String markdown = buildMarkdown(report, modifier, modifyTime);
String markdown = buildMarkdown(report, modifier, modifyTime, branch);
if (wecomEnabled) {
if (sender.send(webhookUrl, markdown)) {
sent++;
@@ -43,20 +43,20 @@ public class ApiChangeNotifier {
return sent;
}
public String buildMarkdown(EndpointChangeReport report, String modifier, String modifyTime) {
public String buildMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) {
ApiChangeKind kind = report.getChangeKind();
if (kind == ApiChangeKind.PATH_CHANGED
|| kind == ApiChangeKind.NEW_ENDPOINT
|| kind == ApiChangeKind.REMOVED_ENDPOINT) {
return buildPathMarkdown(report, modifier, modifyTime);
return buildPathMarkdown(report, modifier, modifyTime, branch);
}
if (kind == ApiChangeKind.METHOD_CHANGED) {
return buildMethodMarkdown(report, modifier, modifyTime);
return buildMethodMarkdown(report, modifier, modifyTime, branch);
}
return buildParamMarkdown(report, modifier, modifyTime);
return buildParamMarkdown(report, modifier, modifyTime, branch);
}
private String buildPathMarkdown(EndpointChangeReport report, String modifier, String modifyTime) {
private String buildPathMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) {
String changeLabel;
switch (report.getChangeKind()) {
case NEW_ENDPOINT:
@@ -72,10 +72,10 @@ public class ApiChangeNotifier {
StringBuilder sb = new StringBuilder();
sb.append("# 【API路径变更通知】").append("\n\n");
sb.append(MarkdownStyles.quoteKvBold("变更类型", MarkdownStyles.colorWarning(changeLabel))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("路径",
MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("时间", MarkdownStyles.colorComment(modifyTime))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("路径", MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n");
sb.append("\n## 【URI变更详情】").append("\n\n");
sb.append(MarkdownStyles.quoteKvBold("接口说明", formatEndpointDescription(report))).append("\n");
appendPathUriLines(sb, report, changeLabel);
@@ -103,12 +103,13 @@ public class ApiChangeNotifier {
}
}
private String buildMethodMarkdown(EndpointChangeReport report, String modifier, String modifyTime) {
private String buildMethodMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) {
StringBuilder sb = new StringBuilder();
sb.append("# 【API请求方式变更通知】").append("\n\n");
sb.append(MarkdownStyles.quoteKvBold("变更类型", MarkdownStyles.colorWarning("修改请求方式"))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("路径",
MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("时间", MarkdownStyles.colorComment(modifyTime))).append("\n");
sb.append("\n## 【请求方式变更详情】").append("\n\n");
@@ -122,7 +123,7 @@ public class ApiChangeNotifier {
return sb.toString();
}
private String buildParamMarkdown(EndpointChangeReport report, String modifier, String modifyTime) {
private String buildParamMarkdown(EndpointChangeReport report, String modifier, String modifyTime, String branch) {
StringBuilder sb = new StringBuilder();
sb.append("# 【API参数变更通知】").append("\n\n");
sb.append(MarkdownStyles.quoteKvBold("修改人", MarkdownStyles.colorComment(modifier))).append("\n");
@@ -133,6 +134,7 @@ public class ApiChangeNotifier {
+ MarkdownStyles.inlineCode(report.getUri()))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("路径",
MarkdownStyles.colorInfo(MarkdownStyles.safe(report.getSourceFile())))).append("\n");
sb.append(MarkdownStyles.quoteKvBold("分支", MarkdownStyles.colorComment(branch))).append("\n");
sb.append("\n## 【接口参数变动详情】").append("\n\n");
appendParameterDetails(sb, report);
return sb.toString();