这是一个用于发送 GitHub 事件通知到 Discord 的 Action。支持 Push、Pull Request 和 Release 事件,并以中文格式展示详细信息。
- 🇨🇳 全中文界面:友好的中文通知格式。
- 📊 多事件支持:
- Push: 代码提交统计(新增/删除行数)。
- Pull Request: 新增 PR(待检视)、合并 PR、关闭 PR。
- Release: 新版本发布通知。
- 🔗 快速链接:提供仓库、PR、Commit、Release 的直接跳转链接。
| 参数名 | 必填 | 默认值 | 描述 |
|---|---|---|---|
webhook_url |
是 | 无 | Discord Webhook 地址。建议存储在 Secrets 中。 |
github_token |
否 | ${{ github.token }} |
GitHub Token,用于 API 访问(目前仅作预留)。 |
在你的 GitHub 仓库 .github/workflows/ 目录下创建一个 YAML 文件(例如 notify.yml):
name: Discord Notification
on:
push:
branches: [ "**" ]
pull_request:
types: [opened, reopened, closed]
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 2 # 必须设置为 2 或 0,以便统计 Push 事件的变更
- name: Send Discord Notification
uses: Time-Machine-Lab/TML-Github_Actions/actions/discord-github-notify@main
with:
webhook_url: ${{ secrets.DISCORD_WEBHOOK_URL }}该 Action 会根据触发的事件自动调整通知样式:
- 颜色: 🔵 蓝色
- 内容: 分支、提交者、提交信息、代码变更统计(文件/新增/删除)。
- Open / Reopen: 🟠 橙色
- 标题: "🔀 新增 PR 待检视"
- 内容: 发起人、源分支 -> 目标分支。
- Merged: 🟢 绿色
- 标题: "✅ PR 已合并"
- 内容: 合并者、目标分支。
- Closed (未合并): 🔴 红色
- 标题: "⛔ PR 已关闭"
- 内容: 操作者。
- Published: 🟣 紫色
- 标题: "🎉 新版本发布"
- 内容: 版本号、版本类型(正式版/预发布版)、发行说明链接。
- Checkout Depth: 务必在
actions/checkout中设置fetch-depth: 2,否则无法计算 Push 事件的代码变更统计。 - Secrets: 请在仓库 Settings -> Secrets and variables -> Actions 中添加
DISCORD_WEBHOOK_URL。
如果您的仓库是私有的,请确保:
- Action 访问权限:若本 Action 仓库也是私有的,请在
Settings -> Actions -> General -> Access中开启跨仓库访问权限。 - Token 权限:工作流中的
GITHUB_TOKEN需具备contents: read权限,以便 Action 能够读取代码差异。 - 链接预览:由于安全限制,Discord 无法自动抓取私有仓库链接的预览图,这是正常现象。内容中的链接仍可点击,但需要您在浏览器中登录 GitHub。