python-gitlab / python-gitlab

A python wrapper for the GitLab API.

Home Page:https://python-gitlab.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

update CI/CD Variables with a specific env

bungeetux opened this issue · comments

Description of the problem, including code/CLI snippet

When trying to update a variable with an environmment set, the variable could not be updated as mention in the documentation
https://python-gitlab.readthedocs.io/en/stable/gl_objects/variables.html
you need to add a filter as the gitlab api endpoint mention it in https://docs.gitlab.com/ee/api/project_level_variables.html#update-a-variable

It could be added to the documentation or fix in the code, as you could assume that you would never change the environnemnt of a variable.

for var in project.variables.list():
if var.environment_scope == env:
if var.key == name:
print('Variable found')
print(var)
var.value = value
var.filter = {'environment_scope': env} # necessary to update a variable that has multiple environnements
var.save()
print('Variable updated')

Expected Behavior

variable updated

Actual Behavior

gitlab.exceptions.GitlabUpdateError: 409: There are multiple variables with provided parameters. Please use 'filter[environment_scope]'

Specifications

  • python-gitlab version: 4.2.0
  • API version you are using (v3/v4): v4
  • Gitlab server version (or gitlab.com): gitlab.com