You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将原始用户关联至GitHub Bot触发的GitHub Workflows

解决Bot触发Workflow时通知原始用户的问题

核心问题:自定义GitHub Bot触发Workflow后,系统默认的actor是Bot账号,导致Workflow运行的通知无法触达发起操作的原始用户(比如合并PR、推送代码的用户),需要让原始用户能收到通知。

下面是几个可行的解决方法:

  • 手动在Workflow里指定通知对象
    Bot触发Workflow时,把原始用户的用户名(比如从触发事件里拿到的sender.login)作为参数传给Workflow。比如调用GitHub API触发时,加上inputs字段:

    curl -X POST \
      -H "Accept: application/vnd.github.v3+json" \
      -H "Authorization: token YOUR_BOT_TOKEN" \
      https://api.github.com/repos/OWNER/REPO/actions/workflows/WORKFLOW_ID/dispatches \
      -d '{"ref":"main","inputs":{"original_user":"USER_LOGIN"}}'
    

    然后在Workflow的通知步骤里直接用这个参数,比如发Issue评论:

    - name: 发送Workflow结果通知
      uses: actions/github-script@v6
      with:
        script: |
          github.rest.issues.createComment({
            issue_number: context.issue.number,
            owner: context.repo.owner,
            repo: context.repo.repo,
            body: `@${{ inputs.original_user }} 你触发的Workflow已完成,状态:${{ job.status }}`
          })
    
  • 通过关联的Issue/PR获取原始用户
    如果Workflow是和特定Issue或PR绑定的,Bot触发时带上对应的编号,Workflow里用GitHub API拉取该Issue/PR的创建者或操作用户,以此作为通知对象:

    - name: 获取原始操作用户
      id: get_original_user
      uses: actions/github-script@v6
      with:
        script: |
          const prInfo = await github.rest.pulls.get({
            owner: context.repo.owner,
            repo: context.repo.repo,
            pull_number: ${{ inputs.pr_number }}
          })
          return prInfo.data.user.login
        result-encoding: string
    - name: 定向发送通知
      uses: actions/github-script@v6
      with:
        script: |
          github.rest.issues.createComment({
            issue_number: ${{ inputs.pr_number }},
            owner: context.repo.owner,
            repo: context.repo.repo,
            body: `@${{ steps.get_original_user.outputs.result }} 你的Workflow运行结束,状态:${{ job.status }}`
          })
    
  • 关闭默认通知,用自定义逻辑替代
    GitHub默认的Workflow通知是基于actor的,没法直接修改接收人。可以先在仓库设置里关闭Workflow的默认通知,然后在Workflow里实现自己的通知逻辑,直接把消息发给原始用户,方式可以是Issue评论、邮件或者团队聊天工具通知。

内容的提问来源于stack exchange,提问作者WoodyWoodsta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:33:01