gitlab_*_variable: add description option (#10812)

This commit is contained in:
David Phillips 2025-09-19 07:55:28 +12:00 committed by GitHub
commit 7a231a248e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 52 additions and 25 deletions

View file

@ -87,6 +87,12 @@ options:
- The variable value.
- Required when O(state=present).
type: str
description:
description:
- A description for the variable.
- Support for descriptions requires GitLab >= 16.2.
type: str
version_added: '11.4.0'
masked:
description:
- Whether variable value is masked or not.
@ -240,6 +246,7 @@ class GitlabGroupVariables(object):
var = {
"key": var_obj.get('key'),
"value": var_obj.get('value'),
"description": var_obj.get('description'),
"masked": var_obj.get('masked'),
"masked_and_hidden": var_obj.get('hidden'),
"protected": var_obj.get('protected'),
@ -348,14 +355,13 @@ def native_python_main(this_gitlab, purge, requested_variables, state, module):
return_value['removed'].append(item)
elif state == 'absent':
# value does not matter on removing variables.
# key and environment scope are sufficient
for item in existing_variables:
item.pop('value')
item.pop('variable_type')
for item in requested_variables:
item.pop('value')
item.pop('variable_type')
# value, type, and description do not matter on removing variables.
keys_ignored_on_deletion = ['value', 'variable_type', 'description']
for key in keys_ignored_on_deletion:
for item in existing_variables:
item.pop(key)
for item in requested_variables:
item.pop(key)
if not purge:
remove_requested = [x for x in requested_variables if x in existing_variables]
@ -392,6 +398,7 @@ def main():
variables=dict(type='list', elements='dict', default=list(), options=dict(
name=dict(type='str', required=True),
value=dict(type='str', no_log=True),
description=dict(type='str'),
masked=dict(type='bool', default=False),
hidden=dict(type='bool', default=False),
protected=dict(type='bool', default=False),

View file

@ -64,6 +64,12 @@ options:
- The variable value.
- Required when O(state=present).
type: str
description:
description:
- A description for the variable.
- Support for descriptions requires GitLab >= 16.8.
type: str
version_added: '11.4.0'
masked:
description:
- Whether variable value is masked or not.
@ -165,6 +171,7 @@ class GitlabInstanceVariables(object):
var = {
"key": var_obj.get('key'),
"value": var_obj.get('value'),
"description": var_obj.get('description'),
"masked": var_obj.get('masked'),
"protected": var_obj.get('protected'),
"raw": var_obj.get('raw'),
@ -265,14 +272,13 @@ def native_python_main(this_gitlab, purge, requested_variables, state, module):
return_value['removed'].append(item)
elif state == 'absent':
# value does not matter on removing variables.
# key and environment scope are sufficient
for item in existing_variables:
item.pop('value')
item.pop('variable_type')
for item in requested_variables:
item.pop('value')
item.pop('variable_type')
# value, type, and description do not matter on removing variables.
keys_ignored_on_deletion = ['value', 'variable_type', 'description']
for key in keys_ignored_on_deletion:
for item in existing_variables:
item.pop(key)
for item in requested_variables:
item.pop(key)
if not purge:
remove_requested = [x for x in requested_variables if x in existing_variables]
@ -305,6 +311,7 @@ def main():
variables=dict(type='list', elements='dict', default=list(), options=dict(
name=dict(type='str', required=True),
value=dict(type='str', no_log=True),
description=dict(type='str'),
masked=dict(type='bool', default=False),
protected=dict(type='bool', default=False),
raw=dict(type='bool', default=False),

View file

@ -86,6 +86,12 @@ options:
- The variable value.
- Required when O(state=present).
type: str
description:
description:
- A description for the variable.
- Support for descriptions requires GitLab >= 16.2.
type: str
version_added: '11.4.0'
masked:
description:
- Whether variable value is masked or not.
@ -260,6 +266,7 @@ class GitlabProjectVariables(object):
var = {
"key": var_obj.get('key'),
"value": var_obj.get('value'),
"description": var_obj.get('description'),
"masked": var_obj.get('masked'),
"masked_and_hidden": var_obj.get('hidden'),
"protected": var_obj.get('protected'),
@ -370,14 +377,13 @@ def native_python_main(this_gitlab, purge, requested_variables, state, module):
return_value['removed'].append(item)
elif state == 'absent':
# value does not matter on removing variables.
# key and environment scope are sufficient
for item in existing_variables:
item.pop('value')
item.pop('variable_type')
for item in requested_variables:
item.pop('value')
item.pop('variable_type')
# value, type, and description do not matter on removing variables.
keys_ignored_on_deletion = ['value', 'variable_type', 'description']
for key in keys_ignored_on_deletion:
for item in existing_variables:
item.pop(key)
for item in requested_variables:
item.pop(key)
if not purge:
remove_requested = [x for x in requested_variables if x in existing_variables]
@ -414,6 +420,7 @@ def main():
variables=dict(type='list', elements='dict', default=list(), options=dict(
name=dict(type='str', required=True),
value=dict(type='str', no_log=True),
description=dict(type='str'),
masked=dict(type='bool', default=False),
hidden=dict(type='bool', default=False),
protected=dict(type='bool', default=False),