如何通过GitHub GraphQL API从Issue ID获取Project V2中的项目项ID
如何通过GitHub GraphQL API根据Issue ID获取Project V2中的项目项ID
完全可以实现这个需求,核心是利用Issue对象与Project V2项目项的关联字段来查询。
基础查询示例
以下GraphQL查询可根据Issue的全局ID获取其关联的所有Project V2项目项信息,包含项目项ID:
query GetProjectItemsForIssue($issueId: ID!) { node(id: $issueId) { ... on Issue { projectItems(first: 10) { nodes { id # 这就是你要的项目项ID project { id title # 项目名称,方便区分不同Project V2 } } } } } }
参数说明
$issueId:需传入Issue的GitHub全局ID(格式通常为I_开头的字符串),如果只有Issue的数字编号,可以先通过简单查询获取其全局ID,或者直接将数字编号转换为全局ID(例如编号为123的Issue,全局ID格式类似I_kwDOABCDEfg123,具体取决于你的仓库)
过滤特定Project V2的项目项
如果Issue关联了多个Project V2,且你只需要某个特定项目的项目项ID,可以添加filterBy条件精准筛选:
query GetTargetProjectItemForIssue($issueId: ID!, $projectId: ID!) { node(id: $issueId) { ... on Issue { projectItems(first: 10, filterBy: {projectId: $projectId}) { nodes { id project { title } } } } } }
注意事项
- 确保你的API令牌拥有对应权限:如果是私有仓库/项目,需要
repo权限;如果是组织公开项目,至少需要project:read权限 first参数用于限制返回结果数量,可根据实际需求调整(最大支持100)
内容的提问来源于stack exchange,提问作者nakaakist
相关产品推荐
相关产品推荐

