Dify应用的CI/CD状态可通过GitHub Actions实时推送至飞书/钉钉/企业微信:配置workflow_run触发、封装status-reporter Action调用peter-evans/slack-notification、在主流程末尾添加notify job并设置needs依赖、通过Secrets注入IM_WEBHOOK_URL密钥,确保构建完成后即时反馈✅/❌状态。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Dify应用的每次代码提交、测试结果和部署状态实时反馈到团队协作工具(如飞书、钉钉或企业微信),而不是等人工去GitHub页面翻看Actions运行记录。
配置GitHub Actions工作流触发状态上报
在项目根目录创建 .github/workflows/status-report.yml 文件,内容如下:
name: Status Reporter
on:
workflow_run:
workflows: ["Dify.AI CI/CD Pipeline"]
types: [completed]
这个配置表示:当名为 【Dify.AI CI/CD Pipeline】 的工作流完成时(无论成功或失败),立即触发本状态播报流程。
注意:workflow_run 事件无法通过 push 或 pull_request 直接触发,必须明确引用已存在的工作流名称,拼写错误将导致整个状态播报失效。
编写状态播报脚本并封装为Action
新建 .github/actions/status-reporter/action.yml,填入以下内容:
name: 'Status Reporter'
description: 'Post Dify CI/CD status to IM'
inputs:
webhook_url:
required: true
description: 'IM webhook URL'
runs:
using: 'composite'
steps:
- name: Extract status & job info
shell: bash
run: |
echo "STATUS=${{ github.event.workflow_run.conclusion }}" >> $GITHUB_ENV
echo "JOB_NAME=${{ github.event.workflow_run.name }}" >> $GITHUB_ENV
echo "REPO=${{ github.event.workflow_run.head_repository.full_name }}" >> $GITHUB_ENV
echo "BRANCH=${{ github.event.workflow_run.head_branch }}" >> $GITHUB_ENV
echo "RUN_URL=${{ github.event.workflow_run.html_url }}" >> $GITHUB_ENV
- name: Send notification
uses: peter-evans/slack-notification@v2
with:
status: ${{ env.STATUS }}
webhook-url: ${{ inputs.webhook_url }}
在 OpenClaw 中管理 GitHub 仓库、Pull Request、Issue 与工作流。适用于审查 PR、管理 Issue、自动化 GitHub Actions、同步仓库等场景。
该 Action 使用了社区成熟的 peter-evans/slack-notification,它兼容飞书、钉钉等主流Webhook格式,无需额外适配即可发送富文本消息。
在主CI/CD工作流中启用状态上报
打开你已有的 .github/workflows/ci-cd.yml,在 jobs 最后添加一个独立 job:
notify:
needs: build
runs-on: ubuntu-latest
steps:
- name: Post status to IM
uses: ./.github/actions/status-reporter
with:
webhook_url: ${{ secrets.IM_WEBHOOK_URL }}
这一步必须放在所有关键 job(如 test、lint、build)之后,并设置 【needs: build】 确保仅在构建完成才触发播报。如果误设为 needs: test,而 test 因超时失败,notify 将被跳过,状态就永远发不出去。
配置密钥并验证Webhook可用性
进入 GitHub 仓库 Settings → Secrets and variables → Actions → New repository secret。
Secret name 填 IM_WEBHOOK_URL,Value 粘贴你从飞书/钉钉后台复制的真实 Webhook 地址。
首次推送后,前往 Actions 页面,手动运行一次 status-report.yml 工作流,观察是否收到含 ✅ 或 ❌ 图标的消息。若无响应,检查 Webhook URL 是否带 【?timestamp=xxx&sign=xxx】 参数——这类带签名的 URL 不支持直接用于 GitHub Actions,需改用基础版 Webhook。

















