Skip to content

Commit 9e78695

Browse files
authored
Merge pull request #17 from Liftric/feat/wait_for_vex_processing
Implement new Async Token Endpoint for SBOM/Vex/Analyze Task
2 parents e7f01f7 + 05322fa commit 9e78695

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

src/main/kotlin/com/liftric/dtcp/model/DependencyTrack.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ data class Analysis(
8787
)
8888

8989
@Serializable
90-
data class UploadSBOMResponse(val token: String)
90+
data class TaskTokenResponse(val token: String)
9191

9292
@Serializable
93-
data class SBOMProcessingResponse(val processing: Boolean)
93+
data class EventTokenResponse(val processing: Boolean)

src/main/kotlin/com/liftric/dtcp/service/DependencyTrack.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class DependencyTrack(apiKey: String, private val baseUrl: String) {
2020
client.getRequest(url).body()
2121
}
2222

23-
fun analyzeProjectFindings(projectUUID: String): UploadSBOMResponse = runBlocking {
23+
fun analyzeProjectFindings(projectUUID: String): TaskTokenResponse = runBlocking {
2424
val url = "$baseUrl/api/v1/finding/project/$projectUUID/analyze"
2525
client.postRequest(url).body()
2626
}
@@ -40,7 +40,7 @@ class DependencyTrack(apiKey: String, private val baseUrl: String) {
4040
projectUUID: String?,
4141
projectName: String?,
4242
projectVersion: String?,
43-
) = runBlocking {
43+
): TaskTokenResponse = runBlocking {
4444
val url = "$baseUrl/api/v1/vex"
4545
client.uploadFileWithFormData(url, file, "vex") {
4646
projectUUID?.let {
@@ -52,7 +52,7 @@ class DependencyTrack(apiKey: String, private val baseUrl: String) {
5252
projectVersion?.let {
5353
append("projectVersion", it)
5454
}
55-
}
55+
}.body()
5656
}
5757

5858
fun uploadSbom(
@@ -64,7 +64,7 @@ class DependencyTrack(apiKey: String, private val baseUrl: String) {
6464
parentUUID: String?,
6565
parentName: String?,
6666
parentVersion: String?,
67-
): UploadSBOMResponse = runBlocking {
67+
): TaskTokenResponse = runBlocking {
6868
val url = "$baseUrl/api/v1/bom"
6969
val res = client.uploadFileWithFormData(url, file, "bom") {
7070
append("autoCreate", autoCreate)
@@ -90,16 +90,16 @@ class DependencyTrack(apiKey: String, private val baseUrl: String) {
9090
res.body()
9191
}
9292

93-
fun waitForSbomAnalysis(token: String) = runBlocking {
94-
val url = "$baseUrl/api/v1/bom/token/$token"
95-
var response: SBOMProcessingResponse
93+
fun waitForTokenCompletion(token: String) = runBlocking {
94+
val url = "$baseUrl/api/v1/event/token/$token"
95+
var response: EventTokenResponse
9696

9797
do {
98-
println("Waiting for SBOM Analysis Processing...")
98+
println("Waiting for task completion...")
9999
delay(2000)
100100
response = client.getRequest(url).body()
101101
} while (response.processing)
102-
println("Analysis is complete.")
102+
println("Task is complete.")
103103
}
104104

105105
fun createProject(project: CreateProject) = runBlocking {

src/main/kotlin/com/liftric/dtcp/tasks/AnalyzeProjectTask.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ abstract class AnalyzeProjectTask : DefaultTask() {
4848
else -> throw GradleException("Either projectUUID or projectName and projectVersion must be set")
4949
}
5050

51-
dt.analyzeProjectFindings(uuid)
51+
val response = dt.analyzeProjectFindings(uuid)
52+
dt.waitForTokenCompletion(response.token)
5253
}
5354
}

src/main/kotlin/com/liftric/dtcp/tasks/UploadSBOMTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,6 @@ abstract class UploadSBOMTask : DefaultTask() {
7676
parentName = parentNameValue,
7777
parentVersion = parentVersionValue,
7878
)
79-
dt.waitForSbomAnalysis(response.token)
79+
dt.waitForTokenCompletion(response.token)
8080
}
8181
}

src/main/kotlin/com/liftric/dtcp/tasks/UploadVexTask.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,13 @@ abstract class UploadVexTask : DefaultTask() {
4545
}
4646

4747
val dt = DependencyTrack(apiKeyValue, urlValue)
48-
dt.uploadVex(
48+
val response = dt.uploadVex(
4949
file = outputFileValue,
5050
projectUUID = projectUUIDValue,
5151
projectName = projectNameValue,
5252
projectVersion = projectVersionValue,
5353
)
54+
dt.waitForTokenCompletion(response.token)
5455
logger.info("Uploaded VEX file to Dependency-Track")
5556
}
5657
}

0 commit comments

Comments
 (0)