diff --git a/build.sbt b/build.sbt index 3019aed..01316e9 100644 --- a/build.sbt +++ b/build.sbt @@ -160,14 +160,10 @@ IO copyFile(Keys.baseDirectory.value / "plugins.json", pluginsDir / "plugins.json") val json = IO read(Keys.baseDirectory.value / "plugins.json") - PluginsJson.parse(json).foreach { case (plugin, version) => - val url = if(plugin == "gitbucket-pages-plugin"){ - s"https://github.com/gitbucket/${plugin}/releases/download/v${version}/${plugin}_${scalaBinaryVersion.value}-${version}.jar" - } else { - s"https://github.com/gitbucket/${plugin}/releases/download/${version}/${plugin}_${scalaBinaryVersion.value}-${version}.jar" - } + PluginsJson.parse(json).foreach { case (plugin, version, file) => + val url = s"https://github.com/gitbucket/${plugin}/releases/download/${version}/${file}" log info s"Download: ${url}" - IO transfer(new java.net.URL(url).openStream, pluginsDir / s"${plugin}_${scalaBinaryVersion.value}-${version}.jar") + IO transfer(new java.net.URL(url).openStream, pluginsDir / file) } // zip it up diff --git a/plugins.json b/plugins.json index 9f0fb57..fc4498e 100644 --- a/plugins.json +++ b/plugins.json @@ -31,9 +31,9 @@ "description": "Provides Gist feature on GitBucket.", "versions": [ { - "version": "4.10.0", - "range": ">=4.15.0", - "file": "gitbucket-gist-plugin_2.12-4.10.0.jar" + "version": "4.11.0", + "range": ">=4.19.0", + "file": "gitbucket-gist-plugin-assembly-4.11.0.jar" } ], "default": false @@ -44,7 +44,7 @@ "description": "Project pages for gitbucket", "versions": [ { - "version": "1.5.0", + "version": "v1.5.0", "range": ">=4.15.0", "file": "gitbucket-pages-plugin_2.12-1.5.0.jar" } diff --git a/project/PluginsJson.scala b/project/PluginsJson.scala index 6f272cd..e47c528 100644 --- a/project/PluginsJson.scala +++ b/project/PluginsJson.scala @@ -3,13 +3,17 @@ object PluginsJson { - def parse(json: String): Seq[(String, String)] = { + def parse(json: String): Seq[(String, String, String)] = { val value = Json.parse(json) value.asArray.values.asScala.map { plugin => - val obj = plugin.asObject.get("versions").asArray.asScala.head.asObject - val pluginName = obj.get("file").asString.split("_2.12-").head - val version = obj.get("version").asString - (pluginName, version) + val pluginObject = plugin.asObject + val pluginName = "gitbucket-" + pluginObject.get("id").asString + "-plugin" + + val latestVersionObject = pluginObject.get("versions").asArray.asScala.head.asObject + val file = latestVersionObject.get("file").asString + val version = latestVersionObject.get("version").asString + + (pluginName, version, file) } }