在 GitLab 中配置 Webhook 来调用 Java 接口以校验 commit 信息,是很多公司的一些要求,因为提交信息的规范化是必要的
在 GitLab 项目中进入设置页面。
在左侧导航栏中选择 “Webhooks”(Web钩子)。
在 Webhooks 页面中点击 “Add Webhook”(添加 Webhook)按钮。
在 Webhook 配置表单中,填写以下信息:
- Name:自定义 Webhook 的名称。
- URL:调用 Java 接口的 URL。
- Push events:勾选 “Push events”(推送事件)选项,以便在每次 commit 时触发 – Webhook。
- Active:勾选 “Active”(激活)选项,使 Webhook 生效。
- Secret token:自定义一个 secret token,用于验证请求的合法性。
- 点击 “Add Webhook”(添加 Webhook)按钮,完成配置。
接下来,需要编写 Java 接口来接收并校验 commit 信息。以下是一个简单的示例代码,可以根据实际需求进行修改和扩展:
import javax.servlet.http.HttpServletRequest;
import org.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
@RestController
服务器托管网public class CommitHookController {
@Autowired
private ObjectMapper objectMapper;
@RequestMapping("/webhook")
public String webhook(HttpServle服务器托管网tRequest request) throws Exception {
String body = request.getReader().readLine();
JSONObject json = new JSONObject(body);
String ref = json.getString("ref");
String pusher = json.getString("pusher");
JSONObject commit = json.getJSONObject("commit");
String message = commit.getString("message");
// 在这里添加校验逻辑,例如检查 commit message 是否符合要求等。
if (!message.matches("[a-zA-Z0-9s]+")) {
return "Invalid commit message.";
}
// 返回成功响应或其他自定义响应。
return "Commit hooks are awesome!";
}
}
实战配置如下
稍后更新
问题
- git的webhook配置范围是单个项目还是gitlab上的所有项目
Git的Webhook配置范围可以针对单个项目,也可以针对GitLab上的所有项目。具体配置取决于你的需求。
对于单个项目,可以在项目的设置页面中找到Webhooks选项,然后进行配置。对于所有项目,可以在GitLab的全局设置中进行配置。
需要注意的是,Webhook的配置信息是存储在GitLab的数据库中的,所以在进行配置更改后,需要提交更改并推送到GitLab服务器上才能生效。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
考虑到苹果最近将更多高级功能转移到iPhone Pro设备上的趋势,今年秋天iPhone 15 Pro与谷歌Pixel 7 Pro的对决将是一场特别有趣的对决。去年发布的iPhone 14 Pro确实发生了这种情况,有传言称iPhone 15 Pro再次受到了…