Skip to main content
https://travis-ci.org/baguette-io/baguette-olite.svg?branch=master

Python wrapper for gitolite. Fork from https://github.com/PressLabs/pyolite.

Easy and simple to user, just pip install baguette-olite.

Gitolite Setup Prereqs

Using Pyolite is very easy, but requires some initial set up. First, your gitolite-admin repo must contain a directory called repos and another one called groups, and all .conf files in these directories should be included in your gitolite.conf file. For example, your gitolite-admin repo might have the following structure:

├── gitolite.conf
└── repos
    └── [ empty ]
└── groups
    └── [ empty ]

And your gitolite.conf file might look like this:

repo gitolite-admin
    RW+     =   admin

repo testing
    RW+     =   @all

include         "repos/*.conf"
include         "groups/*.conf"

This is required because Pyolite makes changes to files only inside the repos and groups directories.

Repository API

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')

# List existing Pyolite repos
repos = olite.repos.all()
for repo_it in repos:
    print(repo_it.name)

Every 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()

# add a new user
user = olite.users.create(name='bob', key_path="~/.ssh/third_rsa.pub")
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')

Users API

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')

# 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_user)

Groups API

You an easly manipulate groups 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 group object
group1 = olite.groups.create('group1')
# create is idempotent
group1 = olite.groups.create('group1')

#get or create( `create()` wrapper)
group2 = olite.groups.get_or_create('group2')
group2 = olite.groups.get_or_create('group2')

# get group by name
group1 = olite.groups.get('group1')

# list all groups
olite.groups.all()

# delete a group by name
olite.groups.delete('group1')

# add an user to the gorup
olite.groups.user_add('group1', 'user1')

# delete an user from a group
olite.groups.user_delete('group1', 'user1')

# add a group to a repo
olite.groups.repo_add('group1', 'repo1', 'RW')

# delete a group from a repo
olite.groups.repo_delete('group1', 'repo1')

Metadata

Release files for baguette-olite 0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for baguette-olite 0.13
File Size Uploaded Provenance
baguette-olite-0.13.tar.gz 14.7 kB Without provenance Details

Release files / baguette-olite-0.13.tar.gz

Download URL baguette-olite-0.13.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2345689e45a07bb00a82daaee1c5c205c6a5928c1e2ca5441d16aafb5455e261
BLAKE2b-256 checksum
How to use checksums
5fc14da7b7af677838cf961d5dc99983874328c4aa4566d5fd8925e789481b5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for baguette-olite 0.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page