Проверка и не создание дубликатов Work item в Azure Boards (Azure DevOps)

kostukp96

Новичок
Пользователь
Апр 25, 2022
1
0
1
Я использую этот python-скрипт для анализа json-отчета whitesource и автоматически создаю рабочий элемент в Azure Boards:

import json
import requests
import sys
import base64

SEVERITY = “HIGH”
url = 'https://dev.azure.com/{organization}/{project_name}/_apis/wit/workitems/$Task?api-version=6.0'
AzureToken = ‘<my_token>’
AzureToken64 = base64.b64encode(AzureToken.encode(“ascii”)).decode(“ascii”)
head = {'Authorization': ‘Basic %s’ % AzureToken64, ‘Content-type’: ‘application/json-patch+json’, ‘Accept’: ‘text/plain’}


acceptList =
if SEVERITY == “HIGH”:
acceptList = {“HIGH”, “MEDIUM”, “LOW”}
elif SEVERITY == “MEDIUM”:
acceptList = {“MEDIUM”, “LOW”}
elif SEVERITY == “LOW”:
acceptList = {“LOW”}



def MatchSeverity(sev):
print(sev)
for i in acceptList:
if i == sev:
return True
return False


def ConvertSeverityToAzurePattern(sev):
if sev == “HIGH”:
return “1 - High”
elif sev == “MEDIUM”:
return “2 - Medium”
elif sev == “LOW”:
return “3 - Low”


# Open Whitesource Report
f = open(“scan_report.json”, “r”)
report = f.read()

reportJson = json.loads(report)

for item in reportJson:
if item == “reject”:
for vulnerability in item:
if MatchSeverity(vulnerability) == True:
body = [{
“op”: “add”,
“path”: “/fields/System.WorkItemType”,
“value”: “Risk”
},
{
“op”: “add”,
“path”: “/fields/System.Title”,
“value”: vulnerability
},
{
“op”: “add”,
“path”: “/fields/System.Tags”,
“value”: “whitesource; firmware”
},
{
“op”: “add”,
“path”: “/fields/System.Description”,
“value”: vulnerability
},
{
“op”: “add”,
“path”: “/fields/Mitigation”,
“value”: vulnerability
},
{
“op”: “add”,
“path”: “/fields/Risk”,
“value”: ConvertSeverityToAzurePattern(vulnerability)
},
{
“op”: “add”,
“path”: “/relations/-”,
“value”: {
“rel”: “Hyperlink”,
“url”: "https://dev.azure.com/{organization}/{project_name}/_apis/build/status"
}
}]
jsonStr = json.dumps(body)
# print(jsonStr)

x = requests.post(url, data = jsonStr, headers=head)
print(x.status_code)
x.json()


Все работает нормально, но что мне нужно добавить к этому python-скрипту, что будет проверять и не создавать повторяющийся рабочий элемент с тем же именем в моих Azure Boards?
 

Форум IT Специалистов