1

我有一个应用程序记录数据库中一些 GitHub 存储库的名称。以以下 3 个 repos 为例。

  1. https://github.com/zhangkun-Jser/react-experience
  2. https://github.com/zhangkun-Jser/vue-plug
  3. https://github.com/hsluoyz/casbin

但问题是我记录的回购可能会被重命名。比如上面三个repos已经分别改名为:

  1. https://github.com/zhangkun-Jser/react-kit
  2. https://github.com/zhangkun-Jser/FE-plugs
  3. https://github.com/casbin/casbin

我想编写一些代码来主动将任何旧的 repo 名称更新为我的数据库中的新 repo 名称。例如,更新zhangkun-Jser/react-experiencezhangkun-Jser/react-kit.

我知道我可以GitHub V3 API用来获取每个 repo 的存储库信息,然后获取新名称。但这需要为每个 repo 发送请求。我的问题是if there is any method to get the new names for a list of repos in one request

注意:repos 可以来自不同的所有者,如示例中所示。

我尝试使用,GraphQL API v4但我不知道如何获取 repos 列表的信息。而且 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
        }
      ]
    }
  ]
}

任何人都可以帮忙吗?谢谢。

4

1 回答 1

1

您可以存储存储库的节点 ID 并按 ID 查找节点:

query { 
  repository (owner:"osowskit", name:"about") { 
    id
  },
  node(id:"MDEwOlJlcG9zaXRvcnk1NjE2NzA2OQ") {
  ... on Repository {
      id,
      name,
      nameWithOwner
    }
  }
}
于 2018-01-03T05:22:59.437 回答