From 982f0c47ba5b765189d27a7c46c2b8a1e2a027cf Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 2 Jan 2026 15:12:05 -0800 Subject: [PATCH 01/26] Update for Grails 7 compatibility - Update groupId to com.github.rundeck-plugins - Update version to X.Y.Z-grails7-upgrade-test - Update rundeck-core dependency to 6.0.0-SNAPSHOT - Enhanced diagnostics and error logging - Fixed test compatibility issues (JUnit 4 vs 5, Java 17) - Updated for Spring Boot 3 / Java 17 --- .../edu/ohio/ais/rundeck/HttpBuilder$1.class | Bin 0 -> 968 bytes .../ohio/ais/rundeck/HttpBuilder$Reason.class | Bin 0 -> 1327 bytes .../edu/ohio/ais/rundeck/HttpBuilder.class | Bin 0 -> 23542 bytes .../ohio/ais/rundeck/HttpDescription.class | Bin 0 -> 6400 bytes .../rundeck/HttpWorkflowNodeStepPlugin.class | Bin 0 -> 10435 bytes .../ais/rundeck/HttpWorkflowStepPlugin.class | Bin 0 -> 9265 bytes .../rundeck/util/OAuthClient$GrantType.class | Bin 0 -> 1195 bytes .../util/OAuthClient$OAuthException.class | Bin 0 -> 517 bytes .../ohio/ais/rundeck/util/OAuthClient.class | Bin 0 -> 7467 bytes .../ais/rundeck/util/SecretBundleUtil.class | Bin 0 -> 3474 bytes bin/test/README.md | 0 .../ohio/ais/rundeck/HttpBuilderTest.class | Bin 0 -> 2715 bytes .../HttpWorkflowNodeStepPluginTest.class | Bin 0 -> 15576 bytes .../rundeck/HttpWorkflowStepPluginTest.class | Bin 0 -> 15783 bytes .../util/OAuthClientTest$TestLogger.class | Bin 0 -> 1101 bytes .../ais/rundeck/util/OAuthClientTest.class | Bin 0 -> 9401 bytes build.gradle | 22 ++++++++++++++---- 17 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder.class create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpDescription.class create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class create mode 100644 bin/main/edu/ohio/ais/rundeck/HttpWorkflowStepPlugin.class create mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient$GrantType.class create mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient$OAuthException.class create mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class create mode 100644 bin/main/edu/ohio/ais/rundeck/util/SecretBundleUtil.class create mode 100644 bin/test/README.md create mode 100644 bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class create mode 100644 bin/test/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPluginTest.class create mode 100644 bin/test/edu/ohio/ais/rundeck/HttpWorkflowStepPluginTest.class create mode 100644 bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest$TestLogger.class create mode 100644 bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ef49a999e4437a7c81fbb17bf7fffdef53036f72 GIT binary patch literal 968 zcma)4+invv5Is(oZW9(7!u_6>q)m#1TL~T@fKa2NBBkY_RfXWm@w$o2)*G$8sQo8i zctA)z@Bw@jV!WwnxkzCpTQjp~&K%Fo_a9%s0eFUXh!VqsigTWhbjpRcJj+e24nHs~bP54fhTes~p z;neVmVaAQLZLUzg{mm%n-v8sUKT!av_Rg^Iop@JGix$OaS zeQnfMelSqkju<40q25oWNOnc0y?-1GyiA7X)T+%@l3CHVc&3UOp0wZfixycW^Gv%V zE>-6En@1~;dt~T6EvXgV38rWxHAkCaxAT^vx_&6t*y+^R5Z4)&{=syLpVdV#Q!a;+GUKyjZULvej^s3n{ zW!*+<9U8O}WjbfTYBj$ZwD~1E6;vsDmaK>5`$%>9{%1tXUvU0Yfw@5U3}Jvh)ai~2 zyNZjrL>|LsT%o+HWC!G3E4W^eRi;QO_~>t(aOi@gG5LGU;So1*v*0b^7H*Rt;7*Zw Xmy~p7HgU literal 0 HcmV?d00001 diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class new file mode 100644 index 0000000000000000000000000000000000000000..0f8e7686f340c7c64dae115f315216a511e05923 GIT binary patch literal 1327 zcmbtTT~pIQ6g^7{X-kAs5#&QfMQIBXtKv%wq6`d-1sn_2j!)Zkfk2ut`2d;mM=3nO z=*al&k8->l3eAgS9W#?;@7;UuJ@@X}pTEAI1DM5(iVlVeQ4e%y$8>aVdb%6fbz$u3 z%f7$=Dlo0OaL3;Y?m4!K7(>r4Kj6B>?QMP04jL-D7+x4oL$CXe#cM6R;kZHljhGp8OKgXbCvK5Bdf>Rf9s7WyNX-MNbLszjGGLR{?CQVs}wkr(3 zuoCI<(nU=&s3D>CEr!`BtT~7Fk59Il(=dTahM8!l1&e!LAyWP-b*mMrKN3K)>;$eM zmP|RyR7AGZGL)Juo7*<`No@?DA{iyT*tS0A3Z?&4IZ@SCY+JZtZ^BdYgkkJ&LZ`#O zyd?28;rYvs=g;R!P71x9Q09lE*Z}&I&VbagR2kjw7+D&wQB)6E6|&_s{SB;|?p02a zIzfME48%fXu=6`@DaYt9S7XN*ET3TL3n4l%Lf;;$2fU+v?=ei-M#CMsOV^@VBTq3h zO3h7VaE4lM(Q8HRpM$T||>ND+J zP`Sv)t|%l(KAC2Y9L305$u!HIA^QXD&$t+-!kmvV9sYGZmPo=g literal 0 HcmV?d00001 diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..a8e28664ad6e3a9e8e1488663fb5b1a13b7c301f GIT binary patch literal 23542 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 literal 0 HcmV?d00001 diff --git a/bin/main/edu/ohio/ais/rundeck/HttpDescription.class b/bin/main/edu/ohio/ais/rundeck/HttpDescription.class new file mode 100644 index 0000000000000000000000000000000000000000..6bf5f78eb826a2bf7da20e6e17e1000eabc8e8c7 GIT binary patch literal 6400 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 literal 0 HcmV?d00001 diff --git a/bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class b/bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..1ddca830934094a4ad2f28a6aa36782f84ae888c GIT binary patch literal 10435 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 OlBF=uqZgjwqtD5y%qxGTsuJ(%N`nuU< zSTP60E;EeQ8rz%s_PV)UBZMdK{{tdju^ijA!&L^QP;4`#s$NH=F|2`@>zF{6VWiRz znJ$=DVw$0EyWMiV*v?RFPRB4tnMCE}i4*}<(=n7`;V}bGNI}0@|GGacKP%ktaj65u($#+nwx6nqFU*!GP8`XV) A)c^nh literal 0 HcmV?d00001 diff --git a/bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class b/bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class new file mode 100644 index 0000000000000000000000000000000000000000..c4febe34e57685add831fbbeae33c7093ac8b3db GIT binary patch literal 7467 zcmb7J349dSdH+92XqMFgVr3xs${J%VRuXG4K0pK`gaiU^aL#PVo&kQP=u>zP>& z$GO}zvD2ij+q8|{)FqBvnl_Cc+bkf`kT{LwCU%^r>6x~1nxseCq<8GJHO~KgGb^p6 zHBk7m^X47j`;Py24PQAw^*I1A3JELeTCYbGp>;6O*@mxjPK;Eu^AeLTyZ>`_mX?{ zv)36Px7~JyrMn0FQ=^^zsiCga(CE;y_8B*)+ z>FV7vx^ti-WF&&63ejdE_dAo^9|wvOSUUHt<+`#XkusEUEE+lPAwx_0pD3EwXS z3Rk$c*Kx;_R>4Y7*hyJPrnM=OyQVi$Nm0?lUd#1tSD{VY;eh4&wtI9kmpo{t4{!WV8DIx*I9_qpjhJ$w6wQ1LdS_wm12kUz;2_ma^ir(ai*iI{^E1xMi z**xhr9=38>vSH6mH3TXg3N#qmLI(0#e=9N7ymmyPu9HTJ;(Dw#&`dMW03_6>i3C~{ z3{o!I{Rb45H}|ZqqV|QLVoWT;{*-h`Dh zN|{)IdKv9CaW&pdaQPEiPvQDYv#Ge5W~R$^9lF_u=6RZty9aEqz=&nHSE4YCW(^p@ zTMgWyaOGU9R30_45BupopV?(%6n7K% zBt2kT5;P`U%Omm2NPNb*D)=2Ukp>O0kVm@me%3!$of8otSSJJyV8Q@XLVPYKI->;J zhM8PE6ImQoi1)f$qn!lWQSXJQhJz!AbWGvwM7=q=6jmWX_#kte-phiar@!lH+SYQJ_>iy`C98eR zi`KZ^fS<=N8u$f;=1VOO#7!U4al8tLBQezAer@Q$%?QQ|yCL0N5}(4Q8(%>YK+A&b zXGQN_s&{BGIg+J!a7d$S%P z`AOVl;P+Yn%@t@efIxD)?;Ytq&g++Hi|M)3qbW8g_9;!Bfhx~MSmlpw4wPjXQ_ zf@e&el!*r4>2;3SZYP6T6raK=$)cy}y;a1k2CD{4;j;$LvWU~T)qYPaVJ%78akKa8vRc6MH4|3`u=%=) zs{}T65&-@Le`?^HY#FLKblP!k-8Oh)cKhayCjLxdRv(nxG5YoiVev0b{1v{%tU?w8 zE)<5Vh+oB4^W6Qy3W?xvczp*8^@1P4w^`#dF8X%fZ<8X`z;~F*=jtY;$W2Ul$zeCw z6*LRo>>Ywc6vfNMhY0R`sCHE};-o!uP9|IYKQwn_-$!>4JNp;w0WB))3 zrGKtosm;-hn4EYBvB!ephxk_mKVqBo2G`1gPTg*p_&5AJvzvX?P8X#x?4K{lg>Rb= zWT9S;bh>)^PZR%z|E?^2r25yHv`2b?S4_Mr>k&2+I+jF<(*H3r2zuV5_&>47Ls6V3 zpLl&%v#{N9a<-Lcv!Ilumi?6>E?lHGm8vyWom#*GDGcAdMmH>Sr~-@SBhsSO7cAGB zWRh(RHq5|)e7NQCpS&1s=NN|<&hA7A*038{Kj)q;^GMGMw(VQn4YlavA!#-PqKqXb zK8Do{1!}2@Ya{^F<3vPVMvLt18j4ZNd|N>c1eRw!Rx3?)xx~wQ%5CMmh`N%AK_|kv zYp3n(VLKCN2OhWL!I`+@PuOnUpRn@rqPH%JP(TR2=KPy2eziq}DRW z0<&r?MAT{)87ccn?pWMP-&4%Gyh`_<@vIm3SZwCvdB=|*7K^Tns5Nw%loPzN)rs3- zmm0T^GVFV;aqm#JP+-SW-omg_?)v&QXQwryzlw0Rp<+{Q&ioeHW}(xh1D|!A^BpDo(v2T6q(&t+IQSz ztR&QCg^yM`NVq#7xXa3Ca<;d+*KrON3+)wt6q>bSX4XOd8KGh^+)Y*1>ebB=#a6gZZH}vmx{Y#iG@O@qkqV5{fjt61s&t|>s4Ml(4px_8w4AH* z_yO0M6l$IH28th1U37O{>d5R)ws@g&=bf~C+0jERZMQ9#=;zxWns?Clec8<3yNn*; zj>HM|o_wCwP0sQ>o1tdmbU{SR&o1~3wU@bhp53Zh!cYSg@WNZ^%7NKfW2IQg_Sy2W z#A7(1-0VG;@E_Z1{;p&^h;Vix$2ExZ-K=qMvNy^^+y7elkSqCyQM^8~A%IR`Z7I_;w4Q@~3GjoPos6I zdPon}eTLIDxPiY>K7ln9;d-psv*57}xG^O1A&M+QClaTyF>w|*?>mKCPhwNzG}=q( zC}BqlJ5ORyqV**D5-lguKSMh~>OdF8+DJuoqX|1H<}QlZL&3T!${sS?hqXxQyW_!4 zxE%vL$2;Ylg%%>A6<$M1Ond=n>RRrut|`11=sST;ZLy!#Yd3I>qhRd=dhMzdiT2f!$OC8a z;aarHXbQi?#nvaui;1`6ZuW?^TA%A^1mI52-o*m)ZZyN9Y-8x)Cxt#_xObd06L9zy z;9lgk+#4w!<(QWHKKwF1qA3^fewws~l(ykl@Th@<9{eNJgp`C_&C;Z zc@yWS&AGWQv9d1K6c~tXpTHGo@#wyaqX}B)C#Ueg=Mr_N@mfjM2psFQX;K6raF|jb zrJvo)w(uR;%r6bM;avpdyJ@WV&^Yf!9{1B2@8sY2;Q<=pWB33*&CzG6xpVj+#riP5 z%_d*mB{1E~q3Pmmi|VO(#j|OKxP{dG19+=8XDw+g)<&#T;ua=%1^XK~5@Rkw&3T+N zFl8u{MqEK7F`3OW-h(tBjYrq6;UQpQqIO2gN{9Xgt^K&>Q10QzGPtDHt4312K)pyz zdzCtW?8`6`CAB#5jB0!i-{OpbLp4q*etXg2Xi`nu_NuXL`^To#vPyej+`60QTX$t$ zlUg2Fck==+zqoQiNxkV2*k^HkUz57xl)CC%g|VN)I*pTSG=^JBD*iAQ2V1X|ts=t- zG`}H4M6M=vot8*&61eaI9fO}@Y=4^0Tw=^VMWvrX3mfJQbc=07!cO+cyE(Uqh#0{a zaFETtj<4eLc!9rP!%O%&zCq{s0ltY>*dq#lwgx&cTL-VI z>s2!?wuj$K0{o0H6i7IzCH>U_et63Yof#Hr+^|M%cnu#3P?MYe~etXd< z3dB-dN0b!UmeuW)QM6sKI~LB^ zmXXgUJtwZs$+4%T)?phHlRUhJc9X{SJM8LY?u6(rsx1^YKd%C#eePIRj{fENW6qd2i#u-BZRT@9lLy$W8U zJ8QZnP8EHKkVacr5NNBX{3`Kg%=`@_Te39UF!M6rH6bzpl$xtXXj-!uiOoY&j)_`v zgiF!lae6rn0__{~X01@konsz(R9Pn&9&yze3iNpRB#t_aW5nM)V{4h46kJZ#5Q9-o zxDO+#jJcdxu+5w{Un`-EY3T`lRnIUH&3s~_vO8hsZGF`)CzU5lw;-fonX79X>XP8T z|3CECF}$9~qFXVw4oU^D2#jpm!jt+9t&}Uf*lj=|3?UeTz_5xWM%Y7S3~bZVvifwn zgapq17hiZwJ~}rpHIAux9dEE`%Er>9avKrMQD zuE5w<#JKLR<1*%kizrV-zPWJ)ZwhoewaIorzGmxAKRQ>k3njYJ(zWFfCJ_wdEYb>6 z0!OwGu_vuiF@clLXGOcWN;#DMR1tU@6BZN!1qTsSX_w#5~T*aKL)~WEk%~{k(n>S-D zQ>ArVt%rg9c5z~WN&Pf(K9l<85IklOTxBU zO#u$=h?DV?$f{VBL%T7PGm9MKOW@qUS(#!^iOeoq=87ELDwe^1-z8HgzccX$c z{@Uj26`w$t%e7f`vY-P_i*b@Gv3YZ-B(pbR$Si1in+I6cMNGg`^w5k`EvF25MQd~0 zUG4UFNcxMH2inN%BjD$b*E>EHz9qN{u8sZo5cruJA3}V}&pgvI9j8h*qI%Y93XwnIsB(7F+ zNV6Kqt6~DD=pt#L>wigq*lX6Hf+5!|j#YkOG)0EYO=KyGw3xb&Nt$$e*x$d7GXewa znD${EoOcg#ZMdo`S8uZ1@*7s literal 0 HcmV?d00001 diff --git a/bin/test/README.md b/bin/test/README.md new file mode 100644 index 0000000..e69de29 diff --git a/bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class b/bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class new file mode 100644 index 0000000000000000000000000000000000000000..5ebebfa7d6dea3992b138912b7b7167c1c07c5fc GIT binary patch literal 2715 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 AS^xk5 literal 0 HcmV?d00001 diff --git a/bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class b/bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class new file mode 100644 index 0000000000000000000000000000000000000000..35317aade37215adc1158573c48ec76bf81df949 GIT binary patch literal 9401 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 literal 0 HcmV?d00001 diff --git a/build.gradle b/build.gradle index b782475..a2810a4 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,8 @@ plugins { apply plugin: 'java' -sourceCompatibility = 1.11 +sourceCompatibility = 17 +targetCompatibility = 17 ext.rundeckPluginVersion = '1.2' ext.pluginClassNames='edu.ohio.ais.rundeck.HttpWorkflowStepPlugin,edu.ohio.ais.rundeck.HttpWorkflowNodeStepPlugin' ext.pluginName = 'Rundeck Http Step' @@ -21,7 +22,8 @@ scmVersion { } } project.version = scmVersion.version - +// Override version for Grails 7 upgrade +project.version = '1.1.9-grails7-upgrade-test' repositories { mavenLocal() @@ -39,7 +41,7 @@ configurations{ } dependencies { - implementation 'org.rundeck:rundeck-core:5.14.0-rc1-20250722' + implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 implementation 'org.apache.commons:commons-lang3:3.18.0' @@ -48,7 +50,7 @@ dependencies { pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' testImplementation group: 'com.github.tomakehurst', name: 'wiremock-standalone', version:'2.23.2' - testImplementation group: 'junit', name: 'junit', version:'4.13.1' + testImplementation group: 'junit', name: 'junit', version:'4.13.2' testImplementation ( 'org.mockito:mockito-all:1.9.5', @@ -74,6 +76,18 @@ task copyToLib(type: Copy) { } +test { + useJUnit() + + // Java 17+ module access for reflection/mocking + jvmArgs = [ + '--add-opens=java.base/java.lang=ALL-UNNAMED', + '--add-opens=java.base/java.util=ALL-UNNAMED', + '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED', + '--add-opens=java.base/java.net=ALL-UNNAMED' + ] +} + jar { from "$buildDir/output" manifest { From 64b52976fdf2f4a1380ec1d35703045d7ec41bf4 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Sun, 4 Jan 2026 21:04:50 +0000 Subject: [PATCH 02/26] Update GitHub workflow to use Java 17 for Grails 7 compatibility --- .github/workflows/gradle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index efd8b20..0fb6b53 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -14,10 +14,10 @@ jobs: - name: Get Fetch Tags run: git -c protocol.version=2 fetch --tags --progress --no-recurse-submodules origin if: "!contains(github.ref, 'refs/tags')" - - name: Set up JDK 1.8 + - name: Set up JDK 17.8 uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle From f2b991580eeb44970eba314c034391d2cc7792e1 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Sun, 4 Jan 2026 21:10:54 +0000 Subject: [PATCH 03/26] Update rundeck-core dependency to 6.0.0-SNAPSHOT for Grails 7 compatibility --- build.gradle | 8 -------- 1 file changed, 8 deletions(-) diff --git a/build.gradle b/build.gradle index a2810a4..eb3422f 100644 --- a/build.gradle +++ b/build.gradle @@ -14,14 +14,6 @@ ext.pluginName = 'Rundeck Http Step' ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' -scmVersion { - ignoreUncommittedChanges = true - tag { - prefix = '' - versionSeparator = '' - } -} -project.version = scmVersion.version // Override version for Grails 7 upgrade project.version = '1.1.9-grails7-upgrade-test' From 1486f3832c15d1e70c1d673268fc72877c528f17 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 13:44:31 -0800 Subject: [PATCH 04/26] Add Central Portal Snapshots repository for rundeck-core:6.0.0-SNAPSHOT - OSSRH sunset on June 30, 2025, migrated to Central Portal - Repository: https://central.sonatype.com/repository/maven-snapshots/ - Uses includeGroup('org.rundeck') to resolve all org.rundeck modules - Resolves rundeck-core and its transitive dependencies - Tested successfully in SSHJ plugin CI build - Reference: https://central.sonatype.org/publish/publish-portal-upload/#consuming--snapshot-releases-for-your-project --- build.gradle | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index eb3422f..576a0d2 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,15 @@ project.version = '1.1.9-grails7-upgrade-test' repositories { mavenLocal() + maven { + name = 'Central Portal Snapshots' + url = 'https://central.sonatype.com/repository/maven-snapshots/' + + // Only search this repository for org.rundeck snapshots + content { + includeGroup('org.rundeck') + } + } mavenCentral() } @@ -110,4 +119,4 @@ publishing { from components.java } } -} \ No newline at end of file +} From f332ca63f40efa18804b6b5715d8fe921a6b3e6c Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 14:12:02 -0800 Subject: [PATCH 05/26] Prepare http-step for JitPack with Java 17 and Central Portal Snapshots - Add jitpack.yml to specify Java 17 for JitPack builds - Bump version to 1.1.10-grails7-upgrade-test - JitPack will now build with: - Java 17 (from jitpack.yml) - rundeck-core:6.0.0-SNAPSHOT from Central Portal Snapshots - Tested successfully with sshj-plugin v0.1.23 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 576a0d2..1da7d84 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.9-grails7-upgrade-test' +project.version = '1.1.10-grails7-upgrade-test' repositories { mavenLocal() From ffb0cfe4e6d3252d65968ccbb5250b02860dfbad Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 14:25:58 -0800 Subject: [PATCH 06/26] Add Central Portal Snapshots repository for rundeck-core:6.0.0-SNAPSHOT resolution - Required for local builds and JitPack - Resolves org.rundeck dependencies from Central Portal (OSSRH sunset) --- build.gradle | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build.gradle b/build.gradle index 1da7d84..fe0b638 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,13 @@ project.version = '1.1.10-grails7-upgrade-test' repositories { mavenLocal() + maven { + name = 'Central Portal Snapshots' + url = 'https://central.sonatype.com/repository/maven-snapshots/' + content { + includeGroup('org.rundeck') + } + } maven { name = 'Central Portal Snapshots' url = 'https://central.sonatype.com/repository/maven-snapshots/' From 65669cb695b06c8520c194008b034af16348af56 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 14:30:47 -0800 Subject: [PATCH 07/26] Bump version to 1.1.11-grails7-upgrade-test - Previous tag v1.1.10-grails7-upgrade-test was missing Central Portal Snapshots repo - This version includes all required dependencies for JitPack build --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index fe0b638..2326e03 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.10-grails7-upgrade-test' +project.version = '1.1.11-grails7-upgrade-test' repositories { mavenLocal() From 5b91557ce05c3e1fc4eb2a42edb96987722eed2d Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 15:06:47 -0800 Subject: [PATCH 08/26] Fix jitpack.yml to use Java 17 instead of Java 11 JitPack was failing because jitpack.yml specified openjdk11, but rundeck-core:6.0.0-SNAPSHOT requires Java 17. This commit updates jitpack.yml to use openjdk17. --- jitpack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jitpack.yml b/jitpack.yml index 46c8529..efde7bf 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,2 +1,2 @@ jdk: - - openjdk11 \ No newline at end of file + - openjdk17 From b5feebc16a202661a4eeed1e3bf9cf5d7be99bb3 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Tue, 6 Jan 2026 15:08:07 -0800 Subject: [PATCH 09/26] Bump version to 1.1.12-grails7-upgrade-test --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2326e03..f8f548d 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.11-grails7-upgrade-test' +project.version = '1.1.12-grails7-upgrade-test' repositories { mavenLocal() From a3be07babb014a3db223437e81cf9d22ca468e4b Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 10:08:58 -0800 Subject: [PATCH 10/26] Fix commons-lang3 version conflict - Change commons-lang3 from 3.18.0 to 3.17.0 to match Spring Boot BOM 3.5.8 - Move commons-lang3 to pluginLibs configuration for proper packaging - Bump version to 1.1.13-grails7-upgrade-test --- build.gradle | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index f8f548d..f6f4366 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.12-grails7-upgrade-test' +project.version = '1.1.13-grails7-upgrade-test' repositories { mavenLocal() @@ -52,7 +52,8 @@ dependencies { implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 - implementation 'org.apache.commons:commons-lang3:3.18.0' + // Version 3.17.0 matches Spring Boot BOM 3.5.8 + pluginLibs 'org.apache.commons:commons-lang3:3.17.0' pluginLibs group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' @@ -70,8 +71,9 @@ dependencies { configurations.all { resolutionStrategy { // Replace vulnerable commons-lang with secure commons-lang3 + // Version 3.17.0 matches Spring Boot BOM 3.5.8 dependencySubstitution { - substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.18.0') + substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.17.0') } } } From 95365bb37ec0234e89f95954df13320dca3b4b25 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 10:53:28 -0800 Subject: [PATCH 11/26] Standardize on commons-lang3:3.18.0 - Change from 3.17.0 to 3.18.0 to match other plugins - Bump version to 1.1.14-grails7-upgrade-test --- build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index f6f4366..279e95f 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.13-grails7-upgrade-test' +project.version = '1.1.14-grails7-upgrade-test' repositories { mavenLocal() @@ -52,8 +52,8 @@ dependencies { implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 - // Version 3.17.0 matches Spring Boot BOM 3.5.8 - pluginLibs 'org.apache.commons:commons-lang3:3.17.0' + // Standardized on 3.18.0 across all plugins + pluginLibs 'org.apache.commons:commons-lang3:3.18.0' pluginLibs group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' @@ -71,9 +71,9 @@ dependencies { configurations.all { resolutionStrategy { // Replace vulnerable commons-lang with secure commons-lang3 - // Version 3.17.0 matches Spring Boot BOM 3.5.8 + // Standardized on 3.18.0 across all plugins dependencySubstitution { - substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.17.0') + substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.18.0') } } } From 2708fd31ac2dd24c828c6d765783205c6b641180 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 12:01:00 -0800 Subject: [PATCH 12/26] Downgrade commons-lang3 to 3.17.0 for Grails 7 compatibility - Change from 3.18.0 to 3.17.0 - Required for Grails 7 / Spring Boot compatibility - Bump version to 1.1.15-grails7-upgrade-test --- build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 279e95f..5006d1a 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.14-grails7-upgrade-test' +project.version = '1.1.15-grails7-upgrade-test' repositories { mavenLocal() @@ -52,8 +52,8 @@ dependencies { implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 - // Standardized on 3.18.0 across all plugins - pluginLibs 'org.apache.commons:commons-lang3:3.18.0' + // Version 3.17.0 required for Grails 7 / Spring Boot compatibility + pluginLibs 'org.apache.commons:commons-lang3:3.17.0' pluginLibs group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' @@ -71,9 +71,9 @@ dependencies { configurations.all { resolutionStrategy { // Replace vulnerable commons-lang with secure commons-lang3 - // Standardized on 3.18.0 across all plugins + // Version 3.17.0 required for Grails 7 / Spring Boot compatibility dependencySubstitution { - substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.18.0') + substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.17.0') } } } From fbc58019794a0bb214b0589e885e1c486ebdc71f Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 12:32:34 -0800 Subject: [PATCH 13/26] Bump version to 1.1.16 due to JitPack build timeout - JitPack had infrastructure timeout on 1.1.15 - No code changes, just version bump to bypass JitPack cache --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5006d1a..aeece56 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.15-grails7-upgrade-test' +project.version = '1.1.16-grails7-upgrade-test' repositories { mavenLocal() From cad54193071384abca83113050a998697d6462e7 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 15:19:13 -0800 Subject: [PATCH 14/26] Bump version to 1.1.17-grails7-upgrade-test JitPack failed to publish artifacts for 1.1.16 (build succeeded but modules array empty). Bumping version to trigger fresh build attempt. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index aeece56..9cd006e 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.16-grails7-upgrade-test' +project.version = '1.1.17-grails7-upgrade-test' repositories { mavenLocal() From bfbf9b7e14d27d38e58916e8fecdad4e55ae0caa Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Wed, 7 Jan 2026 15:49:23 -0800 Subject: [PATCH 15/26] Modernize build.gradle and bump to 1.1.18-grails7-upgrade-test - Removed copyToLib task (old pattern) - Updated jar task to directly bundle dependencies using into('lib') - Simplified build process to match modern Gradle best practices - Fixed Source-Link URL to point to correct repository - All dependencies still bundled correctly in lib/ directory - All Rundeck plugin manifest attributes preserved This modernization should resolve JitPack publication issues seen in 1.1.15-1.1.17. --- build.gradle | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 9cd006e..7f16a7b 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ ext.pluginDescription = 'A workflow plugin that makes HTTP requests' group = 'com.github.rundeck-plugins' // Override version for Grails 7 upgrade -project.version = '1.1.17-grails7-upgrade-test' +project.version = '1.1.18-grails7-upgrade-test' repositories { mavenLocal() @@ -79,13 +79,6 @@ configurations.all { } -// task to copy plugin libs to output/lib dir -task copyToLib(type: Copy) { - into "$buildDir/output/lib" - from configurations.pluginLibs -} - - test { useJUnit() @@ -99,7 +92,11 @@ test { } jar { - from "$buildDir/output" + // Include plugin dependencies in lib/ directory + into('lib') { + from configurations.pluginLibs + } + manifest { def libList = configurations.pluginLibs.collect{'lib/'+it.name}.join(' ') @@ -110,15 +107,12 @@ jar { attributes 'Rundeck-Plugin-Rundeck-Compatibility-Version': '3.x' attributes 'Rundeck-Plugin-Tags': 'java,WorkflowStep' attributes 'Rundeck-Plugin-License': 'Apache 2.0' - attributes 'Rundeck-Plugin-Source-Link': 'https://github.com/rundeck-plugins/http-notification' + attributes 'Rundeck-Plugin-Source-Link': 'https://github.com/rundeck-plugins/http-step' attributes 'Rundeck-Plugin-Target-Host-Compatibility': 'all' attributes 'Rundeck-Plugin-Version': rundeckPluginVersion attributes 'Rundeck-Plugin-Archive': 'true' attributes 'Rundeck-Plugin-Libs': "${libList}" - } - dependsOn(copyToLib) - } publishing { From e8f6ba052da74e0515501be154befae4c5619126 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Thu, 8 Jan 2026 15:40:44 -0800 Subject: [PATCH 16/26] Migrate to PackageCloud: restore Axion, change groupId to com.rundeck.plugins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Changed groupId: com.github.rundeck-plugins → com.rundeck.plugins - Added Axion scmVersion with prefix='' (no 'v' prefix) - Removed hardcoded version (1.1.18-grails7-upgrade-test) - Added PackageCloud publishing configuration - Version now managed dynamically from git tags See: .temp/PLUGIN_TAGGING_ARCHITECTURE.md and PACKAGECLOUD_MIGRATION_PLAN.md --- build.gradle | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 7f16a7b..46e2879 100644 --- a/build.gradle +++ b/build.gradle @@ -12,10 +12,17 @@ ext.rundeckPluginVersion = '1.2' ext.pluginClassNames='edu.ohio.ais.rundeck.HttpWorkflowStepPlugin,edu.ohio.ais.rundeck.HttpWorkflowNodeStepPlugin' ext.pluginName = 'Rundeck Http Step' ext.pluginDescription = 'A workflow plugin that makes HTTP requests' -group = 'com.github.rundeck-plugins' +group = 'com.rundeck.plugins' -// Override version for Grails 7 upgrade -project.version = '1.1.18-grails7-upgrade-test' +scmVersion { + ignoreUncommittedChanges = false + tag { + prefix = '' // NO "v" prefix - see PLUGIN_TAGGING_ARCHITECTURE.md + versionSeparator = '' + } +} + +version = scmVersion.version // Dynamic version from git tag repositories { mavenLocal() @@ -118,8 +125,24 @@ jar { publishing { publications { maven(MavenPublication) { + groupId = 'com.rundeck.plugins' artifactId = 'http-step' + version = project.version from components.java } } + + repositories { + maven { + name = "PackageCloudTest" + url = uri("https://packagecloud.io/pagerduty/rundeckpro-test/maven2") + authentication { + header(HttpHeaderAuthentication) + } + credentials(HttpHeaderCredentials) { + name = "Authorization" + value = "Bearer " + (System.getenv("PKGCLD_WRITE_TOKEN") ?: project.findProperty("pkgcldWriteToken")) + } + } + } } From 1a0d7f265bdd9064276f3a9bb68299861b0f9c8b Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 16:00:57 -0700 Subject: [PATCH 17/26] Fix CVE-2025-48924: Update commons-lang3 to 3.18.0 Security fix: - commons-lang3 3.17.0 -> 3.18.0 (fixes StackOverflowError in ClassUtils.getClass) Merged origin/master (already up to date). --- .../edu/ohio/ais/rundeck/HttpBuilder$1.class | Bin 968 -> 0 bytes .../ohio/ais/rundeck/HttpBuilder$Reason.class | Bin 1327 -> 0 bytes bin/main/edu/ohio/ais/rundeck/HttpBuilder.class | Bin 23542 -> 0 bytes .../edu/ohio/ais/rundeck/HttpDescription.class | Bin 6400 -> 0 bytes .../rundeck/HttpWorkflowNodeStepPlugin.class | Bin 10435 -> 0 bytes .../ais/rundeck/HttpWorkflowStepPlugin.class | Bin 9265 -> 0 bytes .../rundeck/util/OAuthClient$GrantType.class | Bin 1195 -> 0 bytes .../util/OAuthClient$OAuthException.class | Bin 517 -> 0 bytes .../edu/ohio/ais/rundeck/util/OAuthClient.class | Bin 7467 -> 0 bytes .../ais/rundeck/util/SecretBundleUtil.class | Bin 3474 -> 0 bytes bin/test/README.md | 0 .../edu/ohio/ais/rundeck/HttpBuilderTest.class | Bin 2715 -> 0 bytes .../HttpWorkflowNodeStepPluginTest.class | Bin 15576 -> 0 bytes .../rundeck/HttpWorkflowStepPluginTest.class | Bin 15783 -> 0 bytes .../util/OAuthClientTest$TestLogger.class | Bin 1101 -> 0 bytes .../ohio/ais/rundeck/util/OAuthClientTest.class | Bin 9401 -> 0 bytes build.gradle | 8 ++++---- 17 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpBuilder.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpDescription.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/HttpWorkflowStepPlugin.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient$GrantType.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient$OAuthException.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class delete mode 100644 bin/main/edu/ohio/ais/rundeck/util/SecretBundleUtil.class delete mode 100644 bin/test/README.md delete mode 100644 bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class delete mode 100644 bin/test/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPluginTest.class delete mode 100644 bin/test/edu/ohio/ais/rundeck/HttpWorkflowStepPluginTest.class delete mode 100644 bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest$TestLogger.class delete mode 100644 bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder$1.class deleted file mode 100644 index ef49a999e4437a7c81fbb17bf7fffdef53036f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 968 zcma)4+invv5Is(oZW9(7!u_6>q)m#1TL~T@fKa2NBBkY_RfXWm@w$o2)*G$8sQo8i zctA)z@Bw@jV!WwnxkzCpTQjp~&K%Fo_a9%s0eFUXh!VqsigTWhbjpRcJj+e24nHs~bP54fhTes~p z;neVmVaAQLZLUzg{mm%n-v8sUKT!av_Rg^Iop@JGix$OaS zeQnfMelSqkju<40q25oWNOnc0y?-1GyiA7X)T+%@l3CHVc&3UOp0wZfixycW^Gv%V zE>-6En@1~;dt~T6EvXgV38rWxHAkCaxAT^vx_&6t*y+^R5Z4)&{=syLpVdV#Q!a;+GUKyjZULvej^s3n{ zW!*+<9U8O}WjbfTYBj$ZwD~1E6;vsDmaK>5`$%>9{%1tXUvU0Yfw@5U3}Jvh)ai~2 zyNZjrL>|LsT%o+HWC!G3E4W^eRi;QO_~>t(aOi@gG5LGU;So1*v*0b^7H*Rt;7*Zw Xmy~p7HgU diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder$Reason.class deleted file mode 100644 index 0f8e7686f340c7c64dae115f315216a511e05923..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1327 zcmbtTT~pIQ6g^7{X-kAs5#&QfMQIBXtKv%wq6`d-1sn_2j!)Zkfk2ut`2d;mM=3nO z=*al&k8->l3eAgS9W#?;@7;UuJ@@X}pTEAI1DM5(iVlVeQ4e%y$8>aVdb%6fbz$u3 z%f7$=Dlo0OaL3;Y?m4!K7(>r4Kj6B>?QMP04jL-D7+x4oL$CXe#cM6R;kZHljhGp8OKgXbCvK5Bdf>Rf9s7WyNX-MNbLszjGGLR{?CQVs}wkr(3 zuoCI<(nU=&s3D>CEr!`BtT~7Fk59Il(=dTahM8!l1&e!LAyWP-b*mMrKN3K)>;$eM zmP|RyR7AGZGL)Juo7*<`No@?DA{iyT*tS0A3Z?&4IZ@SCY+JZtZ^BdYgkkJ&LZ`#O zyd?28;rYvs=g;R!P71x9Q09lE*Z}&I&VbagR2kjw7+D&wQB)6E6|&_s{SB;|?p02a zIzfME48%fXu=6`@DaYt9S7XN*ET3TL3n4l%Lf;;$2fU+v?=ei-M#CMsOV^@VBTq3h zO3h7VaE4lM(Q8HRpM$T||>ND+J zP`Sv)t|%l(KAC2Y9L305$u!HIA^QXD&$t+-!kmvV9sYGZmPo=g diff --git a/bin/main/edu/ohio/ais/rundeck/HttpBuilder.class b/bin/main/edu/ohio/ais/rundeck/HttpBuilder.class deleted file mode 100644 index a8e28664ad6e3a9e8e1488663fb5b1a13b7c301f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23542 zcmch934B~t_5V5dP3BD|uiK;x(**_!bV=GkfdZ3K+NNn6=n|TwB@}3<$xAXcnF%wK zF6;_|KNJK}q!p0WvMLlvmndbkAfh0msHorq`crWMej-cF?|bfhZ)P%?F8K5R?+0e? z+;{J}=brtXdtaXa*RIEj=oI5}lN3|LZtbZ`cEpoav3R;F)stwoTh>)A%4E9d^~5_{ z?UYGArs3zs*2k(kV~O^vWoyr~TQW?gbDJ6$tzNopX)RM|aqf9TCKXS#S2GQ%NhZ>n zSR%6`*4bkRsFcaKG?}oOf_mz_xeawS0kW7%=Ec(S7N#=Yzf3-71ZWu6ST?sO(-E05 z{TNI-bIIb>3zjWkGPf~6AtqyES0|>N*05}8wtEzoI4_+{Fje% z`Kn?VmUYE8&dp@(uI@}4WAcX7B{Fuqox(1R&SX2&)Wt2yuBz5dvNN_eN2Tu0p7wYm zT~)8Y7bn}DDONHDtZO>sc0%9|bKv%5;+<7XV%>mQ+7NF~#4BL{HMfg7NsF=}Bgs5uz}>z6g4 zH5Fa;O=whtEA?|5YZe7)I+K5X?c&n?}Oe1ol zozFTQ737tc_{(C{M<)kq0WC6V zA=4{;sS=%l$&Scsa zb;-eioCIq(w%FZTNKI;GI$Fzb+HUDd#WS0#7TO6r73*wpe`g1q1eH0pm=LriQ+AcT z5fcPx)rMqhU0Y{zLsdFscc-fw@R(LLw>LFppk&p91X0k} zv%xIPZ{JizQHpM{+N7@((TtX4B2gt1mL`+ki<0R~BGzSV8I0ShAl)c_FHT!5`YPQF zO2b@&c!lGb&Tw|Hu_|F_G`PYcMbOMQT!WMna(p%2YSGu|HbfL_C8T5;?;8KyGC59a zCA`C;JLxWjkPeQ^}2+8thC4LJlpy2a9(P z?79z9)sz+;&<`TOO%IkvB$3V zC0d;=$b?8NWk*u>`91NJ-5SXxBcMpcAxQ)nZQK;`h*C;@^lg*A#Z*&Fu@CG_7R2J6 zh%<&1AfGFAYq-gk4h--?_^xs%yz#gi_ zI6cF3NTG2OHEx!94(eD>6dWn9BwIGt3d0J)mh21CCW?BB(^fyL!4J37tAe zl5LTgTbP(GcJ~8|J`{6VTDQ!#K%#gbTeOB^LHZZ8lKLS{g>=jprXu2LF*8a)rjr67 zWNx4Q38^vI=@w9Lz^cpbbT`z?t`4vdlH83#QO4_&LPZ(-IbgDhazf!w4hF2nr5uFl z!Iwh%GCgUjMKB#&L~nD?;Uo;UEFQu`!MjY-F<@{^Zj9m-yFy!|Y>dT+h;bT;y)5g=boXQyBvam` z0FOnrY5?^blMCXVw#nlW!)t)3=Sfe14~0)@L#vDGYqJqvtVEuQf+ANSz4D$3mQH_=r}8v` zih|P!SC`#wz|jVIG9M#PkHy||Po1gm^W!W&UT`YeAPdQinHHnCgq{}3sLS|dt~NOe zn^!1bIf1ZvmZ)(~ibOI4jFOs_a^+WggiCYa_;@aiWP#<$w@@xq^QoA}=NgOWb1l<2 z)VAWSNCZ3{%M!~{jVM5EfHoXJi0TFl(UcXXypZcmUWDYPXfC7$Ag_RE@o5xhn$XZV zx3Q^VwG?5OEw4Lku9WyzFRwkLscw1g{4!q5OHE!$7sYM1#ml(fDN8jiuR|Q{ zX_w>~=z$haX z-Q5yW>&o`@0LP&JZhcwO23Y@;-3B4*h&XlaOmdx_(BVrawJ8#72cFZXV;)N30fgZx z$>9PF6Bg1H8vFBB1p!CgVf$axm86BQX1Pk2H& zx245Sr}c6&qRZlhSVyT-4tUhfQ0DWYk6M}a>e+&k#c7!n#GEAn7HhXdR6?(p@_OEA zGK6|kQK=N;=w;|`qQIN@0w|v*SvEnKa=?83NN2hv0eq3g7c&YerBZdSiGj9K8O@`I zRy1+Z0}OJmS48SEi$BFks|;A<0-C#`ln2lguEAXaz5>=o%1X&p`~sc!gvd{?i)vkE z@n;#8kW$3&i|iOqUqGjPJYCVxgX-Cr6(Pg`h*z0EZ_!`rZvnoRY2tw;czTep6EZdsO%AqqH5`;x_97Cw~8!Adp;Y2j3eN@d*^zDV5nOab>*i*FW@8m4`ejszQ1 zu@(^BbfcbPk#B*E7fHwq`k)eCM1-biiJ4{|C}Jrdfk4xf+OI;a9cp^622Zs60O=3O zJ{jo2q!t@%$-q#EnPy^Gv|%1f(gmh~Qn8#Gfu+v&v>Ea{ZSc0Z6c?IitS44rR36*2 z48k)d;ym}?NM;9Acmc>=V4wt`->_u`R}Qnqt$o#-WkNcQV5HX*DQy|D%A`|BSTGT8 zF)8)14LYNdcnPMg&@~?*UUFDdUB-RzXrmz?5)Fog#ARBh9%XwVJ&++pnf44|L zlEc8_@9_(cCC!p)jORavS2?KFLH-W^K%%4RuJ?4 z7mIiBPDmbG61e=`;&=F6m_#qoK`@!`F={$usRl_k6D@FVXPJ!HcAV7j+LOulPP?id zwYaK<_;9^$kl#bCnBU`nTKoZjCuZUssu~00e ztYZtooCZ|trBVig`IlhwFQqJHD4!H8q+bqp2FV@BS`1Kar`-keRtJ?|1x#fkp(-3E zTenoHLgMJpBxQBIK;bZX;6W=E%LB)urWyie7v8rfyN*Av3W}G_-Ec-^sbOk3=;@qK z<&hLYH)yoadB8rTMw+S|w9E~fpKR%oy)CjkQ8l*IC^Z^pO;e~52O`A_hxw~`0IE%O z2+9rnbULT#(C%*dK4vv7#THIMUby4 z#0g^@qwfsO;)UX>ng|KW1((ZvpmSYz*7t=_etbQsj!=?}DkOeWi%3SEtYlq~UVjW* z;JKrHZlZu6qGn7-4zeH4xO{bojR*1rRQuxR~y5 zbBB%F5BIT3tIKP!DQ{qwP-4c4^9O549xK777f!C+|8c$?{kr#ABs$R6ZDYnwXuX=j zfFRlR1xy$J2OuA0&8~PqE92vPw z>r@xD zg$dz>s@YO!N$MqcY-&)elAWLsAdk+r)HzaCD#xQj96~e<`H@`%14`>Y3YbKDG@3msAQnj5u)MrdWc5Q z>rxKZx9IY$4hmoUMX9*yTZIDz^NYD4vCjE-eH=JdUaibM*l;5-?VS8_U~i~P zEp?gt6bu_IKusqUP$Kqx>!&+)d~>;_u27%B(6&^v%ZX!7EQU+YojP;#p}AEHQ(Xn8 zEJ$yPb#+#y6F4E$t!Df*6|`h}k%ypcI+N;YfuX8uh_y*h=lwPnu5d((%vp>}6n4rv zE=&g%Zf^wDXVtYL!(Y(1G7dCH6YENKz0CNcoY84dSb%muW@2daFmvaB$x>fdH%ibC zgbFHLvtywW$N0h!y3JHygFI^Pcn>UfySf8&rD`rI6hessbL-rG0Juwi-Bfpbb#)EEdupkz z>K<$@p~J#~=Negt-v`0Ut&MZLBWnfWGIg(dz)}wi0J&3$@`ZGL(^3yfmxv`SVvikE z+tj0`dgQ=$;eoP_dY5{PscHX$n&p5VL<= z=V_uR8Y`IY_&1i{|8`xT&Hj%e8N$VNgdFAEE&=KfEcK##32p^iv>=6Azg)nC2JJ7x zgy3}{Vb2bS>3>h2o7=r!M zQ8XZ3Rp&x;=TwJiq)5mp`4}x?@@MrIQ@y=EvK0knslTefA*+Si^HzX8DMrMzLb$gt z3(-ReWty7{%sS1+Br1UZY` zo)dvWoue&|`>(^=JPG%DaQ^R(@aPHA$s3jHJ*KFU(2Op+c^J1f)Aa^dLZ?#|?PB37q4ngW{Og5&P#uP7nM3F0RjAc|vf`}`F z@kFLGVH(p=JI<+?^PZ4XE6W!3bSbVCg$~?*N+H;is;|68Rg%u2At=dlM4$tf9celq z9G*wAq7ZRqdJHP(#!Sly7^NW!8zsTml4*YU32sK=DYYEcpSaHYbRT zad6Zm_8a$x4BQMkrueCqGq6~-EJS0)!jCgf3ek9O7j8O-#Y@(qi8^1O#O8&JWH zAie>@v9Wd*PbxI{2)kvJ{WsNjyg2-T_kx4u$V8C#UYeEL> z*z)W+T*q`JV?8vFHDM8~Op;3u9E-(eUPpoqrf2=pu=pA4aC!_9Bg#AYLOR70~bG^wGvBs8U=*&nKCXf{LB8kz&4 zs)pv_{?M@vkI-=sV}ha+@F@rr&7hgOhwuyc`S2;A&%j3I>A0!e>7=QF9Ta_x=1lFQ zdCl8t{tl{rj84x1!hI{OKy2wg5Oc(BHK^+_&kq4SOryGnVvvcoLU+J!!RsFm+U>HUvb91G zpSpuOmQ?mqVkJJ#Us(~#_;%3x9duzYUAl#$V0Tj>booyDjDefiS3{USzjPY+(KXGG zvoG}07gtvH(T(W7sh2jdtennM?`V2?uvsxV5V8y^f zPhrq{Q(GS&SJPYcd$4^5UV-`p{Wk>RDqPF|BSgW#ipK-GADH&R9{!2`3{iLuSpP^r zeG?e!r&!5*niVg-!rKt9zhK`-kohq+nH1kk3r(7c|Ev#a%w9S+`{N{x#PvH@41M_J z3E|&G2>n-J<>3&gCaZsz;Y-zGGlGf8c3-Jgym? z6L#`pN`Pd|A!Kz}KHRYM@{F+A%O|+l?c|eiLC+6> zr|jTUqb9Hz<(C2T@&|0=1)#xge4>`Z%AJg`bO)cYiyL#>Y1+vv6>a8{P#K`%mqu^Z zW*Q;tQqJePf}QuUEHt#2G2$5www%{^l74z~wDc(qT)KrcC;!LT;=k(Hm+i{aT$wzf%k7Ep;aSUd8ASY90Mab<>~K zmGri{mj0ryr@yKj=x^#?`n!6V-T@WfRlW3{>Z5}A~H}XCBHbDi0??o$seUEfo@8hq7IDNNJ zJ>Q3?K~QZD-_H-=F2Lis5d0v21Ap%275w@pKSV=71L=F1{Gdb`;Cm_UHi;O)2MNK=~R>bFvyel(&;9TGkNj{RJIo{;iIn~ zZpktU?-)f)UThL>p~+Brgl$FeWkLk-xVsukw}+D?9!X*+*^JHNC3`0PT7nPECkp&f;=9mq*cBSh98=LrGYj^U>FXzD?-6 z1bvtDSh^B@SEKJ*^xc5In|OkzypDVD_P&#+2tjY-Uuw>6=3hYz6(X=N@*DhX;26SR zQ}_-47CK%9ZTcNJRDuY{(VP-$cUvYREvL_<8?r5la@JF@A7PXuKYb=YZSr#_KcOYH zydP0_iI%|J6D@ORK(g?{5oFyWvv9xw!5lQ5PSaA!@&=tFIQ%iNF9R-5IbtJ1;RE+V zl{@&&r4XIcX}$c%s1Gp`zun7!jY4Fj{;)4JvX}q1g@&Lt01!esUwNx=~25Of@*TqFaBP@`X9oMQsCUJ-0jNGTCvwG2InZ) zxT9$pPl6SlLWjT$9m>=3_n3~sA7GjR+j%_x6wwLP!6#7)ucd9^Qy?d^@wYWjr7!Uu z$iQ4corgcIP(u&%0z^%V;LYmb$rfvwxdItJD43O*r(BsasZULTq$nCmK{XXhYJk?; zRV5_FN0VubnxUhNHx51}~y$|TPc{-W>aM@YLKLsj#04{H=cbcb+pHejyR^TPf;6p-gmjH&9}04xkK+oeuNmEEtw9j|8R_+nihH(ukv10e?S-F%OHgRN5Yc^SzX@p6O@jku!MM8o+^6v>32RfOjeF!T0n0Y5XmND}l{_(VzGl`WUZHS^NdO%zGVPsJ)&K;~V%GhQi?u zs5-t8FEV}wJGhx!5nQcfs5O5L!R>7blfK4R^6i*?2WH)^f8C3nZR7j3I=(`qL})#A zcmik$7=h4VT3>n@=zS0H%P`|F+yN`A_6(Qhpgkcp$D8Lh)GDe zP?jk_*k!!XPREJ+MqPkA8wfZ~b>L8lJgW=UMULlFi!_^vp6pY8_@0ZGx)n{>s0yU< z>XKgd=_fc6^=+jAvY}CowK`?`T>dNLm^;!In>XrKZc6H5mb)C4Pie7a?cBE7_*SAw4z1yj7VG=)fOxV9u-O2QXx>rozPIW)pG!e!W?Qb~kK&3dx zUiI)w8QjaXrT>M8AqyiYg6O)NPDXNeF1{TNU!gTYCx>tok0I6Qg?4X;p!H-e`pXca$6YxpU=V7Ld4@L6c~a|q?Xi@(A2Jhb|I^dNs9m5T2ob$dx`*#!tc zKs-;&=t;E`1eHSWlYEQX1)T8raFAqv3tBdU9#Y?i=K1I-=z_Sb5@0%2J+5}6RZnH= z3H2mquW_IH>C4c7r_|GUdOM9$&)}I!4^pZ64q5@N3lbu0xM~mJI^&VRXgAnJfqn>r zc7u=!warw15m(4jx33?@PlsH2PfQ>w4?iT|$bR@d9arT&hcmtlRqcN0^&p@`0ri~v zF3{0MQ1!g{PShO`vw|3Rp%}AEeNSw%ZoPn(f7(vi{$Q*a)>0=ah={|aXQ4Z0H%uN)Jc?d(sz z3zo>gyVQGVi2&TC{zscxY5fDH7jXt!@8hWt5z7|!Pqa!96J4i1K+BKlxkr77878dL zdFmteaUP2uXkza4C@|a9EIx`8zZ{Td&0d{|EdfFb zD4A0$7%@#j2F8EUyK^!yQ#%Zdg#d^Ua?T6`k2mRUJi!w5v+NT8(o0;1-?Hn8Qym_H z_R<2M_Rw&*g|gpP@>R<64)Hbd_#?f1#F?I5exkcPKw{rgbA(6Rc6tv%%WEb^uhzs zlTkt^L9c|=ku|s-A%AZ#i=6R^kTYP91-VOc2vCUJ=mR5XfI@k+D~6ohUT}N_zYI2r z7C%<8hlW)28bMu;EioRbC^v@m8pDtyKR(lE%-%}ZhD#>Qz-fmOTvAzXl=m8=Hq(%? zm7wKql=MA-zC(0hC0b)KQ{03x1CM7SEcWR}VC*RKcA7VKRNzjUrKgP7Q;w-Le7(k@ z7(2YRW2S%XDF5v=9-qTo*W5wnz6YZIZN?FmyNsiWdW}g}7(8K=@Am$b@c@voMA7bM zqmt&}SU|qhFemcuB-q+NARQTsL}a)+h9)7+s6<*ZQ=LGwkr>QDN$oVmM-3`UXRB(m z)hs$+okD4KDqXDR(C5@#sPjC!S=G|5Y9ZYR7>^)i7xS$S#AEw{W zBInGefiSio=0kU&&+VGgVH&X5IDE|?h{G`XQy>t6wE!j+n(MHrSnNemL$PF6AnRQ; z&EfSHnmvBn4&#I^)IENeaUyKD&&iW_7*SmokxCAVwMa~jQ{}0S+s2S6iAVtZJ39a- diff --git a/bin/main/edu/ohio/ais/rundeck/HttpDescription.class b/bin/main/edu/ohio/ais/rundeck/HttpDescription.class deleted file mode 100644 index 6bf5f78eb826a2bf7da20e6e17e1000eabc8e8c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6400 zcmb_g33wFM9sj-I*Z~%S4YyK8Kn##e4na;s2m}lyW)lRl;AD4_4D9YKGqX9o?-LIc z4?L)NV{KI`tF<20YU@?4w$|2atyNp?VYOP19=5+XvzyI^M1ikgzU;jB{^$Fj@4aWg zeCSaC3&gkp6oE-bG*xP~m{zH7I;D0h5j7&4N~>Hqxx{cHwwZKID-l3nfuS4qR=qT) zCz?xZ8aEmdH-P>Eb0b!~H0oM0y)j1~v23F>8A~;r38yq-C7R6Ul&wonr9Rh2y)kA8 z3~~&+)r=Uc^f+gs>YRkIYnzGYc>?`h)AdlJIdug3&o>jMyHMb$!o7+1Wo620fxZ=1 z)EJ097!t%F3>D~8IA!$!P>~=4P~~WN5CiJlUTwr10l>_L1Mv-L0gM-z(G!=fZ&I!q z%ecg&TbwduQNs@6P)raAH2PD4*}Z7Z+xzqofsPsbC;YuBxxEmFt>oX>BcLq(u(m`X)nj zTMW%MHm3~7Es<0Uq{U{*(V`%ZM!A40!KQ6Q1!ffznk+l6`vGbO zu@Owk0^49)k`1BUsW;kP-8OU;F_x4@E83wV!O>!Glw=l4=5kh|!lq!?j2l+UmHTyr zNJ;Ak%!F$+8@7rz7W6tlCA4}UQAG#4T9wtN#jHfLmqohiO0_gSn?7=tA2XL0auw2K?0E0LO=Q3Gb%Wt9VVa&fATBfn8IG?6+oY-pG zwW&i|=fWT^lGYj2Xjw5sPt)}MY;Ar%g=GrO8HKIi5jyX3dX;q4;R^Og zJw>8~E9LSSp<)}?%Db&y%?!z3)8a;?MNgPcT)K=oNWRyS?GW1utIYrLK;u%?I3(Z!|yX>8sB<>{Ra6`IACo=|ZY&pr*AS!qSgq`|f2OH|y= zcA8z6iP{OuSk=#tJa5p@-<366cbqoMj;gpyCX*?Lf0|IORPwtu&?k*#U@8cm>+HieMUHP)g4YlRV&O=Yq`5YH9Y)5p0wX+0+0v1vRPj8O@cCw8zPuL%s&n!>VOhf7 zM7Cy2mnWO`+etD74XMP>=)LS*-UL*<%n+??PqLx2SJ!1wH6Qj1foH-5u~=#>9x_Vf zvh1^H`S@8@Yz(}rlxX2pGHKbaLkvCQ`m0)@QPNzZO)o2(Ql#0uNf}OVsd#$XkzCdj zQH{=}#}b{u_VyxeW_$aT5^b%O(jt07cArLGM6@^$2`2kcrfoW`acn{o9M?O^%gTzT zm(7&?i>7;ARQ!_Vv!aDpz0Q5A_?5umB)hDe-MWg`==xf@)QPr8#p?ovVZ+tTrp%Gj zx2cvejHn~Cwb9T#K1P&g{w>RClOA(u-`{cQaZ~YocD6iO_101btcrI8M&(PC93_mB z{~$0YBe{cyXk#UnP>)f*F1&QQvU(A!Ycdt6$$QKbIaKi{)?Ud{t7R6c_=`Z1HB%}QXX@%`oJ@l)!spETpFCY_aS%08maLt)ZU?G*Qxa11;+QFG^;LE zV@eKk_M6e9DuG2VY*R;&T>LA3@IkDKO5Taf6bRJf6raXZD1m;@{k(M_tP( zRPiM*4L*f87rfj~@aHm0rJZ_YBNW!0JV$xyAo}uL(alW~ut*jC1*ZGeGT$}cVK^^I zyijL5bW==6p|U1~J9tWncQc_X1~M{ZpaR~tF&yDHD29m;{lrE2B*J_9{&s*oc0Ae@ ziQz#pLX2dtI8uUueZaRJPsIZ{81O9#3 zyCTN^F7FY;_G*_nlmXX=|NZz2`Mknk@Yd>o`Lx2BLiivA`8$}i80UTY9X|B|95i*> z9t@jWv~UIfC-}gBUmUehf=vB0mLb9L~>(G^RX=X`!+-riYG9V@_yp8uR<6 zu`rFrX)Kkn6=_t5Y9#E~3@j8*qhUAJq_IAS)+kv-C0Y~F(rC$nHc3!if~@YK&1pEH zRtah+Xg5wu;|wy-(Vmya1)+;2!X-oqU6u#jDpk8u0m^_W89$`3+G*Z*com z=FL2uwTuwk79m|=3CJi=GRz`4)$_I!#FO)w7$FLAjViBI*k2Z_ZAeLgasKRmL7=Bk_jcCAHaROgzB3LJyh;QNq5#x)@W~>*j*dR{EiQ;rV zxtxbaaUo$_5D}LlDz@>BWILL~4m69K(IR%i6n7JL4>pS3*d!j{YsbTgi^pM!r;rrS zW3zaXu$TG7@d_OA8eH)vQsN!7iud`d@gds9$Ao>#$BZvZK_B`#D};3B047c2GH zqO8Lu%6h_dT&hHInPTE{C4sGqgDaFaT&bLfZOWO1or9~C^KrGZ1=lEBajkMSwktQ{ zI%OxWS8gTj4&0#Jg&UQ7u|rAYTgt<@NqHPQm8WsD@*H6=;1=a2+^W2a+mttOyYe>f xP~O9x$_Ln`d_>qMxJ&tr@hPjl>>I4vnQE_yF*1t9SaC4F0|_I4amdkQ{s&DlhGPH# diff --git a/bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class b/bin/main/edu/ohio/ais/rundeck/HttpWorkflowNodeStepPlugin.class deleted file mode 100644 index 1ddca830934094a4ad2f28a6aa36782f84ae888c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10435 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 OlBF=uqZgjwqtD5y%qxGTsuJ(%N`nuU< zSTP60E;EeQ8rz%s_PV)UBZMdK{{tdju^ijA!&L^QP;4`#s$NH=F|2`@>zF{6VWiRz znJ$=DVw$0EyWMiV*v?RFPRB4tnMCE}i4*}<(=n7`;V}bGNI}0@|GGacKP%ktaj65u($#+nwx6nqFU*!GP8`XV) A)c^nh diff --git a/bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class b/bin/main/edu/ohio/ais/rundeck/util/OAuthClient.class deleted file mode 100644 index c4febe34e57685add831fbbeae33c7093ac8b3db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7467 zcmb7J349dSdH+92XqMFgVr3xs${J%VRuXG4K0pK`gaiU^aL#PVo&kQP=u>zP>& z$GO}zvD2ij+q8|{)FqBvnl_Cc+bkf`kT{LwCU%^r>6x~1nxseCq<8GJHO~KgGb^p6 zHBk7m^X47j`;Py24PQAw^*I1A3JELeTCYbGp>;6O*@mxjPK;Eu^AeLTyZ>`_mX?{ zv)36Px7~JyrMn0FQ=^^zsiCga(CE;y_8B*)+ z>FV7vx^ti-WF&&63ejdE_dAo^9|wvOSUUHt<+`#XkusEUEE+lPAwx_0pD3EwXS z3Rk$c*Kx;_R>4Y7*hyJPrnM=OyQVi$Nm0?lUd#1tSD{VY;eh4&wtI9kmpo{t4{!WV8DIx*I9_qpjhJ$w6wQ1LdS_wm12kUz;2_ma^ir(ai*iI{^E1xMi z**xhr9=38>vSH6mH3TXg3N#qmLI(0#e=9N7ymmyPu9HTJ;(Dw#&`dMW03_6>i3C~{ z3{o!I{Rb45H}|ZqqV|QLVoWT;{*-h`Dh zN|{)IdKv9CaW&pdaQPEiPvQDYv#Ge5W~R$^9lF_u=6RZty9aEqz=&nHSE4YCW(^p@ zTMgWyaOGU9R30_45BupopV?(%6n7K% zBt2kT5;P`U%Omm2NPNb*D)=2Ukp>O0kVm@me%3!$of8otSSJJyV8Q@XLVPYKI->;J zhM8PE6ImQoi1)f$qn!lWQSXJQhJz!AbWGvwM7=q=6jmWX_#kte-phiar@!lH+SYQJ_>iy`C98eR zi`KZ^fS<=N8u$f;=1VOO#7!U4al8tLBQezAer@Q$%?QQ|yCL0N5}(4Q8(%>YK+A&b zXGQN_s&{BGIg+J!a7d$S%P z`AOVl;P+Yn%@t@efIxD)?;Ytq&g++Hi|M)3qbW8g_9;!Bfhx~MSmlpw4wPjXQ_ zf@e&el!*r4>2;3SZYP6T6raK=$)cy}y;a1k2CD{4;j;$LvWU~T)qYPaVJ%78akKa8vRc6MH4|3`u=%=) zs{}T65&-@Le`?^HY#FLKblP!k-8Oh)cKhayCjLxdRv(nxG5YoiVev0b{1v{%tU?w8 zE)<5Vh+oB4^W6Qy3W?xvczp*8^@1P4w^`#dF8X%fZ<8X`z;~F*=jtY;$W2Ul$zeCw z6*LRo>>Ywc6vfNMhY0R`sCHE};-o!uP9|IYKQwn_-$!>4JNp;w0WB))3 zrGKtosm;-hn4EYBvB!ephxk_mKVqBo2G`1gPTg*p_&5AJvzvX?P8X#x?4K{lg>Rb= zWT9S;bh>)^PZR%z|E?^2r25yHv`2b?S4_Mr>k&2+I+jF<(*H3r2zuV5_&>47Ls6V3 zpLl&%v#{N9a<-Lcv!Ilumi?6>E?lHGm8vyWom#*GDGcAdMmH>Sr~-@SBhsSO7cAGB zWRh(RHq5|)e7NQCpS&1s=NN|<&hA7A*038{Kj)q;^GMGMw(VQn4YlavA!#-PqKqXb zK8Do{1!}2@Ya{^F<3vPVMvLt18j4ZNd|N>c1eRw!Rx3?)xx~wQ%5CMmh`N%AK_|kv zYp3n(VLKCN2OhWL!I`+@PuOnUpRn@rqPH%JP(TR2=KPy2eziq}DRW z0<&r?MAT{)87ccn?pWMP-&4%Gyh`_<@vIm3SZwCvdB=|*7K^Tns5Nw%loPzN)rs3- zmm0T^GVFV;aqm#JP+-SW-omg_?)v&QXQwryzlw0Rp<+{Q&ioeHW}(xh1D|!A^BpDo(v2T6q(&t+IQSz ztR&QCg^yM`NVq#7xXa3Ca<;d+*KrON3+)wt6q>bSX4XOd8KGh^+)Y*1>ebB=#a6gZZH}vmx{Y#iG@O@qkqV5{fjt61s&t|>s4Ml(4px_8w4AH* z_yO0M6l$IH28th1U37O{>d5R)ws@g&=bf~C+0jERZMQ9#=;zxWns?Clec8<3yNn*; zj>HM|o_wCwP0sQ>o1tdmbU{SR&o1~3wU@bhp53Zh!cYSg@WNZ^%7NKfW2IQg_Sy2W z#A7(1-0VG;@E_Z1{;p&^h;Vix$2ExZ-K=qMvNy^^+y7elkSqCyQM^8~A%IR`Z7I_;w4Q@~3GjoPos6I zdPon}eTLIDxPiY>K7ln9;d-psv*57}xG^O1A&M+QClaTyF>w|*?>mKCPhwNzG}=q( zC}BqlJ5ORyqV**D5-lguKSMh~>OdF8+DJuoqX|1H<}QlZL&3T!${sS?hqXxQyW_!4 zxE%vL$2;Ylg%%>A6<$M1Ond=n>RRrut|`11=sST;ZLy!#Yd3I>qhRd=dhMzdiT2f!$OC8a z;aarHXbQi?#nvaui;1`6ZuW?^TA%A^1mI52-o*m)ZZyN9Y-8x)Cxt#_xObd06L9zy z;9lgk+#4w!<(QWHKKwF1qA3^fewws~l(ykl@Th@<9{eNJgp`C_&C;Z zc@yWS&AGWQv9d1K6c~tXpTHGo@#wyaqX}B)C#Ueg=Mr_N@mfjM2psFQX;K6raF|jb zrJvo)w(uR;%r6bM;avpdyJ@WV&^Yf!9{1B2@8sY2;Q<=pWB33*&CzG6xpVj+#riP5 z%_d*mB{1E~q3Pmmi|VO(#j|OKxP{dG19+=8XDw+g)<&#T;ua=%1^XK~5@Rkw&3T+N zFl8u{MqEK7F`3OW-h(tBjYrq6;UQpQqIO2gN{9Xgt^K&>Q10QzGPtDHt4312K)pyz zdzCtW?8`6`CAB#5jB0!i-{OpbLp4q*etXg2Xi`nu_NuXL`^To#vPyej+`60QTX$t$ zlUg2Fck==+zqoQiNxkV2*k^HkUz57xl)CC%g|VN)I*pTSG=^JBD*iAQ2V1X|ts=t- zG`}H4M6M=vot8*&61eaI9fO}@Y=4^0Tw=^VMWvrX3mfJQbc=07!cO+cyE(Uqh#0{a zaFETtj<4eLc!9rP!%O%&zCq{s0ltY>*dq#lwgx&cTL-VI z>s2!?wuj$K0{o0H6i7IzCH>U_et63Yof#Hr+^|M%cnu#3P?MYe~etXd< z3dB-dN0b!UmeuW)QM6sKI~LB^ zmXXgUJtwZs$+4%T)?phHlRUhJc9X{SJM8LY?u6(rsx1^YKd%C#eePIRj{fENW6qd2i#u-BZRT@9lLy$W8U zJ8QZnP8EHKkVacr5NNBX{3`Kg%=`@_Te39UF!M6rH6bzpl$xtXXj-!uiOoY&j)_`v zgiF!lae6rn0__{~X01@konsz(R9Pn&9&yze3iNpRB#t_aW5nM)V{4h46kJZ#5Q9-o zxDO+#jJcdxu+5w{Un`-EY3T`lRnIUH&3s~_vO8hsZGF`)CzU5lw;-fonX79X>XP8T z|3CECF}$9~qFXVw4oU^D2#jpm!jt+9t&}Uf*lj=|3?UeTz_5xWM%Y7S3~bZVvifwn zgapq17hiZwJ~}rpHIAux9dEE`%Er>9avKrMQD zuE5w<#JKLR<1*%kizrV-zPWJ)ZwhoewaIorzGmxAKRQ>k3njYJ(zWFfCJ_wdEYb>6 z0!OwGu_vuiF@clLXGOcWN;#DMR1tU@6BZN!1qTsSX_w#5~T*aKL)~WEk%~{k(n>S-D zQ>ArVt%rg9c5z~WN&Pf(K9l<85IklOTxBU zO#u$=h?DV?$f{VBL%T7PGm9MKOW@qUS(#!^iOeoq=87ELDwe^1-z8HgzccX$c z{@Uj26`w$t%e7f`vY-P_i*b@Gv3YZ-B(pbR$Si1in+I6cMNGg`^w5k`EvF25MQd~0 zUG4UFNcxMH2inN%BjD$b*E>EHz9qN{u8sZo5cruJA3}V}&pgvI9j8h*qI%Y93XwnIsB(7F+ zNV6Kqt6~DD=pt#L>wigq*lX6Hf+5!|j#YkOG)0EYO=KyGw3xb&Nt$$e*x$d7GXewa znD${EoOcg#ZMdo`S8uZ1@*7s diff --git a/bin/test/README.md b/bin/test/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class b/bin/test/edu/ohio/ais/rundeck/HttpBuilderTest.class deleted file mode 100644 index 5ebebfa7d6dea3992b138912b7b7167c1c07c5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2715 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 AS^xk5 diff --git a/bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class b/bin/test/edu/ohio/ais/rundeck/util/OAuthClientTest.class deleted file mode 100644 index 35317aade37215adc1158573c48ec76bf81df949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9401 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 diff --git a/build.gradle b/build.gradle index 46e2879..47bfa03 100644 --- a/build.gradle +++ b/build.gradle @@ -59,8 +59,8 @@ dependencies { implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 - // Version 3.17.0 required for Grails 7 / Spring Boot compatibility - pluginLibs 'org.apache.commons:commons-lang3:3.17.0' + // Version 3.18.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils) + pluginLibs 'org.apache.commons:commons-lang3:3.18.0' pluginLibs group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' @@ -78,9 +78,9 @@ dependencies { configurations.all { resolutionStrategy { // Replace vulnerable commons-lang with secure commons-lang3 - // Version 3.17.0 required for Grails 7 / Spring Boot compatibility + // Version 3.18.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils) dependencySubstitution { - substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.17.0') + substitute module('commons-lang:commons-lang') using module('org.apache.commons:commons-lang3:3.18.0') } } } From a6482ed905a32e48c3f25200c43d06a03c8f9851 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 16:11:55 -0700 Subject: [PATCH 18/26] Modernize CI workflows for Java 17 and Node.js 24 gradle.yml: - Fix typo: 'JDK 17.8' -> 'JDK 17' - Update setup-java@v1 -> v4 - Update checkout@v2 -> v4 release.yml: - Update Java 11 -> 17 (matches sourceCompatibility) - Update setup-java@v1 -> v4 - Update checkout@v2 -> v4 - Replace deprecated create-release + upload-release-asset with gh CLI - Fix set-output syntax (GITHUB_OUTPUT) Addresses Node.js 20 deprecation warnings. --- .github/workflows/gradle.yml | 9 +++++---- .github/workflows/release.yml | 37 +++++++++++++---------------------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 0fb6b53..4f3d48f 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -8,16 +8,17 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get Fetch Tags run: git -c protocol.version=2 fetch --tags --progress --no-recurse-submodules origin if: "!contains(github.ref, 'refs/tags')" - - name: Set up JDK 17.8 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v4 with: - java-version: 17 + java-version: '17' + distribution: 'zulu' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a796de5..cff1a18 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,35 +12,26 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: set up JDK 1.8 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v4 with: - java-version: 11 + java-version: '17' + distribution: 'zulu' - name: Build with Gradle run: ./gradlew build - name: Get Release Version id: get_version - run: VERSION=$(./gradlew currentVersion -q -Prelease.quiet) && echo ::set-output name=VERSION::$VERSION - - name: Create Release + run: VERSION=$(./gradlew currentVersion -q -Prelease.quiet) && echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + - name: Create Release and Upload Asset id: create_release - uses: actions/create-release@v1.0.0 + run: | + gh release create \ + --generate-notes \ + --title 'Release ${{ steps.get_version.outputs.VERSION }}' \ + ${{ github.ref_name }} \ + build/libs/http-step-${{ steps.get_version.outputs.VERSION }}.jar env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: Release ${{ steps.get_version.outputs.VERSION }} - draft: false - prerelease: false - - name: Upload Release Asset (jar) - id: upload-release-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: build/libs/http-step-${{ steps.get_version.outputs.VERSION }}.jar - asset_name: http-step-${{ steps.get_version.outputs.VERSION }}.jar - asset_content_type: application/octet-stream \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 2d02ec3c736854afb0c683071c850b6c030f47ee Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 16:21:11 -0700 Subject: [PATCH 19/26] Modernize GitHub Actions workflows for Node.js 24 compatibility - Update actions/checkout@v2 to v4 - Update actions/setup-java@v1 to v4 with zulu distribution - Fix ::set-output syntax to use GITHUB_OUTPUT - Fix typo in step name: "Set up JDK 17.8" to "Set up JDK 17" - Align Java version to 17 across all workflows These changes ensure workflows remain functional after Node.js 20 deprecation in September 2026. --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4f3d48f..8dc999d 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -25,7 +25,7 @@ jobs: run: ./gradlew build - name: Get Release Version id: get_version - run: VERSION=$(./gradlew currentVersion -q -Prelease.quiet) && echo ::set-output name=VERSION::$VERSION + run: VERSION=$(./gradlew currentVersion -q -Prelease.quiet) && echo "VERSION=$VERSION" >> $GITHUB_OUTPUT - name: Upload plugin jar uses: actions/upload-artifact@v4 with: From 46ab0115f6a8186670ee0e7663d9709593ffbb82 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 16:41:17 -0700 Subject: [PATCH 20/26] Standardize Gradle version to 8.14.3 Upgrade Gradle wrapper to match rundeck/rundeckpro (8.14.3) for consistency. This ensures all plugins use the same build tooling version. --- gradle/wrapper/gradle-wrapper.jar | Bin 54413 -> 59821 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 91ca28c8b802289c3a438766657a5e98f20eff03..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch literal 59821 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 literal 54413 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 Date: Fri, 27 Mar 2026 16:44:01 -0700 Subject: [PATCH 21/26] Fix YAML indentation for distribution parameter Corrected distribution parameter indentation to align with java-version. This fixes GitHub Actions validation errors. --- .github/workflows/gradle.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 8dc999d..4aa2d7b 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -18,7 +18,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'zulu' + distribution: 'zulu' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cff1a18..c3b6d5f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'zulu' + distribution: 'zulu' - name: Build with Gradle run: ./gradlew build - name: Get Release Version From 5b7f8bf2d2576783fc67852f37343aa2eec47f4e Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 16:48:02 -0700 Subject: [PATCH 22/26] Update Gradle wrapper scripts to 8.14.3 Gradle wrapper upgrade updates the wrapper scripts themselves. --- gradlew | 282 ++++++++++++++++++++++++++++++++-------------------- gradlew.bat | 43 ++++---- 2 files changed, 196 insertions(+), 129 deletions(-) diff --git a/gradlew b/gradlew index cccdd3d..1b6c787 100755 --- a/gradlew +++ b/gradlew @@ -1,78 +1,129 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -89,84 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d..ac1b06f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From 81a56c0621a7dad6ad1f563c753d741b80104192 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Fri, 27 Mar 2026 17:28:38 -0700 Subject: [PATCH 23/26] Fix distribution parameter indentation in workflows --- .github/workflows/gradle.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4aa2d7b..8dc999d 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -18,7 +18,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'zulu' + distribution: 'zulu' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3b6d5f..cff1a18 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: '17' - distribution: 'zulu' + distribution: 'zulu' - name: Build with Gradle run: ./gradlew build - name: Get Release Version From 6d9d77bfad6a268fc90d934e1777cf85647af248 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Thu, 2 Apr 2026 16:50:55 -0700 Subject: [PATCH 24/26] Update commons-lang3 to 3.20.0 to match rundeck core --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 47bfa03..ce999f2 100644 --- a/build.gradle +++ b/build.gradle @@ -59,8 +59,8 @@ dependencies { implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 - // Version 3.18.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils) - pluginLibs 'org.apache.commons:commons-lang3:3.18.0' + // Version 3.20.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils) + pluginLibs 'org.apache.commons:commons-lang3:3.20.0' pluginLibs group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' pluginLibs group: 'com.google.code.gson', name: 'gson', version:'2.10.1' From 34cc393692b6544524bf1e12fc55c9724f626419 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Mon, 6 Apr 2026 16:40:23 -0700 Subject: [PATCH 25/26] Add Maven Publishing --- .github/workflows/release.yml | 19 +++++--- build.gradle | 50 ++++++++++---------- gradle/publishing.gradle | 86 +++++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 34 deletions(-) create mode 100644 gradle/publishing.gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cff1a18..64887a8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,14 +1,13 @@ on: push: - # Sequence of patterns matched against refs/tags tags: - - '*' # Push events to matching v*, i.e. v1.0, v20.15.10 + - '*.*.*' -name: Upload Release Asset +name: Publish Release jobs: build: - name: Upload Release Asset + name: Publish Release runs-on: ubuntu-latest steps: - name: Checkout code @@ -25,8 +24,7 @@ jobs: - name: Get Release Version id: get_version run: VERSION=$(./gradlew currentVersion -q -Prelease.quiet) && echo "VERSION=$VERSION" >> $GITHUB_OUTPUT - - name: Create Release and Upload Asset - id: create_release + - name: Create Release run: | gh release create \ --generate-notes \ @@ -34,4 +32,11 @@ jobs: ${{ github.ref_name }} \ build/libs/http-step-${{ steps.get_version.outputs.VERSION }}.jar env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Publish to Maven Central + run: ./gradlew -PsigningKey=${SIGNING_KEY_B64} -PsigningPassword=${SIGNING_PASSWORD} -PsonatypeUsername=${SONATYPE_USERNAME} -PsonatypePassword=${SONATYPE_PASSWORD} publishToSonatype closeAndReleaseSonatypeStagingRepository + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SIGNING_KEY_B64: ${{ secrets.SIGNING_KEY_B64 }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} diff --git a/build.gradle b/build.gradle index ce999f2..f54cf8a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,26 @@ plugins { id 'pl.allegro.tech.build.axion-release' version '1.17.2' id 'java' - id 'maven-publish' + id 'io.github.gradle-nexus.publish-plugin' version '2.0.0' } -apply plugin: 'java' - -sourceCompatibility = 17 -targetCompatibility = 17 +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + withSourcesJar() + withJavadocJar() +} ext.rundeckPluginVersion = '1.2' ext.pluginClassNames='edu.ohio.ais.rundeck.HttpWorkflowStepPlugin,edu.ohio.ais.rundeck.HttpWorkflowNodeStepPlugin' ext.pluginName = 'Rundeck Http Step' ext.pluginDescription = 'A workflow plugin that makes HTTP requests' -group = 'com.rundeck.plugins' +group = 'org.rundeck.plugins' + +ext.publishName = "Rundeck Http Step ${project.version}" +ext.githubSlug = 'rundeck-plugins/http-step' +ext.developers = [ + [id: 'gschueler', name: 'Greg Schueler', email: 'greg@rundeck.com'] +] scmVersion { ignoreUncommittedChanges = false @@ -56,7 +64,8 @@ configurations{ } dependencies { - implementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' + compileOnly 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' + testImplementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 // Version 3.20.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils) @@ -122,27 +131,14 @@ jar { } } -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.rundeck.plugins' - artifactId = 'http-step' - version = project.version - from components.java - } - } - +nexusPublishing { + packageGroup = 'org.rundeck.plugins' repositories { - maven { - name = "PackageCloudTest" - url = uri("https://packagecloud.io/pagerduty/rundeckpro-test/maven2") - authentication { - header(HttpHeaderAuthentication) - } - credentials(HttpHeaderCredentials) { - name = "Authorization" - value = "Bearer " + (System.getenv("PKGCLD_WRITE_TOKEN") ?: project.findProperty("pkgcldWriteToken")) - } + sonatype { + nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/")) + snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/")) } } } + +apply from: "${rootDir}/gradle/publishing.gradle" diff --git a/gradle/publishing.gradle b/gradle/publishing.gradle new file mode 100644 index 0000000..e52fc36 --- /dev/null +++ b/gradle/publishing.gradle @@ -0,0 +1,86 @@ +/** + * Define project extension values in the project gradle file before including this file: + * + * publishName = 'Name of Package' + * publishDescription = 'description' (optional) + * githubSlug = Github slug e.g. 'rundeck/rundeck-cli' + * developers = [ [id:'id', name:'name', email: 'email' ] ] list of developers + * + * Define project properties to sign and publish when invoking publish task: + * + * ./gradlew \ + * -PsigningKey="base64 encoded gpg key" \ + * -PsigningPassword="password for key" \ + * -PsonatypeUsername="sonatype token user" \ + * -PsonatypePassword="sonatype token password" \ + * publishToSonatype closeAndReleaseSonatypeStagingRepository + */ +apply plugin: 'maven-publish' +apply plugin: 'signing' + +publishing { + publications { + "${project.name}"(MavenPublication) { publication -> + from components.java + + pom { + name = publishName + description = project.ext.hasProperty('publishDescription') ? project.ext.publishDescription : + project.description ?: publishName + url = "https://github.com/${githubSlug}" + licenses { + license { + name = 'The Apache Software License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution = 'repo' + } + } + scm { + url = "https://github.com/${githubSlug}" + connection = "scm:git:git@github.com/${githubSlug}.git" + developerConnection = "scm:git:git@github.com:${githubSlug}.git" + } + if (project.ext.developers) { + developers { + project.ext.developers.each { dev -> + developer { + id = dev.id + name = dev.name + email = dev.email + } + } + } + } + } + + } + } + repositories { + def pkgcldWriteToken = System.getenv("PKGCLD_WRITE_TOKEN") ?: project.findProperty("pkgcldWriteToken") + if (pkgcldWriteToken) { + maven { + name = "PackageCloudTest" + url = uri("https://packagecloud.io/pagerduty/rundeckpro-test/maven2") + authentication { + header(HttpHeaderAuthentication) + } + credentials(HttpHeaderCredentials) { + name = "Authorization" + value = "Bearer " + pkgcldWriteToken + } + } + } + } +} +def base64Decode = { String prop -> + project.findProperty(prop) ? + new String(Base64.getDecoder().decode(project.findProperty(prop).toString())).trim() : + null +} + +if (project.hasProperty('signingKey') && project.hasProperty('signingPassword')) { + signing { + useInMemoryPgpKeys(base64Decode("signingKey"), project.signingPassword) + sign(publishing.publications) + } +} \ No newline at end of file From 7d041f40d5acf75c18f9f3e8511e621a9fbfd379 Mon Sep 17 00:00:00 2001 From: Rundeck CI Date: Mon, 6 Apr 2026 21:38:01 -0700 Subject: [PATCH 26/26] Update build.gradle --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index f54cf8a..26af5ad 100644 --- a/build.gradle +++ b/build.gradle @@ -64,8 +64,8 @@ configurations{ } dependencies { - compileOnly 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' - testImplementation 'org.rundeck:rundeck-core:6.0.0-SNAPSHOT' + compileOnly 'org.rundeck:rundeck-core:6.0.0-alpha1-20260407' + testImplementation 'org.rundeck:rundeck-core:6.0.0-alpha1-20260407' // Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6 // Version 3.20.0 fixes CVE-2025-48924 (StackOverflowError in ClassUtils)