Skip to content

Instantly share code, notes, and snippets.

Embed
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 = Github.new(basic_auth: 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
end
dup = list.select{|repo| exists.include?(repo["name"]) }
puts "skipping #{dup.size} repositories which already exists.\n"
list = list.select{|repo| ! exists.include?(repo["name"]) }
puts "cloning #{list.size} repositories.\n"
list.each do |repo|
system "git clone #{repo["ssh_url"]}"
sleep 5
end
@nahi

This comment has been minimized.

Copy link

nahi commented Mar 4, 2015

Why sleep 5?

@tagomoris

This comment has been minimized.

Copy link
Owner Author

tagomoris commented Mar 4, 2015

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

@danielnorberg

This comment has been minimized.

Copy link

danielnorberg commented Mar 23, 2016

lol

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.