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

触发GitHub workflow dispatch事件后如何获取对应run id

解决方案

你可以通过以下两种可靠方案获取对应run id,完全规避并发匹配错误:

方案1:添加唯一触发标识(100%准确,推荐)

  • 先在对应Workflow的YAML配置中新增一个必填的自定义输入参数,示例配置如下:
on:
  workflow_dispatch:
    inputs:
      trigger_unique_id:
        description: '触发请求的全局唯一标识'
        required: true
        type: string
  • 调用REST API触发Workflow时,在请求体的inputs字段中传入你本地生成的全局唯一值(比如UUID),提前在本地留存这个值
  • 后续调用getRunsList接口获取运行列表时,遍历每个run的inputs字段,匹配到和你留存的trigger_unique_id完全一致的记录,对应的id就是本次触发的run id

如果是通过repository_dispatch事件触发,只需要把唯一标识放在client_payload中即可,后续匹配逻辑完全相同。

方案2:多维度过滤匹配(无需修改Workflow配置)

如果不方便调整Workflow的参数配置,可以用多维度组合过滤降低匹配误差:

  • 触发Workflow时本地记录请求的精确时间戳、触发的目标分支/标签、指定的commit SHA、触发使用的账号信息
  • 调用getRunsList接口时先按分支、commit SHA、触发者账号做第一层过滤
  • 在过滤后的结果中找created_at字段值晚于你触发请求时间、且时间差在2秒以内的记录,正常并发场景下这个结果就是你本次触发的run

注意:如果业务场景下Workflow触发并发量超过每秒5次,不推荐使用方案2,优先选择方案1。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:18:04