Gitee + Server酱:仓库事件推送到微信
效果:Gitee 仓库有推送、PR、Issue 等事件时,自动收到微信通知。
前置条件
- Server酱 SendKey(30 秒获取教程)
- 一个 Gitee 仓库的管理权限
- (中转方案)Cloudflare Workers 或腾讯云函数等可部署 HTTP 中转的环境
配置步骤
方案一:直连(固定文案通知)
Server酱 API 会优先读取 URL query 中的 title 参数,因此可以直接把通知标题写进 Webhook URL,无需中转。
- 在 Gitee 仓库页面进入 管理 → WebHooks → 添加
- URL 填入以下地址(将
你的SENDKEY替换为实际 SendKey):
https://sctapi.ftqq.com/你的SENDKEY.send?title=Gitee%E6%9C%89%E6%96%B0%E4%BA%8B%E4%BB%B6
- 勾选要监听的事件(如推送、Pull Request 等)
- 点击添加,若配置正确,微信端应收到标题为「Gitee有新事件」的通知
此方案每次推送的标题固定为「Gitee有新事件」,正文为空。适合只需要知道"有事件发生"的场景。
方案二:中转(动态内容)
要把提交信息、PR 标题等动态内容送进通知正文,需要一层中转:Gitee → 中转服务 → Server酱。以下以 Cloudflare Workers 为例。
- 在 Cloudflare Workers 中创建一个 Worker,部署以下代码:
export default {
async fetch(request) {
const SENDKEY = "你的SENDKEY";
const text = await request.text();
const params = new URLSearchParams();
params.set("title", "Gitee 有新事件");
params.set("desp", "```\n" + text + "\n```");
await fetch("https://sctapi.ftqq.com/" + SENDKEY + ".send", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: params.toString()
});
return new Response("ok");
}
};
- 记下 Worker 的访问地址(如
https://your-worker.workers.dev) - 在 Gitee 仓库 管理 → WebHooks → 添加,URL 填 Worker 地址,勾选要监听的事件
- 添加后,若配置正确,微信端应收到通知,正文为 Gitee 推送的 JSON
收到通知后,你可以根据 JSON 中的字段,在中转代码里用 JSON.parse(text) 解析出提交标题、PR 链接等内容,拼接到 desp 中发送。Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道,详见 /getting-started/channels/。
常见问题
直连方案收不到通知怎么办?
确认 URL 中的 SendKey 正确、title 参数已做 URL 编码。检查 Gitee Webhook 配置是否正确,若返回非 200 则检查 URL 拼写。更多排查方法见 常见问题与排查。
免费额度够用吗?
Server酱免费版每天 5 条,每分钟上限 50 条。Gitee 的推送、PR 等事件通常不会超量。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
中转代码收到的 JSON 怎么解析?
先部署上面的原始转发版本,收到一条通知后查看 JSON 结构,再据此修改代码提取需要的字段。用 JSON.parse(text) 解析后按实际字段名取值即可。
Gitee Webhook 的密码/签名怎么用?
Gitee 添加 Webhook 时可设置密码,中转代码中应校验请求签名以确保来源可信。具体签名算法以 Gitee 官方文档为准。
相关集成
- /integrations/python/ —— Python 脚本推送
- /integrations/qinglong/ —— 青龙面板任务通知
- /integrations/uptime-kuma/ —— Uptime Kuma 宕机告警