有没有办法下载符合GitHub主题的项目列表? 例如,如果我写:
https://github.com/topics/haskell
在Web浏览器中,返回一个包含与Haskell相关的GitHub项目的页面。我阅读了他们的GitHub API,但他们似乎没有实现该功能:https://developer.github.com/v3/
此外,端点https://api.github.com/似乎不包含任何选项。我得到的所有尝试都是https://api.github.com/topics/haskell:
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
答案 0 :(得分:1)
主题的正确GitHub API端点是:https://api.github.com/search/topics
,您需要在q
查询参数中提供主题查询。这是一个直接来自API documentation的示例查询:
curl -H 'Accept: application/vnd.github.mercy-preview+json' 'https://api.github.com/search/topics?q=ruby+is:featured'
以下是查找搜索主题的示例' haskell':
curl -H 'Accept: application/vnd.github.mercy-preview+json' 'https://api.github.com/search/topics?q=haskell'
答案 1 :(得分:0)
如果您要搜索与主题匹配的存储库,请将/search/repositories
与topic
属性一起使用:
curl -H "Accept: application/vnd.github.mercy-preview+json" \
https://api.github.com/search/repositories?q=topic:haskell
您必须在开发人员预览中提供application/vnd.github.mercy-preview+json
:
注意:目前GitHub上存储库的主题属性 可供开发人员预览。要查看主题属性 如果调用返回存储库结果,则必须提供自定义媒体 在Accept标头中键入:
应用/ vnd.github.mercy预览+ JSON
答案 2 :(得分:0)
“您可以在整个GitHub Enterprise上全局搜索代码,或者在特定存储库或组织内搜索代码。要在所有公共存储库中搜索代码,必须登录GitHub Enterprise帐户。” >
此curl仅返回标签或主题 curl -H'接受:application / vnd.github.mercy-preview + json''https://api.github.com/search/topics?q=haskell'
答案 3 :(得分:0)
您可以使用 GraphQL API 获取主题中的存储库。
试试看:https://docs.github.com/en/graphql/overview/explorer
query {
search(first: 10, type: REPOSITORY, query: "topic:databases") {
repositoryCount
nodes {
... on Repository {
nameWithOwner
}
}
}
}
{
"data": {
"search": {
"repositoryCount": 831,
"nodes": [
{
"nameWithOwner": ".../..."
},
{
"nameWithOwner": ".../..."
},
...
警告:您不能使用 GraphQL api 来获取主题列表。
主题查询受限。
有 Query.topic
用于搜索单个主题和 Repository.repositoryTopics
。 Topic.relatedTopics
存在为“相关主题列表,包括该主题的别名,按最相关的在前排序。最多返回 10 个主题。”。