Skip to content
Snippets Groups Projects

Description

These utility scripts avoid copying each ci variable manually which is tedious.

  • The gitlab-ci-vars-reader.py reads variables from a specific project or a pipeline (depending on the options provided) and copies them into a yaml file
  • The gitlab-ci-vars-updater.py takes a yaml file containing key value pairs in yaml format as an input. It then creates/updates project variables or pipeline variables (depending on the options provided)

Prerequisites

python -m venv ~/venvs/gitlab
source ~/venvs/gitlab/bin/activate
pip install -r requirements

Setup

cd utils
mv gitlab.ini.example gitlab.ini

Make changes to the gitlab.ini as you require. Create a personal access token via the gitlab UI and copy it to the private_token field in gitlab.ini file

Usage

Create an empty schedule pipeline before you try this out.

python3 gitlab-ci-vars-reader.py --config_file gitlab.ini --project_id <PROJECT_ID> --sched_pipeline_id <PIPELINE_ID> --var_file ci-variables.yaml

python3 gitlab-ci-vars-updater.py --config_file gitlab.ini --project_id <PROJECT_ID> --sched_pipeline_id <NEW-PIPELINE_ID> --var_file ci-variables.yaml