community.general.gitlab_project_variable module – Creates/updates/deletes GitLab Projects Variables
Note
This module is part of the community.general collection (version 9.5.1).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.gitlab_project_variable
.
Synopsis
When a project variable does not exist, it will be created.
When a project variable does exist, its value will be updated when the values are different.
Variables which are untouched in the playbook, but are not untouched in the GitLab project, they stay untouched (
purge=false
) or will be deleted (purge=true
).
Requirements
The below requirements are needed on the host that executes this module.
python-gitlab python module
requests (Python library https://pypi.org/project/requests/)
Parameters
Parameter |
Comments |
---|---|
GitLab CI job token for logging in. |
|
GitLab OAuth token for logging in. |
|
The password to use for authentication against the API. |
|
GitLab access token with API permissions. |
|
The resolvable endpoint for the API. |
|
The username to use for authentication against the API. |
|
The CA certificates bundle to use to verify GitLab server certificate. |
|
The path and name of the project. |
|
When set to true, all variables which are not untouched in the task will be deleted. Choices:
|
|
Create or delete project variable. Possible values are present and absent. Choices:
|
|
Whether or not to validate SSL certs when supplying a HTTPS endpoint. Choices:
|
|
A list of dictionaries that represents CI/CD variables. This module works internal with this structure, even if the older Default: |
|
The scope for the variable. Support for Default: |
|
Whether variable value is masked or not. Support for masked values requires GitLab >= 11.10. Choices:
|
|
The name of the variable. |
|
Whether variable value is protected or not. Support for protected values requires GitLab >= 9.3. Choices:
|
|
Whether variable value is raw or not. Support for raw values requires GitLab >= 15.7. Choices:
|
|
The variable value. Required when |
|
Whether a variable is an environment variable ( Support for Choices:
|
|
When the list element is a simple key-value pair, masked, raw and protected will be set to false. When the list element is a dict with the keys Support for protected values requires GitLab >= 9.3. Support for masked values requires GitLab >= 11.10. Support for raw values requires GitLab >= 15.7. Support for environment_scope requires GitLab Premium >= 13.11. Support for variable_type requires GitLab >= 11.11. A Field Field When a value is masked, it must be in Base64 and have a length of at least 8 characters. See GitLab documentation on acceptable values for a masked variable (https://docs.gitlab.com/ce/ci/variables/#masked-variables). Default: |
Attributes
Attribute |
Support |
Description |
---|---|---|
Support: full |
Can run in |
|
Support: none |
Will return details on what has changed (or possibly needs changing in |
Examples
- name: Set or update some CI/CD variables
community.general.gitlab_project_variable:
api_url: https://gitlab.com
api_token: secret_access_token
project: markuman/dotfiles
purge: false
variables:
- name: ACCESS_KEY_ID
value: abc123
- name: SECRET_ACCESS_KEY
value: dassgrfaeui8989
masked: true
protected: true
environment_scope: production
- name: Set or update some CI/CD variables
community.general.gitlab_project_variable:
api_url: https://gitlab.com
api_token: secret_access_token
project: markuman/dotfiles
purge: false
vars:
ACCESS_KEY_ID: abc123
SECRET_ACCESS_KEY:
value: 3214cbad
masked: true
protected: true
variable_type: env_var
environment_scope: '*'
- name: Set or update some CI/CD variables with raw value
community.general.gitlab_project_variable:
api_url: https://gitlab.com
api_token: secret_access_token
project: markuman/dotfiles
purge: false
vars:
ACCESS_KEY_ID: abc123
SECRET_ACCESS_KEY:
value: 3214cbad
masked: true
protected: true
raw: true
variable_type: env_var
environment_scope: '*'
- name: Set or update some CI/CD variables with expandable value
community.general.gitlab_project_variable:
api_url: https://gitlab.com
api_token: secret_access_token
project: markuman/dotfiles
purge: false
vars:
ACCESS_KEY_ID: abc123
SECRET_ACCESS_KEY:
value: '$MY_OTHER_VARIABLE'
masked: true
protected: true
raw: false
variable_type: env_var
environment_scope: '*'
- name: Delete one variable
community.general.gitlab_project_variable:
api_url: https://gitlab.com
api_token: secret_access_token
project: markuman/dotfiles
state: absent
vars:
ACCESS_KEY_ID: abc123
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Four lists of the variablenames which were added, updated, removed or exist. Returned: always |
|
A list of variables which were created. Returned: always Sample: |
|
A list of variables which were deleted. Returned: always Sample: |
|
A list of variables which exist. Returned: always Sample: |
|
A list of variables whose values were changed. Returned: always Sample: |