sh 用于备份组织的所有GitHub存储库的Shell脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于备份组织的所有GitHub存储库的Shell脚本相关的知识,希望对你有一定的参考价值。

#!/bin/sh

LOGIN=YOURLOGIN
TOKEN=YOURTOKEN
ORG=YOURORG
DONE=0
PAGE=0

# sample output:
#  "total_private_repos": 50,
#  "public_repos": 41,
NUMREPOS=$(curl -s "https://$LOGIN:$TOKEN@api.github.com/orgs/$ORG" | awk '
   /public_repos/{t+=substr($2, 0, length($2)-1)}
   /total_private_repos/{t+=substr($2, 0, length($2)-1)}
   END{print t}')

while [ $DONE -lt $NUMREPOS ]; do
   # Sample:
   #     "full_name": "VividCortex/wlr",
   for repo in $(curl -s "https://$LOGIN:$TOKEN@api.github.com/orgs/$ORG/repos?type=all&page=$PAGE" | awk '/full_name/{print substr($2, 2, length($2)-3)}'); do
      if [ ! -e "$HOME/repos/${repo#*/}" ]; then
         (cd "$HOME/repos" && git clone git@github.com:$repo.git)
      else
         (cd "$HOME/repos/${repo#*/}" && git pull || echo "^^ $repo")
      fi
      DONE=$(($DONE + 1))
   done
   PAGE=$(($PAGE + 1))
done

以上是关于sh 用于备份组织的所有GitHub存储库的Shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

python 用于列出github组织的所有存储库的脚本

sh 用于克隆用户的所有授权和/或公共存储库的脚本。使用https进行克隆。访问存储库的用户可能是dif

备份github组织存储库和成员分叉的bash脚本

sh 从github中的组织下载所有回购

github存储库的本地缓存?

python 用于管理github存储库的Ansible模块