首页 > 解决方案 > 如何自动 git 克隆您所有的私有存储库?(在 github 上使用 api)

问题描述

作为一个想要自动化一切的人,我想知道如何使用 linux 下的 github public api(v3) 自动将我所有的私有和公共存储库下载到我的磁盘上。使用 /bin/sh。

问候

标签: gitapigithubdownloadrepository

解决方案


这是一个有点老套的解决方案,我有点渴望看到一个干净的解决方案。无论如何,也许有人也需要这个,因为我没有在网上找到解决方案,我会尽快解释。

您可以执行的原始代码可以在这里找到:https ://gist.github.com/Pierrefha/0436e7bf907d5ed794fe489b06bbac14

首先,我们使用 curl 来获取所有公共和私人仓库的列表。

curl -u USERNAME:TOKENVALUE \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/user/repos

然后我们只选择包含 git url 的行。

grep git_url

现在我们将 .com 之前的所有内容替换为和 ",最后用一个空字符串

sed -E sQ.*.com\/\|\",QQg

最后但并非最不重要的一点是,我们获取剩余的字符串(我们的 repos 的确切名称)并使用 xargs 来克隆 repos。

xargs -I% git clone git@github.com:%

我们完成了。


推荐阅读