/gitlab-shell

Replacement for gitolite

Primary LanguageRubyMIT LicenseMIT

gitlab-shell: ssh access and repository management

GitLab Shell is an application that allows you to execute git commands and provide ssh access to git repositories. It is not a Unix shell nor a replacement for Bash or Zsh.

Code status

CI Build Status Code Climate Coverage Status

Requires ruby 1.9+

Setup

./bin/install

Check

./bin/check

Repos

Add repo:

./bin/gitlab-projects add-project gitlab/gitlab-ci.git

Remove repo:

./bin/gitlab-projects rm-project gitlab/gitlab-ci.git

List repos:

./bin/gitlab-projects list-projects

Import repo:

# Default timeout is 2 minutes
./bin/gitlab-projects import-project randx/six.git https://github.com/randx/six.git 

# Override timeout in seconds
./bin/gitlab-projects import-project randx/six.git https://github.com/randx/six.git 90

Fork repo:

./bin/gitlab-projects fork-project gitlab/gitlab-ci.git randx

Update HEAD:

./bin/gitlab-projects update-head gitlab/gitlab-ci.git 3-2-stable

Create branch:

./bin/gitlab-projects create-branch gitlab/gitlab-ci.git 3-2-stable master

Remove branch:

./bin/gitlab-projects rm-branch gitlab/gitlab-ci.git 3-0-stable

Create tag (lightweight & annotated):

./bin/gitlab-projects create-tag gitlab/gitlab-ci.git v3.0.0 3-0-stable 
./bin/gitlab-projects create-tag gitlab/gitlab-ci.git v3.0.0 3-0-stable 'annotated message goes here'

Remove tag:

./bin/gitlab-projects rm-tag gitlab/gitlab-ci.git v3.0.0

Keys

Add key:

./bin/gitlab-keys add-key key-782 "ssh-rsa AAAAx321..."

Remove key:

./bin/gitlab-keys rm-key key-23 "ssh-rsa AAAAx321..."

List all keys:

./bin/gitlab-keys list-keys

Remove all keys from authorized_keys file:

./bin/gitlab-keys clear

Docker image development and testing

Development image name: gitlab-shell Change /mnt/src to repository dir.

# [Optional] Kill and cleanup all running container and image
docker kill gitlab
docker rm gitlab
docker rmi rhmap/gitlab-shell

# Build image
docker build -t rhmap/gitlab-shell .

# Start container
docker run  --name=gitlab -p 8022:22 -v /mnt/src:/home/git/repositories rhmap/gitlab-shell
docker ps | grep gitlab

# See apache logs
docker logs -f gitlab

# Connect for debugging
docker exec -it gitlab bash