如何集成GitHub Actions实现所有仓库push/pull事件自动推送Slack通知
GitHub Actions 与 Slack 集成配置步骤
一、Slack 侧生成Webhook地址
- 打开目标Slack工作区的应用管理页面,创建Incoming Webhooks应用
- 选择接收通知的Slack频道,确认后生成专属Webhook URL,暂存该地址后续使用
二、GitHub 侧配置全局加密变量
- 进入GitHub个人设置页面,依次选择「Secrets and variables」-「Actions」
- 新建名为
SLACK_WEBHOOK_URL的加密Secret,值填写上一步生成的Slack Webhook地址,该变量可被你名下所有仓库的Actions调用
三、配置全局触发的通知工作流
- 在你的GitHub账号下创建名为
.github的公共仓库(已存在可跳过) - 在该仓库内新建路径
.github/workflows/slack-notify.yml,写入如下配置:
name: Slack 仓库操作通知 # 触发条件:所有分支的push操作、PR的新建/更新/重开/关闭操作 on: push: branches: ['*'] pull_request: types: [opened, synchronize, reopened, closed] permissions: contents: read jobs: send-slack-notify: runs-on: ubuntu-latest steps: - name: 推送通知到Slack uses: slackapi/slack-github-action@v1.24.0 with: # 自定义通知内容,可根据需要增减字段 payload: | { "text": "GitHub 仓库操作提醒", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "*操作类型*: ${{ github.event_name }}\n*所属仓库*: ${{ github.repository }}\n*操作人*: ${{ github.actor }}\n*详情跳转*: <${{ github.event.pull_request.html_url || github.event.head_commit.url }}|查看操作详情>" } } ] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
四、配置验证
向你名下任意仓库提交一次代码或新建PR,查看对应Slack频道是否收到弹窗通知即可。
注意事项
- 若部分仓库不需要触发通知,可进入对应仓库的Actions设置页面,单独禁用该共享工作流
- 可自行修改yml配置中的payload字段,自定义通知显示的内容格式,支持添加分支名、提交信息、PR状态等字段
- Slack Webhook URL为敏感信息,请勿直接明文写入配置文件,存储在GitHub Secrets中为加密状态,不会对外泄露
内容的提问来源于stack exchange,提问作者San
相关产品推荐
相关产品推荐

