我正在与Github的graphql api(在学习graphql的同时)进行角力,试图使其列出某个里程碑中的所有问题。我不知道如何从API文档中做到这一点。

我可以查询问题并查看它们所处的里程碑(抱歉,名称已删除):

query {
    repository(owner:"me", name:"repo") {
        issues(last:10) {
            nodes {
                milestone {
                    id
                    title
                }
            }
         }
    }
}


我希望有一种方法可以说issues(milestoneID:"xyz")之类的东西,或者如果Issue可以定义MilestoneConnection(似乎不存在)。

到目前为止,在我对GraphQL的阅读/学习中,如果在架构中未定义显式参数,我还没有找到一种构建字段的任意过滤器的方法(我是吗?)。

我想我可以查询存储库中的所有问题,并对JSON响应进行后处理以过滤出我想要的里程碑,但是有没有更好的方法可以通过github + graphql做到这一点?

最佳答案

GitHub最近增加了查看与给定里程碑相关的所有问题的功能。您应该能够使用类似以下的查询来获取它:

query($id:ID!) {
  node(id:$id) {
    ... on Milestone {
      issues(last:10) {
        edges {
          node {
            title
            author {
              login
            }
          }
        }
      }
    }
  }
}


或者,如果您不知道节点ID,则可以执行以下操作:

query($owner:String!,$name:String!,$milestoneNumber:Int!) {
  repository(owner:$owner,name:$name) {
    milestone(number:$milestoneNumber) {
      issues(last:10) {
        edges {
          node {
            title
            author {
              login
            }
          }
        }
      }
    }
  }
}

08-07 01:37