Tools for dealing with GitLab CI pipeline build variables.
Sets project build variables based on a configuration file:
gitlab-update-variables --url ${gitlabUrl} --token ${accessToken} --default-setting-extension ${extensions} \
--setting-repository ${repositoryDirectories} -- ${configLocation}
See Example 1 for a more intuitive example of how to use this tool!
This tool allows a GitLab CI project's build variables to be set from a ini config file, a JSON file or a shell script that just exports variables:
gitlab-set-variables --url ${gitlabUrl} --token ${accessToken} ${project} ${locationOfVariables}
gitlab-get-variables --url ${gitlabUrl} --token ${accessToken} ${project}
Using the example configuration to update the variables for a number of projects:
$ export gitlabUrl=https://gitlab.example.com
$ export accessToken=personalAccessToken
$ gitlab-get-variables --url ${gitlabUrl} --token ${accessToken} cn13/my-project-1
{'VALUE_1': 'other'}
$ gitlab-get-variables --url ${gitlabUrl} --token ${accessToken} cn13/my-project-2
{}
$ gitlab-update-variables --url ${gitlabUrl} --token ${accessToken} --default-setting-extension json ini sh \
--setting-repository examples/settings -- examples/config.json
Read config from "examples/config.json"
Set variables for "cn13/my-project-1": {'VALUE_1': 'abc', 'VALUE_2': 'other', 'VALUE_3': 'other'}
Set variables for "cn13/my-project-2": {'VALUE_1': 'abc', 'VALUE_2': 'other', 'VALUE_3': 'ghi'}
Using the settings defined in the example directory to update a project's variables:
$ export gitlabUrl=https://gitlab.internal.example.com
$ export accessToken=applicationAccessToken
$ gitlab-get-variables --url ${gitlabUrl} --token ${accessToken} my-project
{'VALUE_1': 'other'}
$ gitlab-set-variables --url ${gitlabUrl} --token ${accessToken} group/my-project common.json s3.sh project.ini
Variables for project "my-project" set to: {'VALUE_1': 'abc', 'VALUE_2': 'def', 'VALUE_3': 'ghi'}