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

如何通过GitHub GraphQL API获取最新的GitHub Actions工作流运行记录?

解决方案:用GitHub GraphQL API直接获取指定分支触发的最新工作流ID

可行,你可以通过GitHub GraphQL API的Repository.workflows关联到Workflow.workflowRuns来实现,不需要混合REST API,也不依赖拉取请求。

核心查询思路

GitHub GraphQL的Repository对象虽然没有直接的workflow_runs字段,但可以先定位到目标工作流(通过工作流名称或文件路径),再通过该工作流的workflowRuns字段筛选特定分支的运行记录,按创建时间倒序取第一条,就能拿到刚触发的工作流ID。

示例查询

query GetLatestWorkflowRunId {
  repository(owner: "你的用户名", name: "仓库名") {
    workflows(first: 1, query: "工作流文件名或名称") {
      nodes {
        id
        name
        workflowRuns(
          first: 1
          branchName: "目标分支名"
          orderBy: {field: CREATED_AT, direction: DESC}
          # 可选:缩小时间范围,避免同分支旧运行干扰
          # createdAt: {since: "2024-05-20T00:00:00Z"}
        ) {
          nodes {
            id
            createdAt
            status
          }
        }
      }
    }
  }
}

关键参数说明

  • query: 用于定位目标工作流,可传入工作流文件路径(比如.github/workflows/deploy.yml)或工作流名称
  • branchName: 指定你触发工作流的分支
  • orderBy: 按创建时间倒序排列,确保第一条就是最新触发的运行
  • 可选的createdAt筛选:如果同一分支短时间内有多次触发,可以设置since为触发API的时间前后,进一步缩小范围

权限要求

你的访问令牌需要具备repo:status或完整repo权限(私有仓库),公共仓库需要public_repo权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:12:07