Example scripts
To homepage
Jira

Create a custom REST endpoint that can receive file uploads
App in script

ScriptRunner For Jira
by Adaptavist
Compatibility

Jira (8.0 - 8.19)

ScriptRunner For Jira (7.10.0)
Language |
groovy
import com.adaptavist.hapi.jira.issues.Issues
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.transform.BaseScript
import org.apache.commons.fileupload.disk.DiskFileItemFactory
import org.apache.commons.fileupload.servlet.ServletFileUpload
import javax.servlet.http.HttpServletRequest
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
import java.nio.file.Files
@BaseScript CustomEndpointDelegate delegate
fileUpload(httpMethod: "POST", groups: ['jira-users']) { MultivaluedMap queryParams, HttpServletRequest request ->
if (ServletFileUpload.isMultipartContent(request)) {
def factory = new DiskFileItemFactory()
factory.setRepository(new File(System.getProperty("java.io.tmpdir")))
def upload = new ServletFileUpload(factory)
def fileItems = upload.parseRequest(request)
fileItems.each { fileItem ->
// do something with each fileItem -
// for example, you can get the name:
// fileItem.name
// the contents:
// fileItem.inputStream
// or write to another file:
// fileItem.write(new File('/tmp/myfile.png'))
// purely as an example, the following code demonstrates attaching each file to an existing issue
def tempDirectory = Files.createTempDirectory(null)
try {
def attachmentFile = new File(tempDirectory.toFile(), fileItem.name)
fileItem.write(attachmentFile)
Issues.getByKey('SR-1').addAttachment(attachmentFile)
} finally {
tempDirectory.deleteDir()
}
}
}
Response.noContent().build()
}
Having an issue with this script?
Report it here