Easy and simple to user, just pip install pyolite and boom!!!
Using an intuitive API, pyolite help you easly create users and repos using gitolite.
Using Pyolite is very easy, but requires some initial set up. First, your gitolite-admin repo must contain a directory called repos, and all .conf files in this directory should be included in your gitolite.conf file. For example, your gitolite-admin repo might have the following structure:
├── gitolite.conf
└── repos
└── [ empty ]
And your gitolite.conf file might look like this:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
include "repos/*.conf"
This is required because Pyolite makes changes to files only inside the repos directory.
First, we need to initialize a pyolite object with the path to gitolite's repository.
from pyolite import Pyolite
# initial olite object
admin_repository = '/home/absolute/path/to/gitolite/repo/'
olite = Pyolite(admin_repository=admin_repository)After that, we can create and get a repo using create and get methods.
# create a repo
repo = olite.repos.get('my_repo')
repo = olite.repos.create('ydo')
repo = olite.repos.get_or_create('second_repo')
# List existing Pyolite repos
repos = olite.repos.all()
for repo_it in repos:
print repo_it.nameEvery repo has an users object, in order to facilitate basic operations: adding, editing and removing users from a repository.
print "Repo's users: %s" % repo.users
# list a repo's users
users_as_list = repo.users.list()
user = olite.users.create(name='bob', key_path="~/.ssh/third_rsa.pub")
# add a new user
repo.users.add(olite.users.get('admin'), permission='W+')
repo.users.add('bob', permission='R')
# change user's permissions
repo.users.edit(olite.users.get('admin'), permission='WR+')
repo.users.edit('bob', permission='RCW')
# remove user
repo.users.remove('admin')You an easly manipulate users aswell, using allmost the same API.
from pyolite import Pyolite
# initial olite object
admin_repository = '/home/absolute/path/to/gitolite/repo/'
olite = Pyolite(admin_repository=admin_repository)
# create user object
vlad = olite.users.create(name='bob',
key_path='~/.ssh/second_rsa.pub')
# get user by name
vlad = olite.users.get(name='admin')
# get_or_create django style
vlad = olite.users.get_or_create('alice')
# add new key to user
vlad.keys.append('/path/to/key')
vlad.keys.append('just put the key here')
# check if user is admin or not
print vlad.is_admin
# list user's keys and repos
keys_as_list = vlad.list_keys()
repos_as_list = vlad.list_repos()
# delete a user by name
deleted_user = olite.users.delete('username')
print deleted_userIf you need any help with this module, write me vlad@presslabs.com

