GitHub API - 编程语言列表

3

Github API中是否有一个端点可以提供我GitHub上所有语言的列表? 我正在寻找与github.com网站上“趋势”部分中的语言下拉菜单类似的结果。

2个回答

6

这不是直接从GitHub API获取的。

OP AgileAce评论中添加了:

我发现GitHub维护了一个Linguist库
在这个仓库中,有一个YAML文件(lib/linguist/languages.yml),其中包含所有语言和相关信息。
我将编写一个脚本来解析此文件。

我在“GitHub如何确定项目的语言?”中提到了Linguist库。


你还可以从各种GitHub统计网站获取这些数据,例如www.githubarchive.org
查看ADAM BARD的“2013年度Github热门编程语言排行榜(截至目前)”:

我刚刚发现了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也可能是一个不错的资源,它有一个语言部分


谢谢,VonC。我发现GitHub维护了一个名为Linguist的库,网址是https://github.com/github/linguist。在这个仓库中,有一个包含所有语言及相关信息的YAML文件。我将编写一个脚本来解析这个文件。 - go4cas
@AgileAce 听起来很不错!我已经将您的评论包含在答案中以增加可见性,并附上了 lib/linguist/languages.yml 文件的链接。 - VonC

0
使用yaml解析器来解析github支持的所有语言(它们的linguistic.yml文件)。
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
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接