# GitlabWebHook **Repository Path**: dy5/gitlab-web-hook ## Basic Information - **Project Name**: GitlabWebHook - **Description**: 使用go编写的webhook脚本,对接的gitlab - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-28 - **Last Updated**: 2025-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitLab WebHook 自动部署脚本 ## 📌 项目简介 本项目是基于 **Go 语言** 实现的 GitLab WebHook 接收器,用于模拟 Jenkins 的部分 WebHook 功能,实现代码推送后自动触发部署流程。 > 当前版本暂未实现按分支自动部署至不同环境,仅提供部署环境的提示信息。 > 可通过 GitLab WebHook 的 Secret Token 实现环境识别逻辑(需同步修改代码中的 `secretToken`)。 ## 🎯 功能特性 - 接收 GitLab WebHook 推送事件 - 支持通过 Feishu(飞书)发送通知(富文本格式) - Telegram 消息发送功能为基础版本(需自行扩展) - 支持基本构建流程的触发 - 可扩展按分支或 Token 区分不同部署环境 - 可替代 Jenkins 中简单 WebHook 自动化场景 ## ⚙️ 使用说明 1. 修改源码中的关键配置项: - `secretToken`:GitLab WebHook 配置中的 Secret Token(用于校验请求来源) - `feishu_webhook_url`:飞书群机器人对应的 WebHook 地址 - `feishu-tg.go`:根据实际通知需求修改 `SendFeishuText` 函数中的富文本结构(二级数组内容) 2. 编译生成可执行文件: ```bash go build -o gitlab-webhook main.go ``` 3. 启动方式推荐如下两种: - **后台运行**(适合调试或测试阶段): ```bash nohup ./gitlab-webhook & ``` - **作为 systemd 服务运行**(推荐用于生产环境) 4. 配置 GitLab WebHook: - **URL**:设置为你服务器上监听的地址(如 `http://your-ip:port/webhook`) - **Content-Type**:请选择 `application/json` - **Secret Token**:设定并与源码中 `secretToken` 一致 - **事件触发**:建议勾选 `Push Events`,如需支持更多事件需自行拓展解析逻辑 ## 📄 注意事项 - 当前版本**不包含实际部署脚本**,仅提供通知触发与逻辑结构。部署操作建议结合 shell 脚本或 CI 工具链完成。 - 飞书消息为富文本格式,可根据官方文档扩展更多结构(如超链接、加粗、@群成员等)。 - Telegram 发送功能为预留接口,仅实现基本推送,具体逻辑请自行补充。 - 如需按不同分支部署、增强权限控制等功能,需在源码基础上继续扩展。