Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
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.
CSS PHP JavaScript
branch: master

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
Something went wrong with that request. Please try again.