GitHub graphQL API对组织的多个查询&;存储库
我正在尝试使用graphQL多组织和存储库数据从GitHub获取数据。我在下面编写的代码只获得一个组织和存储库。 我想使用两个数组[String!]的变量,一个用于组织,另一个用于存储库。 所以 应该是GitHub graphQL API对组织的多个查询&;存储库,github,github-graphql,Github,Github Graphql,我正在尝试使用graphQL多组织和存储库数据从GitHub获取数据。我在下面编写的代码只获得一个组织和存储库。 我想使用两个数组[String!]的变量,一个用于组织,另一个用于存储库。 所以 应该是 organization(login:$organization) {...} repository(owner:$organization, name:$repository) {...} 及 应该是 organization(login:$organization) {...} rep
organization(login:$organization) {...}
repository(owner:$organization, name:$repository) {...}
及
应该是
organization(login:$organization) {...}
repository(owner:$organization, name:$repository) {...}
但是我找不到如何在下面的代码中实现这些变量
query {
rateLimit{
cost
remaining
resetAt
}
organization(login:"javascript") {
repositories{
totalCount
}
}
repository(owner:"javascript", name:"sorted-array") {
updatedAt
branches: refs(refPrefix:"refs/heads/") {
totalCount
}
tags: refs(refPrefix:"refs/tags/") {
totalCount
}
releases {
totalCount
}
object(expression:"master") {
... on Commit {
committedDate
history {
totalCount
}
}
}
}
}
我会感谢你的帮助。
谢谢这里是更新的请求,用于处理变量
query getOrg($owner: String!, $repo: String! ){
organization(login:$owner) {
repositories{
totalCount
}
}
repository(owner:$owner, name:$repo) {
updatedAt
branches: refs(refPrefix:"refs/heads/") {
totalCount
}
tags: refs(refPrefix:"refs/tags/") {
totalCount
}
releases {
totalCount
}
object(expression:"master") {
... on Commit {
committedDate
history {
totalCount
}
}
}
}
}
但是,使用GraphQL节点ID作为输入数组可能会更好。使用组织或存储库的节点ID,可以
query inputArray($id: [ID!]!){
nodes(ids: $id){
...on Repository{
id
}
}
}
请注意,API的GitHub V3支持返回以帮助转换到GraphQL查询。以下是我的解决方案,我希望它对其他人有所帮助:) 第一个答案是使用具有多个组织id的数组变量“Facebook”、“JavaScript”和 存储库“360捕获SDK”、“排序数组”。 如果您有10个、20个或更多的组织/存储库,那么从RESTAPI获取id将是一件非常愉快的事情:) 第二个答案是使用一种更具可读性的方法,尽管很麻烦
query{
FacebookOrg: organization(login: "facebook") {
...OrgInfo
}
JavaScriptOrg: organization(login: "javaScript") {
...OrgInfo
}
FacebookRep: repository(owner: "facebook" name:"360-Capture-SDK"){
...RepInfo
}
JavaScriptRep: repository(owner: "javaScript" name:"sorted-array"){
...RepInfo
}
}
fragment OrgInfo on Organization {
name
}
fragment RepInfo on Repository {
name
}
谢谢你的快速回答,尽管我已经这么做了。但在我看来,使用一组ID一点也不舒服,就像使用DNS时使用ip一样。我正在寻找一个解决方案,我将能够传递一个组织和存储库的名称数组,这是非常方便的。可能他们还没有到那里。也许这是目前的答案。ID数组将更接近于使用MAC地址(或某种唯一标识符的概念),因为存储库/组织名称可以更改。使用ID将处理修改名称的用户。另外,您可以对ID数组进行批处理,以避免进行多个查询,这对于两个应用程序处理/实现来说可能更有效。
query{
FacebookOrg: organization(login: "facebook") {
...OrgInfo
}
JavaScriptOrg: organization(login: "javaScript") {
...OrgInfo
}
FacebookRep: repository(owner: "facebook" name:"360-Capture-SDK"){
...RepInfo
}
JavaScriptRep: repository(owner: "javaScript" name:"sorted-array"){
...RepInfo
}
}
fragment OrgInfo on Organization {
name
}
fragment RepInfo on Repository {
name
}