diff --git a/classes/dependency-track.bbclass b/classes/dependency-track.bbclass index 387ceba..b175cd3 100644 --- a/classes/dependency-track.bbclass +++ b/classes/dependency-track.bbclass @@ -12,7 +12,7 @@ DEPENDENCYTRACK_TMP ??= "${TMPDIR}/dependency-track" DEPENDENCYTRACK_LOCK ??= "${DEPENDENCYTRACK_TMP}/bom.lock" DEPENDENCYTRACK_PROJECT ??= "" -DEPENDENCYTRACK_API_URL ??= "http://localhost:8081/api" +DEPENDENCYTRACK_API_URL ??= "" DEPENDENCYTRACK_API_KEY ??= "" python do_dependencytrack_init() { @@ -74,9 +74,15 @@ python do_dependencytrack_upload () { import urllib from pathlib import Path + var_api_url = "DEPENDENCYTRACK_API_URL" + + if d.getVar(var_api_url) == "": + bb.debug(2, f"Not uploading to Dependency Track, no API URL set in {var_api_url}") + return + sbom_path = d.getVar("DEPENDENCYTRACK_SBOM") dt_project = d.getVar("DEPENDENCYTRACK_PROJECT") - dt_url = f"{d.getVar('DEPENDENCYTRACK_API_URL')}/v1/bom" + dt_url = f"{d.getVar(var_api_url)}/v1/bom" bb.debug(2, f"Loading final SBOM: {sbom_path}") sbom = Path(sbom_path).read_text() @@ -86,7 +92,7 @@ python do_dependencytrack_upload () { "bom": base64.b64encode(sbom.encode()).decode('ascii') }).encode() bb.debug(2, f"Uploading SBOM to project {dt_project} at {dt_url}") - + headers = { "Content-Type": "application/json", "X-API-Key": d.getVar("DEPENDENCYTRACK_API_KEY") @@ -96,7 +102,7 @@ python do_dependencytrack_upload () { data=payload, headers=headers, method="PUT") - + try: urllib.request.urlopen(req) except urllib.error.HTTPError as e: