Github organization are great way for organization to manage their git repositories. github-collective is a tool that will let you automate tedious tasks of creating teams, granting permission and creating repositories.
Approach that github-collective tool takes is that you edit central configuration (for now only ini-like file) from where configuration is read and updated respectivly.
Initially purposo of this scrip is to manage Plone's collective organisation on github: https://collective.github.com
How to install
% pip install github-collective
(or)
% easy_install github-collective
Usage:
When github-collective is installed it should create executable with same name.
% bin/github-collective --help
usage: github-collective [-h] -c CONFIG [-M MAILER] [-C CACHE] -o GITHUB_ORG
-u GITHUB_USERNAME -P GITHUB_PASSWORD [-v] [-p]
This tool will let you automate tedious tasks of creating teams granting
permission and creating repositories.
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
path to configuration file (could also be remote
location). eg.
http://collective.github.com/permissions.cfg (default:
None)
-M MAILER, --mailer MAILER
TODO (default: None)
-C CACHE, --cache CACHE
path to file where to cache results from github.
(default: None)
-o GITHUB_ORG, --github-org GITHUB_ORG
github organisation. (default: None)
-u GITHUB_USERNAME, --github-username GITHUB_USERNAME
github account username. (default: None)
-P GITHUB_PASSWORD, --github-password GITHUB_PASSWORD
github account password. (default: None)
-v, --verbose
-p, --pretend
Example of configuration stored locally
% bin/github-collective \
-c example.cfg \ # path to configuration file
-o vim-addons \ # organization that we are
-u garbas \ # account that has management right for organization
-P PASSWORD # account password
Example of configuration stored on github
% bin/github-collective \
-c https://raw.github.com/garbas/github-collective/master/example.cfg \
# url to configuration file
-o collective \ # organization that we are
-u garbas \ # account that has management right for organization
-P PASSWORD # account password
Example of cached configuration
% bin/github-collective \
-c https://raw.github.com/garbas/github-collective/master/example.cfg \
# url to configuration file
-C .cache # file where store and read cached results from github
-o collective \ # organization that we are
-u garbas \ # account that has management right for organization
-P PASSWORD # account password
Product's homepage
Requirements:
· Python
· Argparse
· requests
What's New in This Release: [ read full changelog ]
· Restore ability to fork repositories to organisations after unexpected API change. [davidjb]
· Ensure fork data payload (org name) is sent as JSON. [davidjb]
· Allow forks to be correctly named once created. GitHub's API forks using the same name originally, so we need to rename once forked. [davidjb]
· Add rename helper functionality to sync module. (Note that configuration does not yet support renaming) [davidjb]
· Read the Docs-ified documentation. [davidjb]