如何通过githubAPI获取子模块列表?

How to get a list of submodules through github API?

我正在尝试通过 GitHub API 获取存储库的子模块列表。但是,在阅读 Github API docs, I did the following things: In Order to access the submodules of the Jquery, I use the following link 以获取子模块列表后,我看不到任何子模块。谁能告诉我应该使用哪个字段从 GitHub API 获取存储库的子模块列表?

您可以通过 submodules 连接 属性 获取 git submodules using Github GraphQL API v4 的列表:

{
  repository(owner: "bertrandmartel", name: "javacard-tutorial") {
    submodules(first: 100) {
      nodes {
        name
        path
      }
    }
  }
}

Try this in the explorer

输出:

{
  "data": {
    "repository": {
      "submodules": {
        "nodes": [
          {
            "name": "oracle_javacard_sdks",
            "path": "oracle_javacard_sdks"
          }
        ]
      }
    }
  }
}

请注意,这将仅提供默认分支 HEAD 上的子模块,来自 the documentation :

Returns a list of all submodules in this repository parsed from the .gitmodules file as of the default branch's HEAD commit.

请注意 jquery repository 在其默认分支 HEAD 中没有任何 git 子模块(我在其他分支中也没有看到任何子模块)

如果您使用 v3 REST API,您可以

  1. 获取分支的 HEAD 提交 SHA。
  2. 使用返回的提交 SHA 作为 tree_sha 来获取树。 GET /repos/{owner}/{repo}/git/trees/{tree_sha}
  3. 为具有模式 160000(子模块)的条目迭代返回的树对象