Manage gitosis from cli and web frontend. This tool provides a CLI interface for the console junky which can i.e. remove a user with a single command from all groups. Also it comes with complete web frontend to manage user's ssh key or create groups, repositories. See in good structured lists who have access to a repository in which way.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
src
tests
web
.gitignore
.travis.yml
MIT-LICENSE.txt
README.rst
composer.json
composer.lock
config.yaml.dist
phpunit.xml.dist

README.rst

Gitosis Administrator

Manage gitosis over CLI- and Web-Interface.

https://secure.travis-ci.org/cmuench/n98-gitosis-admin.png https://www.versioneye.com/user/projects/514c647f9ee00e0002007ec9/badge.png https://poser.pugx.org/n98/gitosis-admin/v/stable.png

Installation

Download the composer.phar executable or use the installer.

$ curl -s http://getcomposer.org/installer | php

Install dependencies over composer.

$ php ./composer.phar install

Create config.yaml file from config.yaml.dist file.

Add path to your gitosis config (Cloned gitosis-admin repository):

locale: en
security:
  authentification:
    enabled: false

gitosis:
  root_directory: /path/to/gitosis-admin
  ssh_user: git
  ssh_host: myhost

CLI Interface

List Repositories

$ bin/n98-gitosis-admin repo:list

Add Repository

$ bin/n98-gitosis-admin repo:add name [owner] [description] [gitweb] [daemon]

Example:

$ bin/n98-gitosis-admin repo:add my-repo "John Doe" "My awesome git repository" no no

Remove Repository

$ bin/n98-gitosis-admin repo:remove name

List Groups

$ bin/n98-gitosis-admin group:list

Add Group

$ bin/n98-gitosis-admin group:add name members [writable] [readonly]

Example:

# Adds the repo "foo" with members "bar, zoz and bla" with write access to "repo1" and read access to "repo2"
$ bin/n98-gitosis-admin group:add foo bar,zoz,bla repo1 repo2

Remove Group

$ bin/n98-gitosis-admin group:remove name

Add User to existing Group

$  bin/n98-gitosis-admin group:user:add group username

Remove User from existing Group

$  bin/n98-gitosis-admin group:user:remove group username

Remove a user from all groups

$ bin/n98-gitosis-admin user:remove username

List all existing users

Lists all users across all groups.

$  bin/n98-gitosis-admin user:list

Allow group write acccess to repository

$ bin/n98-gitosis-admin group:repo:add:writable

Allow group readonly acccess to repository

$ bin/n98-gitosis-admin group:repo:add:readonly

Web Interface

  • Manage Repositories, Groups and Users

See Screenshots of the web interface on my flickr account:

http://www.flickr.com/photos/muench-worms/sets/72157631918064315/

http://farm9.staticflickr.com/8191/8150656716_76199ea7e5_z.jpg

Installation

  • Clone gitosis-admin repository on your local machine.
  • Make sure that webserver user has a valid ssh key which is assigned to gitosis-admin repository.

On Debian Systems with Apache User:

$ mkdir /var/www/.ssh
$ chown -R www-data:nobody /var/www/.ssh
$ sudo -u www-data ssh-keygen -t rsa

Requirements

  • At least PHP 5.3
  • Composer
  • GIT Client

TODO

  • Auth Layer with LDAP support
  • More Translations