有没有一种简单的方法可以从GitHub克隆所有明星回购?
我正在寻找备份我所有星号存储库的方法,我正在寻找一种简单的备份方法。这应该可以做到。请注意,您将需要有没有一种简单的方法可以从GitHub克隆所有明星回购?,github,Github,我正在寻找备份我所有星号存储库的方法,我正在寻找一种简单的备份方法。这应该可以做到。请注意,您将需要 curlhttps://api.github.com/users//starred | jq-r'.[].html\u url'| xargs-l git克隆 如果你不想使用jq你可以用这个丑陋的awk行替换 awk'/^{4}“html_url”/&$0=$4'FS='”| 如果您对ruby没有任何问题,并且可以安装一些gems,您可以试一试 gem安装octokit git parall
curlhttps://api.github.com/users//starred |
jq-r'.[].html\u url'|
xargs-l git克隆
如果你不想使用jq
你可以用这个丑陋的awk
行替换
awk'/^{4}“html_url”/&$0=$4'FS='”|
如果您对ruby没有任何问题,并且可以安装一些gems,您可以试一试
gem安装octokit git parallel
那么这个就可以了
ruby -e "require 'octokit'; require 'git'; require 'parallel'; Parallel.each(Octokit.starred('__username__'), :in_processes=>4){|s| Git.clone(s[:html_url], s[:name])}"
为了便于阅读:
require 'octokit'
require 'git'
require 'parallel'
Parallel.each(Octokit.starred('__username__'), :in_processes=>4){|s| Git.clone(s[:html_url], s[:name])}
不过这似乎有些过分。是的,这里有一个简单的一行代码(将
foo
更改为您的用户名):
为xargs
添加-p
参数,通过设置并行进程数(例如-P4
=4个进程)来提高速度
要提高GitHub限制,您可以通过指定API密钥进行身份验证。我认为GitHub API有一个限制,因为它在30次重复操作后停止了克隆。@nighthawk24结果被分页,API默认返回前30次。应该通过分页来实现这一点。
USER=foo; curl "https://api.github.com/users/$USER/starred?per_page=1000" | grep -o 'git@[^"]*' | xargs -L1 git clone