Github API中是否有一个端点可以提供我GitHub上所有语言的列表? 我正在寻找与github.com网站上“趋势”部分中的语言下拉菜单类似的结果。
Github API中是否有一个端点可以提供我GitHub上所有语言的列表? 我正在寻找与github.com网站上“趋势”部分中的语言下拉菜单类似的结果。
这不是直接从GitHub API获取的。
OP AgileAce在评论中添加了:
我发现GitHub维护了一个Linguist库。
在这个仓库中,有一个YAML文件(lib/linguist/languages.yml
),其中包含所有语言和相关信息。
我将编写一个脚本来解析此文件。
我在“GitHub如何确定项目的语言?”中提到了Linguist库。
我刚刚发现了Github Archive,这是一个可使用Google BigQuery查询的Github事件数据集。真有趣!所以我决定按语言统计今年创建了多少个存储库。
SELECT repository_language, count(repository_language) AS repos_by_lang
FROM [githubarchive:github.timeline]
WHERE repository_fork == "false"
AND type == "CreateEvent"
AND PARSE_UTC_USEC(repository_created_at) >= PARSE_UTC_USEC('2013-01-01 00:00:00')
AND PARSE_UTC_USEC(repository_created_at) < PARSE_UTC_USEC('2013-08-30 00:00:00')
GROUP BY repository_language
ORDER BY repos_by_lang DESC
LIMIT 100
coderstats.net也可能是一个不错的资源,它有一个语言部分。
npm i js-yaml
import { load } from "js-yaml";
let result = []
const getLangs = () => {
fetch(
"https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml",
)
.then((response) => response.text())
.then((yamlString) => load(yamlString))
.then((data) => {
for (let key in data) {
if (data[key].aliases) result = result.concat(data[key].aliases);
}
})
.catch((err) => console.log(err));
return result
};
lib/linguist/languages.yml
文件的链接。 - VonC