Skip to content

Commit 27e646a

Browse files
committed
[1.1.0] Rewrite Jenkins API
- Use HTTP Jenkins API instead of outdated Jenkins REST Client - Add more checks for existing user state - Remove unused imports - Code Cleanup
1 parent 475c78d commit 27e646a

File tree

9 files changed

+177
-144
lines changed

9 files changed

+177
-144
lines changed

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ plugins {
1313
}
1414

1515
group = "io.codemc.api"
16-
version = "1.0.3"
16+
version = "1.1.0"
1717
description = "Official API for CodeMC Jenkins & Nexus Services"
1818

1919
repositories {
@@ -25,7 +25,6 @@ dependencies {
2525
implementation(kotlin("stdlib"))
2626
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
2727
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
28-
implementation("io.github.cdancy:jenkins-rest:1.0.2")
2928
implementation("org.mariadb.jdbc:mariadb-java-client:3.5.0")
3029
implementation("org.jetbrains.exposed:exposed-core:0.56.0")
3130
implementation("org.jetbrains.exposed:exposed-jdbc:0.56.0")

src/main/kotlin/io/codemc/api/jenkins/data.kt

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package io.codemc.api.jenkins
22

3-
import com.cdancy.jenkins.rest.domain.job.BuildInfo
4-
import com.cdancy.jenkins.rest.domain.job.JobInfo
3+
import kotlinx.serialization.json.JsonObject
4+
import kotlinx.serialization.json.int
5+
import kotlinx.serialization.json.jsonPrimitive
6+
import kotlinx.serialization.json.long
57

68
/**
79
* Represents a Jenkins job.
@@ -21,25 +23,7 @@ data class JenkinsJob(
2123
val lastCompletedBuild: JenkinsBuild?,
2224
val lastFailedBuild: JenkinsBuild?,
2325
val lastStableBuild: JenkinsBuild?
24-
) {
25-
26-
/**
27-
* Creates a Jenkins job from a [JobInfo] object.
28-
* @param info The job info.
29-
*/
30-
constructor(info: JobInfo) : this(
31-
info.displayNameOrNull() ?: info.name(),
32-
info.url(),
33-
info.description(),
34-
tryBuild(info.lastBuild()),
35-
tryBuild(info.lastCompleteBuild()),
36-
tryBuild(info.lastFailedBuild()),
37-
tryBuild(info.lastStableBuild())
38-
)
39-
40-
}
41-
42-
private fun tryBuild(info: BuildInfo?) = info?.let { JenkinsBuild(it) }
26+
)
4327

4428
/**
4529
* Represents a Jenkins build.
@@ -55,16 +39,11 @@ data class JenkinsBuild(
5539
val timestamp: Long
5640
) {
5741

58-
/**
59-
* Creates a Jenkins build from a [BuildInfo] object.
60-
* @param info The build info.
61-
* @see BuildInfo
62-
*/
63-
constructor(info: BuildInfo) : this(
64-
info.result() ?: "UNKNOWN",
65-
info.number(),
66-
info.url(),
67-
info.timestamp()
42+
constructor(json: JsonObject) : this(
43+
json["result"]!!.jsonPrimitive.content,
44+
json["number"]!!.jsonPrimitive.int,
45+
json["url"]?.jsonPrimitive?.content,
46+
json["timestamp"]!!.jsonPrimitive.long
6847
)
6948

7049
/**

0 commit comments

Comments
 (0)