Adds some magic to GitLab
Project description
Gitlabracadabra
🧹 GitLabracadabra 🧙
:alembic: Adds some magic to GitLab :crystal_ball:
GitLab'racadabra is a GitOps way to configure a GitLab instance from a YAML configuration, using the API.
It is able to create GitLab's groups, projects, users and application settings.
:thumbsup: It's also able to mirror :
- Git repositories, using the
mirrors
parameter in Mirroring repositories. - container (Docker) images, using the
image_mirrors
parameter. See Mirroring container images. - packages, using the
package_mirrors
parameter. See Mirroring packages.
It is based on Python GitLab.
Table of Contents
Installation
Using Debian packages
Debian package is available from artefacts and can be installed with:
apt install gitlabracadabra_*.deb
gitlabracadabra --verbose --dry-run
Note: Debian 10 buster or later is required.
Using pip
pip install gitlabracadabra
Using docker image
There are also Docker/OCI images.
Example usage:
sudo docker run -ti \
-v "$HOME/.python-gitlab.cfg:/home/gitlabracadabra/.python-gitlab.cfg:ro" \
-v "$PWD/gitlabracadabra.yml:/app/gitlabracadabra.yml:ro" \
'registry.gitlab.com/gitlabracadabra/gitlabracadabra:v1.8.1' \
--verbose --dry-run
Other images are available. Examples:
registry.gitlab.com/gitlabracadabra/gitlabracadabra/main
: Currentmain
registry.gitlab.com/gitlabracadabra/gitlabracadabra/main:b1cd3482bf9583c5db863c359e12cafcdb7119bf
: A specific commit ofmain
From source
Local installation (in $HOME/.local
):
# On Debian >= 10 (buster) or Ubuntu >= 19.04
sudo apt install python3-jsonschema python3-gitlab python3-yaml python3-pygit2 python3-coverage python3-vcr
# On others
pip install -r requirements.txt
# Build, install and test
python3 setup.py build
python3 setup.py install --user
# python3 setup.py test
~/.local/bin/gitlabracadabra --verbose --dry-run
Configuration
GitLabracadabra uses the same configuration file as Python GitLab CLI to store connection parameters.
Example ~/.python-gitlab.cfg
:
[global]
default = gitlab
[gitlab]
url = https://gitlab.com
private_token = T0K3N
More information in Python GitLab documentation.
Action file(s)
GitLabracadabra actions are configured with a YAML file.
See GitLabracadabra's own action file or read:
- Action file syntax
- list of parameters:
Using gitlabracadabra in GitLab CI
Since job token probably won't have enough permissions, you'll need to use a personal access token:
- create a personal access token
- Define the
GITLAB_PRIVATE_TOKEN
protected variable - Use it in your jobs to configure
python-gitlab
. Example.gitlab-ci.yml
:
default:
image:
name: 'registry.gitlab.com/gitlabracadabra/gitlabracadabra:v1.8.1'
entrypoint: [""]
before_script:
- |
cat << EOF > ~/.python-gitlab.cfg
[global]
default = gitlab
[gitlab]
url = ${CI_SERVER_URL:-https://gitlab.com}
private_token = ${GITLAB_PRIVATE_TOKEN}
# job_token = ${GITLAB_JOB_TOKEN}
EOF
stages:
- test
- deploy
test:
stage: test
script:
- gitlabracadabra --verbose --dry-run
rules:
- if: '$CI_COMMIT_BRANCH != "main"'
apply:
stage: deploy
script:
- gitlabracadabra --verbose
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
Contributing
-
File bugs and feature requests in GitLab issues. Security issues should be marked as confidential.
-
Propose documentation or code improvements in GitLab merge requests.
This repository enforces commit message convention, to check this locally install the commitlint hook:
npm install @commitlint/{config-conventional,cli} echo 'npx commitlint --edit' >> .git/hooks/commit-msg chmod +x .git/hooks/commit-msg
See also:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gitlabracadabra-1.8.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84d41ca193240aaa855b33ec1c77fe9b6f145e5968ae0f0e87954f5542b7e236 |
|
MD5 | 9e8a870f34499b1a8f5a298a009aa9b0 |
|
BLAKE2b-256 | 192e7e621e6fdc92efd1307dd32814b723b8ccec11b09e915f7388db89050ae7 |