diff --git a/src/sbom_dt_dd_api.py b/src/sbom_dt_dd_api.py index f47d471..6ff12e4 100644 --- a/src/sbom_dt_dd_api.py +++ b/src/sbom_dt_dd_api.py @@ -71,3 +71,27 @@ async def uploadMinimalSBOM( return JSONResponse(content={ "message": "Upload successful!" }) + +@app.post("/uploadSBOM/") +async def uploadSBOM( + file: UploadFile = File(...), + projectName: str = Form(...), + projectVersion: str = Form(...), + projectClassifier: str = Form(...), + projectDescription: str = Form(...), + reimport: bool = Form(...) +): + """ + Endpoint to upload a CycloneDX SBOM + """ + sbom = await file.read() + + try: + loadToDTrackAndDefectDojo(app.state.config, projectName, projectVersion, projectClassifier, projectDescription, 1, sbom, reimport) + logger.info("Done.") + except ApiException as e: + raise HTTPException(status_code=e.status, detail=f"{e.reason=}, {e.body=}, {e.data=}") + + return JSONResponse(content={ + "message": "Upload successful!" + })