Github API:获取Github存储库的主题

F M*_*ane 4 github repository github-api

Github API文档提供了按主题过滤存储库的说明.有没有办法使用API​​从特定的回购中获取主题?

tsg*_*tsg 7

您可以使用 Github API 轻松完成此操作(目前处于“预览模式”):

curl -H "Accept: application/vnd.github.mercy-preview+json" https://api.github.com/repos/twbs/bootstrap/topics
{
  "names": [
    "css",
    "bootstrap",
    "javascript",
    "html",
    "jekyll-site",
    "scss",
    "css-framework",
    "sass"
  ]
}
Run Code Online (Sandbox Code Playgroud)

您需要包含额外的 header Accept: application/vnd.github.mercy-preview+json

有一个“但是”,因为它处于“预览模式”,不支持生产使用(请阅读下面链接中的“注意”和“警告”部分)。

也可以看看:


pei*_*ent 6

我不知道有一种方法可以只获取存储库的主题,但是如果你为存储库做了get,则返回的存储库json对象将具有一个topic属性,该属性是该存储库主题的数组.

在该文档页面的顶部,您会注意到为了返回主题,您需要在GET请求中添加特定标题:"Accept":"application/vnd.github.mercy-preview+json"

希望这可以帮助!


Wil*_*opp 5

您可以使用Github GraphQL API进行此操作

查询:

{
  repository(owner: "twbs", name: "bootstrap") {
    repositoryTopics(first: 10) {
      edges {
        node {
          topic {
            name
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这将返回前10个主题以及每个主题的名称,如下所示。
响应:

{
  "data": {
    "repository": {
      "repositoryTopics": {
        "edges": [
          {
            "node": {
              "topic": {
                "name": "css"
              }
            }
          },
          {
            "node": {
              "topic": {
                "name": "bootstrap"
              }
            }
          },
          {
            "node": {
              "topic": {
                "name": "javascript"
              }
            }
          },
          {
            "node": {
              "topic": {
                "name": "html"
              }
            }
          }
        ]
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

GitHub GraphQL Explorer中进行测试