如何通过命令行查看您在 Github 中创建的存储库?
答案1
您可以向 GitHub 的 REST API 发出 HTTP GET 请求,以查询给定用户拥有的存储库列表。我将使用wget
该请求,它应该已在 Ubuntu 上预装。另一种工具可以是curl
。
响应是一个相当大的 JSON 对象,因此我决定使用jshon
(使用 安装sudo apt install jshon
)作为 JSON 解析器来仅提取存储库名称。您也可以只查看完整响应或使用您喜欢的任何其他解析方法。如果它只是供人类阅读,而您不太关心格式,那么只需通过管道传输grep full_name
就足够了。
那么,让我们从命令开始。要获取我的公共 GitHub 存储库列表(用户名显然是“ByteCommander”),我将运行以下命令:
wget -qO- 'https://api.github.com/users/ByteCommander/repos' | jshon -a -e 'full_name' -u
您应该获得类似于这些行的输出(仅多几行......):
ByteCommander/AdventOfCode
ByteCommander/ByteCommander.github.io
ByteCommander/ChatExchange6
ByteCommander/dynamodb-local
上述命令可以分解为由 发出的 HTTP 请求wget
,其响应在 STDOUT 上输出并通过管道传输到 JSON 解析器中,后者提取相关信息。
wget -qO- 'https://api.github.com/users/ByteCommander/repos'
这显然会向给定的 URL 发送请求。替换ByteCommander
为您各自的 GitHub 用户名。这些-qO-
选项用于修改wget
响应的输出方式。它是-q
(quiet, no progress/status output) 和-O -
(output file is STDOUT) 的缩写。有关更多信息,请参阅man wget
。
jshon -a -e 'full_name' -u
这会使jshon
解析器从 STDIN(wget
其中 的输出被管道化)读取 JSON 数据,并根据指定的选项对其进行解析。-a
对响应数组的所有元素应用以下操作:-e 'full_name'
,提取"full_name"
所应用对象的属性。-u
最后只是删除提取的字符串值周围的引号。在 中阅读更多内容man jshon
。
您可以在以下位置找到有关 GitHub v3 REST API 的详细说明,尤其是 list-user-repositories 端点及其 JSON 响应格式:他们的官方文件。