Add BOM to Dependency-Track through PowerShell
try { | |
Set-Location $PSScriptRoot | |
$ProjectGuid = "d78bc750-d6db-4805-9836-5d77075ec37a" | |
$ApiKey = "6Ue2f8uVfRiVGpdowjWfF3yW02ryA7Uc" | |
$Uri = "http://localhost:8080/api/v1/bom" | |
$FileName = "bom.xml" | |
$ContentType = "multipart/form-data" | |
$xml = Get-Content (Join-Path $PSScriptRoot $FileName) -Raw | |
$httpClientHandler = [System.Net.Http.HttpClientHandler]::new() | |
$httpClient = [System.Net.Http.Httpclient]::new($httpClientHandler) | |
$multipartContent = [System.Net.Http.MultipartFormDataContent]::new() | |
$projectHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new("form-data") | |
$projectHeader.Name = "project" | |
$projectContent = [System.Net.Http.StringContent]::new($ProjectGuid) | |
$projectContent.Headers.ContentDisposition = $projectHeader | |
$multipartContent.Add($projectContent) | |
$bomHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new("form-data") | |
$bomHeader.Name = "bom" | |
$bomContent = [System.Net.Http.StringContent]::new($xml) | |
$bomContent.Headers.ContentDisposition = $bomHeader | |
$multipartContent.Add($bomContent) | |
$httpClient.DefaultRequestHeaders.Add("X-API-Key", $ApiKey); | |
$response = $httpClient.PostAsync($Uri, $multipartContent).Result | |
$response.Content.ReadAsStringAsync().Result | |
} | |
catch { | |
Write-Host $_ | |
} | |
finally { | |
if ($null -ne $httpClient) { | |
$httpClient.Dispose() | |
} | |
if ($null -ne $response) { | |
$response.Dispose() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment