Skip to content

Commit 30bfb63

Browse files
committed
Standardize dependency management with libs.versions.toml
Migrated http-notification to use centralized version catalog to ensure consistent dependency versions and resolve CVE-2025-24972: - Created gradle/libs.versions.toml with all dependency versions - Updated build.gradle to use version catalog references - Upgraded Axion release plugin from 1.17.2 to 1.18.18 - Added versionCreator 'simple' for consistent tag-based versioning - Spock 2.4-groovy-4.0 no longer pulls vulnerable assertj-core The vulnerable assertj-core 3.23.1 was a transitive dependency through Spock 2.0. Current Spock 2.4-groovy-4.0 does not include this dependency.
1 parent f4be30e commit 30bfb63

3 files changed

Lines changed: 47 additions & 17 deletions

File tree

build.gradle

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
plugins {
2-
id 'pl.allegro.tech.build.axion-release' version '1.17.2'
2+
alias(libs.plugins.axionRelease)
33
id 'groovy'
44
id 'java'
5-
id 'io.github.gradle-nexus.publish-plugin' version '2.0.0'
5+
alias(libs.plugins.nexusPublish)
66
}
77

88
group 'org.rundeck.plugins'
@@ -15,6 +15,8 @@ ext.developers = [
1515

1616
scmVersion {
1717
ignoreUncommittedChanges = false
18+
// Maintain simple tag-based versioning without branch name suffixes (Axion 1.18+)
19+
versionCreator 'simple'
1820
tag {
1921
prefix = '' // NO "v" prefix - see PLUGIN_TAGGING_ARCHITECTURE.md
2022
versionSeparator = ''
@@ -64,26 +66,22 @@ repositories {
6466
}
6567

6668
dependencies {
67-
implementation 'org.apache.groovy:groovy-all:4.0.29'
68-
compileOnly 'org.rundeck:rundeck-core:6.0.0-alpha1-20260407'
69-
testImplementation 'org.rundeck:rundeck-core:6.0.0-alpha1-20260407'
69+
implementation libs.groovyAll
70+
compileOnly libs.rundeckCore
71+
testImplementation libs.rundeckCore
7072

7173
// Apache HTTP client dependencies for compilation (http-step bundles these but doesn't expose them transitively)
72-
implementation 'org.apache.httpcomponents:httpclient:4.5.14'
73-
// Version 3.18.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils)
74-
implementation 'org.apache.commons:commons-lang3:3.20.0'
74+
implementation libs.httpclient
75+
// Version 3.20.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils)
76+
implementation libs.commonsLang3
7577

7678
// Bundle http-step plugin in lib/ directory for runtime
7779
// Use transitive=false to avoid duplicating dependencies already bundled in http-step JAR
78-
pluginLibs ('org.rundeck.plugins:http-step:1.1.20-grails7') {
80+
pluginLibs (libs.httpStep) {
7981
transitive = false
8082
}
8183

82-
testImplementation group: 'junit', name: 'junit', version: '4.13.2'
83-
testImplementation "org.apache.groovy:groovy-all:4.0.29"
84-
testImplementation "org.spockframework:spock-core:2.4-groovy-4.0"
85-
testImplementation "net.bytebuddy:byte-buddy:1.14.11"
86-
testImplementation 'org.objenesis:objenesis:3.4'
84+
testImplementation libs.bundles.testLibs
8785
}
8886

8987

@@ -98,7 +96,7 @@ jar {
9896
def libList = configurations.pluginLibs.collect{'lib/' + it.name}.join(' ')
9997
attributes 'Rundeck-Plugin-Name' : pluginName
10098
attributes 'Rundeck-Plugin-Description' : pluginDescription
101-
attributes 'Rundeck-Plugin-Rundeck-Compatibility-Version': '2.10.1+'
99+
attributes 'Rundeck-Plugin-Rundeck-Compatibility-Version': '6.0.0+'
102100
attributes 'Rundeck-Plugin-Tags': 'java,notification'
103101
attributes 'Rundeck-Plugin-License': 'Apache 2.0'
104102
attributes 'Rundeck-Plugin-Source-Link': 'https://github.com/rundeck-plugins/http-notification'

gradle/libs.versions.toml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[versions]
2+
axionRelease = "1.18.18"
3+
groovy = "4.0.29"
4+
rundeckCore = "6.0.0-alpha1-20260407"
5+
nexusPublish = "2.0.0"
6+
httpclient = "4.5.14"
7+
commonsLang3 = "3.20.0"
8+
httpStep = "2.0.0"
9+
junit = "4.13.2"
10+
spock = "2.4-groovy-4.0"
11+
bytebuddy = "1.14.11"
12+
objenesis = "3.4"
13+
14+
[libraries]
15+
rundeckCore = { group = "org.rundeck", name = "rundeck-core", version.ref = "rundeckCore" }
16+
groovyAll = { group = "org.apache.groovy", name = "groovy-all", version.ref = "groovy" }
17+
18+
# HTTP dependencies
19+
httpclient = { group = "org.apache.httpcomponents", name = "httpclient", version.ref = "httpclient" }
20+
commonsLang3 = { group = "org.apache.commons", name = "commons-lang3", version.ref = "commonsLang3" }
21+
httpStep = { group = "org.rundeck.plugins", name = "http-step", version.ref = "httpStep" }
22+
23+
# Testing
24+
junit = { group = "junit", name = "junit", version.ref = "junit" }
25+
spockCore = { group = "org.spockframework", name = "spock-core", version.ref = "spock" }
26+
bytebuddy = { group = "net.bytebuddy", name = "byte-buddy", version.ref = "bytebuddy" }
27+
objenesis = { group = "org.objenesis", name = "objenesis", version.ref = "objenesis" }
28+
29+
[bundles]
30+
testLibs = ["groovyAll", "junit", "spockCore", "bytebuddy", "objenesis"]
31+
32+
[plugins]
33+
axionRelease = { id = "pl.allegro.tech.build.axion-release", version.ref = "axionRelease" }
34+
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublish" }

jitpack.yml

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)