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

如何用GitHub GraphQL API获取Issue在ProjectV2中的Status值?

获取Issue在组织级ProjectV2中的Status字段值

你之前的查询报错是因为GitHub GraphQL的Issue对象并没有projectItems字段,得换个思路——从组织级ProjectV2的角度反向关联对应的Issue条目,才能拿到Status字段的值。

下面分两种场景给出可行的查询:

场景1:已知Project的node ID和Issue的node ID

query getIssueProjectStatus($projectId: ID!, $issueId: ID!) {
  node(id: $projectId) {
    ... on ProjectV2 {
      items(first: 1, filter: {content: {id: $issueId}}) {
        nodes {
          id
          fieldValueByName(name: "Status") {
            ... on ProjectV2ItemFieldSingleSelectValue {
              name
            }
          }
        }
      }
    }
  }
}

场景2:已知组织名称、Project编号和Issue的node ID

query getIssueProjectStatus($orgLogin: String!, $projectNumber: Int!, $issueId: ID!) {
  organization(login: $orgLogin) {
    projectV2(number: $projectNumber) {
      items(first: 1, filter: {content: {id: $issueId}}) {
        nodes {
          id
          fieldValueByName(name: "Status") {
            ... on ProjectV2ItemFieldSingleSelectValue {
              name
            }
          }
        }
      }
    }
  }
}

关键说明:

  • 用filter: {content: {id: $issueId}}精准定位关联目标Issue的项目条目,first:1足够因为一个Issue在同一个项目里只会有一条条目
  • 内置的「Status」是单选字段,必须通过内联片段... on ProjectV2ItemFieldSingleSelectValue来解析它的选项名称(比如"Closed")
  • 执行查询时需要传入对应的变量:比如$projectId/$orgLogin/$projectNumber和$issueId

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:18:28