Example scripts
To homepage
Confluence

Show User Installed Confluence Apps
App in script

ScriptRunner For Confluence
by Adaptavist
Compatibility

Confluence (7.15 - 8.6)

ScriptRunner For Confluence (7.10.0)
Language |
groovy
import com.atlassian.confluence.xhtml.api.XhtmlContent
import com.atlassian.plugin.PluginAccessor
import com.atlassian.plugin.PluginState
import com.atlassian.plugin.metadata.PluginMetadataManager
import com.atlassian.sal.api.component.ComponentLocator
import groovy.xml.MarkupBuilder
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.HttpResponseException
import org.json.JSONObject
// Plugin Manager and Accessor
def pluginAccessor = ComponentLocator.getComponent(PluginAccessor)
def pluginMetadata = ComponentLocator.getComponent(PluginMetadataManager)
def plugins = pluginAccessor.plugins
// HTTP Request to Marketplace
def httpBuilder = new HTTPBuilder("https://marketplace.atlassian.com")
// Content access
def xhtmlContent = ComponentLocator.getComponent(XhtmlContent)
def writer = new StringWriter()
def builder = new MarkupBuilder(writer)
builder.table {
tbody {
tr {
th { p("App Name") }
th { p("Vendor") }
th { p("Installed Version") }
th { p("Status") }
th { p("License Type") }
th { p("Expiry Date") }
th { p("Marketplace Version") }
th { p("Description") }
}
plugins.each { plugin ->
if (pluginMetadata.isUserInstalled(plugin)) {
def addonsData
try {
addonsData = httpBuilder.get(
path: "/rest/latest/addons/${plugin.key}"
) as JSONObject
} catch (HttpResponseException ex) {
addonsData = new JSONObject("{}")
}
def latestVersionData
try {
latestVersionData = httpBuilder.get(
path: "/rest/latest/addons/${plugin.key}/versions/latest"
) as JSONObject
} catch (HttpResponseException ex) {
latestVersionData = new JSONObject("{}")
}
tr {
td { p(plugin.name) }
td { p(plugin.pluginInformation.vendorName) }
td { p(plugin.pluginInformation.version) }
if (plugin.pluginState == PluginState.ENABLED) {
td { p { "ac:emoticon"("ac:name": "tick") } }
} else {
td { p("") }
}
td { p("") }
td { p("") }
if (latestVersionData.has("name")) {
td { p(latestVersionData["name"]) }
} else {
td { p("") }
}
if (addonsData.has("summary")) {
td { p(addonsData["summary"]) }
} else {
td { p("") }
}
}
}
}
}
}
xhtmlContent.convertStorageToView(writer.toString(), context)
Having an issue with this script?
Report it here