Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Script to clone all repositories of specified organization
#!/usr/bin/env ruby
# gem i github_api
## Setting -> Applications -> Personal Access Tokens -> Generate new token
# Selected scopes:
# * repo
# * public_repo
# * repo:status
# * read:org
## Generate token -> copy token and paste to "oauth_token"
oauth_token = "...."
org_name = 'yourcompany'
exists = Dir.glob('*')
require 'github_api'
github = oauth_token)
pagenum = 1
list = []
while page = github.repos.list(org: org_name, page: pagenum, per_page: 100)
break if page.size < 1
list += page.to_a
pagenum += 1
dup ={|repo| exists.include?(repo["name"]) }
puts "skipping #{dup.size} repositories which already exists.\n"
list ={|repo| ! exists.include?(repo["name"]) }
puts "cloning #{list.size} repositories.\n"
list.each do |repo|
system "git clone #{repo["ssh_url"]}"
sleep 5

This comment has been minimized.

Copy link

nahi commented Mar 4, 2015

Why sleep 5?


This comment has been minimized.

Copy link
Owner Author

tagomoris commented Mar 4, 2015

It's a magic number. I know how engineers in thinks :)


This comment has been minimized.

Copy link

danielnorberg commented Mar 23, 2016


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.