microsoft / microsoft/azure-devops-python-api

is there a function for `variable_group_variable_update` ?

Open
#327 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
684
Forks
218
Avg merge
8d 10h
Merged PRs (30d)
1

Description

Goal

Update variable group variable using the provided python SDK

Summary

The basis of this issue/question is to understand if there is a function function within the azure-devops sdk for updating a variable within a variable group. When inspecting the azure-devops-cli-extension i'm able to see see that the cli is power by python. I'm also able to see that you can update a variable within a variable group using the azure-devops-cli. Which means there is a python function for updating variable groups within a variable group - variable_group_variable_update

With that research and understanding out of the way I jump back to the azure-devops-python-api knowing its possible to update a variable within a variable group. First, I start looking at the REST API which the python sdk is using, specifically for variable groups. After reading over the API docs a few times i'm unable to find anything explicitly calling out updating variables within a variable group.

With no help within the docs what do you do next? Search the internet forums for anyone who has had better luck than I. I discovered users stating they were able to update variables within a variable group but when I try to reproduce their code using python i'm getting different results. Well, mainly errors but it's getting me closer than what the docs provide.

import requests

username = "username"
password = "password"

pjson = {
        "variables": {
          "fingerscrosse-job": {
            "value": "wishes"
    },
    "special": {
      "value": "new value"
    }
        },
        "type": "Vsts",
        "name": "XXX-TEST",
         "description": "testing vars"
      }

url = "https://dev.azure.com/carmaxpricing/nemesis/_apis/distributedtask/variablegroups/1?api-version=5.0-preview.1"
headers = {'Content-Type': 'application/json'}
r = requests.post(url, json = pjson, auth=(username, password))
print(r.text)

RESPONSE

{"$id":"1","innerException":null,"message":"Variable group 'XXX-TEST' already exists.","typeName":"Microsoft.TeamFoundation.DistributedTask.WebApi.VariableGroupExistsException, Mi
crosoft.TeamFoundation.DistributedTask.WebApi","typeKey":"VariableGroupExistsException","errorCode":0,"eventId":3000}

If you notice in my code i'm not using the SDK because there is no function for updating a variable within a variable group that i'm aware of. Anyway, i'm getting an error stating ...already exists. So this api is for updating variable groups, not updating variables within a variable group, right? The real question is where is the function within THIS SDK for updating variables within a variable group? please advise - Confused Engineer

Notes

  • Tried multiple different REST API versions
  • No function under the task_agent_client() for updating variable in variable group. but there is update_variable_group
  • Creating NEW variable groups with variables works

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with task_agent_client() and its update_variable_group entry point, then compare its behavior with variable_group.py in the azure-devops-cli-extension. Reproduce the documented request against the linked REST API and determine whether variable updates are supported through the SDK. Done means the supported entry point and request shape are clearly documented, or the missing capability is identified for implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, python
Domain
api, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.