Skip to content

Instantly share code, notes, and snippets.

@vke-code
Created September 12, 2018 21:39
  • Star 17 You must be signed in to star a gist
  • Fork 20 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
#!/bin/bash
# Clone all github.com repositories for a specified user.
if [ $# -eq 0 ]
then
echo "Usage: $0 <user_name> "
exit;
fi
USER=$1
# clone all repositories for user specifed
for repo in `curl -s https://api.github.com/users/$USER/repos?per_page=1000 |grep git_url |awk '{print $2}'| sed 's/"\(.*\)",/\1/'`;do
git clone $repo;
done;
@Pierre-Mike
Copy link

Thanks :)

@andjohn
Copy link

andjohn commented Jan 6, 2023

its needs to replace git_url to clone_url

#!/bin/bash

# This BASH script clones all github.com repositories for a specified user!
# HOW TO USE THE SCRIPT: 
# CD to the directory where you want to download all the repositories (or open terminal there)
# then execute the script by defining the path to where you saved the .sh file, followed by your Github username:
# "sh the/path/to/download-all-repos.sh <github_user_name_here>"
# Then hit RETURN and watch the magic happen

if [ $# -eq 0 ]
  then
    echo "ERROR: Github username is missing, you shoud type THIS in your terminal: "
    echo "$0 <github_user_name_here> "
    exit;
fi

USER=$1

# clone all repositories for specified user:
for repo in `curl -s https://api.github.com/users/$USER/repos?per_page=1000 |grep clone_url |awk '{print $2}'| sed 's/"\(.*\)",/\1/'`;do
git clone $repo;
done;

@ioritz1993
Copy link

ioritz1993 commented Jul 22, 2023

Thanks a lot ! I have added a new functionality.

The added functionality allows for two different actions, depending on the state of the repository.

  1. Cloning non-existent repositories
  2. Pulling existing repositories

The code with the changes is here:
https://gist.github.com/ioritz1993/be12fd85fb3fd7a502d01597e8a9bd62

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment