如何用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
相关产品推荐
相关产品推荐

