我有一个应用程序,它记录了数据库中某些GitHub存储库的名称。以下面的3个回购为例。
但问题是我录制的回购可能会被重命名。例如,上述三个repos分别重命名为:
我想写一些代码来主动将任何旧的repo名称更新为我的数据库中的新repo名称。例如,将zhangkun-Jser/react-experience
更新为zhangkun-Jser/react-kit
。
我知道我可以使用GitHub V3 API
获取每个仓库的存储库信息,然后获取新名称。但这需要发送每个回购请求。我的问题是if there is any method to get the new names for a list of repos in one request
?
注意:回购可以来自不同的所有者,例如示例。
我尝试使用GraphQL API v4
,但我不知道如何获取回购列表的信息。并且V4 API似乎无法识别旧名称。例如,如果我发送以下请求:
{
repository(owner: "zhangkun-Jser" name: "react-experience") {
name
id
}
}
回复是:
{
"data": {
"repository": null
},
"errors": [
{
"message": "Could not resolve to a Repository with the name 'react-experience'.",
"type": "NOT_FOUND",
"path": [
"repository"
],
"locations": [
{
"line": 2,
"column": 3
}
]
}
]
}
任何人都可以提供帮助?感谢。
答案 0 :(得分:1)
您可以存储存储库的节点ID,并按ID查找节点:
query {
repository (owner:"osowskit", name:"about") {
id
},
node(id:"MDEwOlJlcG9zaXRvcnk1NjE2NzA2OQ") {
... on Repository {
id,
name,
nameWithOwner
}
}
}