Skip to main content

Script to manage github account in a collective manner

Project description

Introduction

Github organization are great way for organization to manage their git repositories. This tool 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

Tested with:

Python2.6

Dependencies:

argparse, requests

% 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

Todo

  • Send emails to owners about removing repos

  • better logging mechanism (eg. logbook)

Credits

Author:

Rok Garbas (garbas)

Changelog

0.1.3 - 2011-07-09

  • fix caching file bug, cache now working [garbas]

0.1.2 - 2011-07-03

  • remane team to old_team to keep convention in sync.run method, using add instead of update on sets [e48de49, garbas]

  • pretend should work for all except get reuqest type [e098f9d, garbas]

  • nicer dump of json in cache file, unindent section which searches for repos defined in teams [b8cb123, garbas]

  • we should write to cache file when there is no cache file avaliable [fd7f9ee, garbas]

0.1.1 - 2011-07-02

  • and we have first bugfix relese, after refractoring and merging enable-cache branch. [a09d174, garbas]

0.1 - 2011-07-02

  • initial release [garbas]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

github-collective-0.1.2.tar.gz (9.9 kB view details)

Uploaded Source

File details

Details for the file github-collective-0.1.2.tar.gz.

File metadata

File hashes

Hashes for github-collective-0.1.2.tar.gz
Algorithm Hash digest
SHA256 773b73c3d7a8a26bd6eecc9a752916d92ec9a4628676acbeb42e75c3c2b0ac22
MD5 700ca4b87897967effbe3e0501f8ca37
BLAKE2b-256 69500fedef6f6d2f0d8a9c966ede7f3c13ea3075fc3861085d8fea0be52248a3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page