Форум сайта python.su
0
Я использую этот 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["libraries"]: if item["policyDetails"]["status"] == "reject": for vulnerability in item["vulnerabilities"]: if MatchSeverity(vulnerability["severity"]) == True: body = [{ "op": "add", "path": "/fields/System.WorkItemType", "value": "Risk" }, { "op": "add", "path": "/fields/System.Title", "value": vulnerability["name"] }, { "op": "add", "path": "/fields/System.Tags", "value": "whitesource; firmware" }, { "op": "add", "path": "/fields/System.Description", "value": vulnerability["description"] }, { "op": "add", "path": "/fields/Mitigation", "value": vulnerability["topFix"]["fixResolution"] }, { "op": "add", "path": "/fields/Risk", "value": ConvertSeverityToAzurePattern(vulnerability["severity"]) }, { "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()
Отредактировано kostukp96 (Апрель 26, 2022 09:42:30)
Офлайн
124
[code python]между этими тегами вставлять код для правильного отображения[/code]
Офлайн
0
xam1816сделал
Офлайн
124
kostukp96с Azure Boards не знаком, но по логике ,нужно получить имена всех своих рабочих элементов, если имени нет то создать, или может даже есть запрос, который проверяет есть ли рабочий элемент с таким именем, или обратится к элементу с таким именем, и если придет отказ или что-то в этом роде, значит такого элемента нет, в общем нужно смотреть в документации к Azure
что будет проверять и не создавать повторяющийся рабочий элемент с тем же именем в моих Azure Boards?
Офлайн