Skip to content

Commit 31122e6

Browse files
authored
[1.1.1] Add Jenkins Group Support
1 parent 27e646a commit 31122e6

File tree

3 files changed

+30
-27
lines changed

3 files changed

+30
-27
lines changed

build.gradle.kts

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

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

1919
repositories {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,18 @@ fun changeJenkinsPassword(username: String, newPassword: String): Boolean = runB
177177
* Creates a Jenkins user.
178178
* @param username The username of the user.
179179
* @param password The password of the user.
180+
* @param group `true` if the user is an organization, `false` otherwise.
180181
* @return `true` if the user was created, `false` otherwise.
181182
*/
182-
fun createJenkinsUser(username: String, password: String): Boolean = runBlocking(Dispatchers.IO) {
183+
@JvmOverloads
184+
fun createJenkinsUser(username: String, password: String, group: Boolean = false): Boolean = runBlocking(Dispatchers.IO) {
183185
if (getJenkinsUser(username).isNotEmpty()) return@runBlocking false
184186

185187
val config0 = RESOURCE_CACHE[USER_CONFIG] ?: return@runBlocking false
186188

187189
val config = config0
188190
.replace("{USERNAME}", username)
191+
.replace("{TYPE}", if (group) "GROUP" else "USER")
189192

190193
val res = jenkins("${jenkinsConfig.url}/createItem?name=$username") {
191194
POST(HttpRequest.BodyPublishers.ofString(config))

src/main/resources/templates/jenkins/user-config.xml

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,30 @@
2727
</org.jenkinsci.plugins.configfiles.folder.FolderConfigFileProperty>
2828
<com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty>
2929
<inheritanceStrategy class="org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy"/>
30-
<permission>USER:com.cloudbees.plugins.credentials.CredentialsProvider.Create:{USERNAME}</permission>
31-
<permission>USER:com.cloudbees.plugins.credentials.CredentialsProvider.Delete:{USERNAME}</permission>
32-
<permission>USER:com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:{USERNAME}</permission>
33-
<permission>USER:com.cloudbees.plugins.credentials.CredentialsProvider.Update:{USERNAME}</permission>
34-
<permission>USER:com.cloudbees.plugins.credentials.CredentialsProvider.View:{USERNAME}</permission>
35-
<permission>USER:hudson.model.Item.Build:{USERNAME}</permission>
36-
<permission>USER:hudson.model.Item.Cancel:{USERNAME}</permission>
37-
<permission>USER:hudson.model.Item.Configure:{USERNAME}</permission>
38-
<permission>USER:hudson.model.Item.Create:{USERNAME}</permission>
39-
<permission>USER:hudson.model.Item.Delete:{USERNAME}</permission>
40-
<permission>USER:hudson.model.Item.Discover:{USERNAME}</permission>
41-
<permission>USER:hudson.model.Item.Move:{USERNAME}</permission>
42-
<permission>USER:hudson.model.Item.Read:{USERNAME}</permission>
43-
<permission>USER:hudson.model.Item.ViewStatus:{USERNAME}</permission>
44-
<permission>USER:hudson.model.Item.Workspace:{USERNAME}</permission>
45-
<permission>USER:hudson.model.Run.Delete:{USERNAME}</permission>
46-
<permission>USER:hudson.model.Run.Replay:{USERNAME}</permission>
47-
<permission>USER:hudson.model.Run.Update:{USERNAME}</permission>
48-
<permission>USER:hudson.model.View.Configure:{USERNAME}</permission>
49-
<permission>USER:hudson.model.View.Create:{USERNAME}</permission>
50-
<permission>USER:hudson.model.View.Delete:{USERNAME}</permission>
51-
<permission>USER:hudson.model.View.Read:{USERNAME}</permission>
52-
<permission>USER:hudson.plugins.promoted_builds.Promotion.Promote:{USERNAME}</permission>
53-
<permission>USER:hudson.scm.SCM.Tag:{USERNAME}</permission>
30+
<permission>{TYPE}:com.cloudbees.plugins.credentials.CredentialsProvider.Create:{USERNAME}</permission>
31+
<permission>{TYPE}:com.cloudbees.plugins.credentials.CredentialsProvider.Delete:{USERNAME}</permission>
32+
<permission>{TYPE}:com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:{USERNAME}</permission>
33+
<permission>{TYPE}:com.cloudbees.plugins.credentials.CredentialsProvider.Update:{USERNAME}</permission>
34+
<permission>{TYPE}:com.cloudbees.plugins.credentials.CredentialsProvider.View:{USERNAME}</permission>
35+
<permission>{TYPE}:hudson.model.Item.Build:{USERNAME}</permission>
36+
<permission>{TYPE}:hudson.model.Item.Cancel:{USERNAME}</permission>
37+
<permission>{TYPE}:hudson.model.Item.Configure:{USERNAME}</permission>
38+
<permission>{TYPE}:hudson.model.Item.Create:{USERNAME}</permission>
39+
<permission>{TYPE}:hudson.model.Item.Delete:{USERNAME}</permission>
40+
<permission>{TYPE}:hudson.model.Item.Discover:{USERNAME}</permission>
41+
<permission>{TYPE}:hudson.model.Item.Move:{USERNAME}</permission>
42+
<permission>{TYPE}:hudson.model.Item.Read:{USERNAME}</permission>
43+
<permission>{TYPE}:hudson.model.Item.ViewStatus:{USERNAME}</permission>
44+
<permission>{TYPE}:hudson.model.Item.Workspace:{USERNAME}</permission>
45+
<permission>{TYPE}:hudson.model.Run.Delete:{USERNAME}</permission>
46+
<permission>{TYPE}:hudson.model.Run.Replay:{USERNAME}</permission>
47+
<permission>{TYPE}:hudson.model.Run.Update:{USERNAME}</permission>
48+
<permission>{TYPE}:hudson.model.View.Configure:{USERNAME}</permission>
49+
<permission>{TYPE}:hudson.model.View.Create:{USERNAME}</permission>
50+
<permission>{TYPE}:hudson.model.View.Delete:{USERNAME}</permission>
51+
<permission>{TYPE}:hudson.model.View.Read:{USERNAME}</permission>
52+
<permission>{TYPE}:hudson.plugins.promoted_builds.Promotion.Promote:{USERNAME}</permission>
53+
<permission>{TYPE}:hudson.scm.SCM.Tag:{USERNAME}</permission>
5454
</com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty>
5555
<org.jenkinsci.plugins.docker.workflow.declarative.FolderConfig>
5656
<dockerLabel/>
@@ -60,7 +60,7 @@
6060
<settings class="jenkins.mvn.DefaultSettingsProvider"/>
6161
<globalSettings class="jenkins.mvn.DefaultGlobalSettingsProvider"/>
6262
<override>false</override>
63-
</org.jenkinsci.plugins.pipeline.maven.MavenConfigFolderOverrideProperty>
63+
</org.jenkinsci.plugins.pipeline.maven.MavenConfigFolderOverridePro`perty>
6464
</properties>
6565
<folderViews class="com.cloudbees.hudson.plugins.folder.views.DefaultFolderViewHolder">
6666
<views>

0 commit comments

Comments
 (0)