# Gitee 接入 Server酱：仓库事件推送到微信（2026 教程）

> Gitee 仓库的推送、PR、Issue 等事件通过 Webhook 推送到微信，支持直连和中转两种方式。

- 网页版：https://sct.ftqq.com/docs/integrations/gitee/
- 更新日期：2026-07-17

# Gitee + Server酱：仓库事件推送到微信

> 效果：Gitee 仓库有推送、PR、Issue 等事件时，自动收到微信通知。

## 前置条件

- Server酱 SendKey（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）
- 一个 Gitee 仓库的管理权限
- （中转方案）Cloudflare Workers 或腾讯云函数等可部署 HTTP 中转的环境

## 配置步骤

### 方案一：直连（固定文案通知）

Server酱 API 会优先读取 URL query 中的 title 参数，因此可以直接把通知标题写进 Webhook URL，无需中转。

1. 在 Gitee 仓库页面进入 管理 → WebHooks → 添加
2. URL 填入以下地址（将 `你的SENDKEY` 替换为实际 SendKey）：

```
https://sctapi.ftqq.com/你的SENDKEY.send?title=Gitee%E6%9C%89%E6%96%B0%E4%BA%8B%E4%BB%B6
```

3. 勾选要监听的事件（如推送、Pull Request 等）
4. 点击添加，若配置正确，微信端应收到标题为「Gitee有新事件」的通知

此方案每次推送的标题固定为「Gitee有新事件」，正文为空。适合只需要知道"有事件发生"的场景。

### 方案二：中转（动态内容）

要把提交信息、PR 标题等动态内容送进通知正文，需要一层中转：Gitee → 中转服务 → Server酱。以下以 Cloudflare Workers 为例。

1. 在 Cloudflare Workers 中创建一个 Worker，部署以下代码：

````javascript
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");
  }
};
````

2. 记下 Worker 的访问地址（如 `https://your-worker.workers.dev`）
3. 在 Gitee 仓库 管理 → WebHooks → 添加，URL 填 Worker 地址，勾选要监听的事件
4. 添加后，若配置正确，微信端应收到通知，正文为 Gitee 推送的 JSON

收到通知后，你可以根据 JSON 中的字段，在中转代码里用 `JSON.parse(text)` 解析出提交标题、PR 链接等内容，拼接到 desp 中发送。Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道，详见 [/getting-started/channels/](https://sct.ftqq.com/docs/getting-started/channels/)。

## 常见问题

**直连方案收不到通知怎么办？**

确认 URL 中的 SendKey 正确、title 参数已做 URL 编码。检查 Gitee Webhook 配置是否正确，若返回非 200 则检查 URL 拼写。更多排查方法见 [常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/)。

**免费额度够用吗？**

Server酱免费版每天 5 条，每分钟上限 50 条。Gitee 的推送、PR 等事件通常不会超量。订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。

**中转代码收到的 JSON 怎么解析？**

先部署上面的原始转发版本，收到一条通知后查看 JSON 结构，再据此修改代码提取需要的字段。用 `JSON.parse(text)` 解析后按实际字段名取值即可。

**Gitee Webhook 的密码/签名怎么用？**

Gitee 添加 Webhook 时可设置密码，中转代码中应校验请求签名以确保来源可信。具体签名算法以 Gitee 官方文档为准。

## 相关集成

- [/integrations/python/](https://sct.ftqq.com/docs/integrations/python/) —— Python 脚本推送
- [/integrations/qinglong/](https://sct.ftqq.com/docs/integrations/qinglong/) —— 青龙面板任务通知
- [/integrations/uptime-kuma/](https://sct.ftqq.com/docs/integrations/uptime-kuma/) —— Uptime Kuma 宕机告警


## 懒人方案：把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手，它就会替你完成 Server酱 的接入：

```text
请帮我把 Server酱 微信通知接入到我当前的项目/工具中：
1. API：POST https://sctapi.ftqq.com/{SendKey}.send，参数 title（必填，不能含换行）、desp（正文，支持 Markdown，可选）；成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头，则改用 https://{uid}.push.ft07.com/send/{SendKey}.send，uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取；如果没有，提醒我到 https://sct.ftqq.com 免费获取（每天 5 条额度）。
4. 安全要求：不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定：任务结束发 1 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

