我正在与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吗?
答案 0 :(得分:5)
您可以将搜索查询与milestone
过滤器一起使用:
{
search(first: 100, type: ISSUE, query: "user:callemall repo:material-ui milestone:v1.0.0-prerelease state:open") {
issueCount
pageInfo {
hasNextPage
endCursor
}
edges {
node {
... on Issue {
createdAt
title
url
}
}
}
}
}
答案 1 :(得分:5)
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
}
}
}
}
}
}
}