0%

Clone一个Github用户的所有仓库

代码

cloneall.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir $1_repos
cd ./$1_repos/
echo $(date "+%H:%M:%S 获取$1的仓库列表到 $1_repos/clone_list.temp")
rm -f clone_list.temp
rm -f clone_list.txt
rm -f clone.sh
curl "https://api.github.com/users/$1/repos?per_page=100&&page=1" | grep -w clone_url >clone_list.temp
echo $(date "+%H:%M:%S 过滤链接到 $1_repos/clone_list.txt")
grep -o 'https://[^"]*' clone_list.temp > clone_list.txt
cat clone_list.txt
rm -f clone_list.temp
echo $(date "+%H:%M:%S 生成批处理文件到 $1_repos/clone.sh")
sed "s/^/echo \$(date \"+%H:%M:%S 正在拉取下一个仓库\")\ngit clone --depth=1 /" clone_list.txt > clone.sh
echo $(date "+%H:%M:%S 开始拉取到 $1_repos/")
bash clone.sh
rm -f clone.sh
cd ..
echo $(date "+%H:%M:%S 拉取完成,在 $1_repos/")

使用方法

执行 ./cloneall.sh 用户 就会把 用户 的100个仓库拉取到 用户_repos 文件夹里

例如 ./cloneall.sh TheChuan1503

参考