Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/python
- """
- Generate a CSV file of your organization's GitHub repositories.
- Results in a CSV file with the following columns:
- - name: The name of the repository
- - private: True if this is a private repository, else False
- - fork: True if this repository is the result of a fork, else False
- - created_at: The datetime this repository was created
- - updated_at: The datetime this repository was last updated
- - size: The size in kB of this repository
- - has_wiki: True if this repository has a wiki, else False
- - language: The main language used in this repository, as inferred by GitHub
- NOTE: This script depends on the pygithub package. Install it with `pip install pygithub`.
- Usage: GITHUB_ACCESS_TOKEN=foobar github_repos.py my_organization
- """
- import csv
- import os
- import sys
- import github
- KEYS = ('name', 'private', 'fork', 'created_at', 'updated_at', 'size', 'has_wiki', 'language')
- def get_repos(organization, access_token):
- session = github.Github(access_token)
- organization = session.get_organization(organization)
- return list(organization.get_repos())
- def repo_to_dict(repo):
- return {
- key: getattr(repo, key)
- for key in KEYS
- }
- def write_repos(repos):
- writer = csv.DictWriter(sys.stdout, KEYS)
- writer.writeheader()
- for repo in repos:
- writer.writerow(repo_to_dict(repo))
- if __name__ == "__main__":
- organization = sys.argv[1]
- access_token = os.getenv('GITHUB_ACCESS_TOKEN')
- repos = get_repos(organization, access_token)
- write_repos(repos)
Add Comment
Please, Sign In to add comment