Simple utility written in Python for the local repositories. In a Time of SaaS, IaC and micro services, it can happen that you need many small repositories at your local Machine for Development, it is terrible to pull so many repositories.
- sort gitlab groups to your local folders
- append a prefix to local copy, configurable by pulled Repository group from GitLab
- pull changes from origin
For easy usage and better dependency handling use a python-virtualenv.
virtualenv ~/venvs/gitlab-bulkcheckout
source ~/venvs/gitlab-bulkcheckout/bin/activate
For install the application from pypi.org use pip.
pip install gitlab-bulkcheckout
virtualenv ~/venvs/gitlab-bulkcheckout-dev
source ~/venvs/gitlab-bulkcheckout-dev/bin/activate
pip install tox
tox
The tox script create a installable dist under ./.tox/dist/*.tar.gz
For easy usage, the tool can be wrapped with docker, so you don`t need a local python env for using.
docker build -t nolte/gitlab-bulkcheckout .
docker run -it \
--user=${UID}:$(id -g $(whoami)) \
-v $SSH_AUTH_SOCK:/ssh-agent \
-e SSH_AUTH_SOCK=/ssh-agent \
-e GROUPS_MAPPINGS=/app/gitlab_groupMapping.yml \
-e GITLAB_TOKEN=$(pass /internet/gitlab.com/tokens/management) \
-e PROJECTS_BASE=/tmp/bulkcheckout \
-w /tmp/bulkcheckout \
-v /tmp/bulkcheckout:/tmp/bulkcheckout \
-v ${HOME}/.ssh:/home/builder/.ssh:ro \
-v ${PWD}/gitlab_groupMapping.yml:/app/gitlab_groupMapping.yml:ro \
nolte/gitlab-bulkcheckout -v checkoutbulk