#!/usr/bin/env bash # This script clones all repos in a GH org # It requires the GH CLI: https://cli.github.com set -euo pipefail USAGE="Usage: gh-clone-org " [[ $# -eq 0 ]] && echo >&2 "missing arguments: ${USAGE}" && exit 1 org=$1 limit=1000 repos="$(gh repo list "$org" -L $limit)" repo_total="$(echo "$repos" | wc -l)" repos_complete=0 echo echo "$repos" | while read -r repo; do repo_name="$(echo "$repo" | cut -f1)" echo -ne "\r\e[0K[ $repos_complete / $repo_total ] Cloning $repo_name" gh repo clone "$repo_name" "$repo_name" -- -q repos_complete=$((repos_complete + 1)) done echo "Cloning Complete"