Skip to content

update CI/CD Variables with a specific env  #2835

Description

@bungeetux

Description of the problem, including code/CLI snippet

When trying to update a variable with an environment 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 environment 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions