Created
October 11, 2023 18:32
-
-
Save slmcmahon/a5218a0688092bdf0df7d0b114016981 to your computer and use it in GitHub Desktop.
Compares two variable lists and reports variables that don't match
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import requests | |
import os | |
from requests.auth import HTTPBasicAuth | |
org = 'your-org' | |
project = 'your-project' | |
# the variableGroupId values from the variable libs that | |
# you want to compare | |
lib1 = 2460 | |
lib2 = 3105 | |
url = f'https://dev.azure.com/{org}/{project}/_apis/distributedtask/variablegroups?groupIds={lib1},{lib2}&api-version=6.0-preview.2' | |
rsp = requests.get(url, auth=HTTPBasicAuth('user', os.environ['AZDO_PAT'])) | |
data = json.loads(rsp.content.decode('utf-8')) | |
varnamelist = [] | |
for varlist in data['value']: | |
# this gets all of the variables for the id selected above | |
varnames = [l for l in varlist['variables']] | |
varnamelist.append({'id': varlist['id'], 'name': varlist['name'], 'vars': varnames}) | |
lists_equal = len(varnamelist[0]['vars']) == len(varnamelist[1]['vars']) | |
print(f'Lists are equal: {lists_equal}') | |
if not lists_equal: | |
print(f'variables in {varnamelist[0]["name"]} but not in {varnamelist[1]["name"]}') | |
print(", ".join(list(set(varnamelist[0]['vars']) - set(varnamelist[1]['vars'])))) | |
print(f'variables in {varnamelist[1]["name"]} but not in {varnamelist[0]["name"]}') | |
print(", ".join(list(set(varnamelist[1]['vars']) - set(varnamelist[0]['vars'])))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment