Created
June 7, 2013 23:17
-
-
Save ralphbean/5733076 to your computer and use it in GitHub Desktop.
Script to list all repos for a github organization
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" Print all of the clone-urls for a GitHub organization. | |
It requires the pygithub3 module, which you can install like this:: | |
$ sudo yum -y install python-virtualenv | |
$ mkdir scratch | |
$ cd scratch | |
$ virtualenv my-virtualenv | |
$ source my-virtualenv/bin/activate | |
$ pip install pygithub3 | |
Usage example:: | |
$ python list-all-repos.py | |
Advanced usage. This will actually clone all the repos for a | |
GitHub organization or user:: | |
$ for url in $(python list-all-repos.py); do git clone $url; done | |
""" | |
import pygithub3 | |
gh = None | |
def gather_clone_urls(organization, no_forks=True): | |
all_repos = gh.repos.list(user=organization).all() | |
for repo in all_repos: | |
# Don't print the urls for repos that are forks. | |
if no_forks and repo.fork: | |
continue | |
yield repo.clone_url | |
if __name__ == '__main__': | |
gh = pygithub3.Github() | |
clone_urls = gather_clone_urls("FOSSRIT") | |
for url in clone_urls: | |
print url |
If you have jq:
curl -s https://api.github.com/orgs/<org_name>/repos?per_page=200 | jq '.[]|.html_url'
This is the easiest way to do it, but the api call is limited to max 100. You have to script is to get the rest of the repo's in the organzition.
I can confirm jq
is the easiest way to get all this information
^ No it isn't, not if you log in via ssh key. It doesn't accept my user/pass otherwise.
AttributeError: 'Github' object has no attribute 'repos'>
I am getting the same error
Along with the Repo names, is it possible to get the Repo owners or the admin name in our organization's private repos.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In my fork of this gist you can print all of the (git/ssh or http) urls for all repos (public or private+public with personal_token) in a GitHub account (user or organization).
The usage looks like:
By default it gives
git@github:
ssh URLs, but you can optionally gethttps://github.com
URLs by setting a one-shot environment variable ofHTTP_URLS
. If you supply apersonal_token
you will get private+public repos, otherwise only public.Enjoy.