Hello,
We want to have a listener on the "Issue Deleted" event that will write into a file the id of the deleted issue. I know th Auditor plugin logs this, but that info can't be accessed from a script so we need to make our own log.
I am playing around and trying this:
import org.apache.log4j.Logger
import org.apache.log4j.Level
File file = new File("test.txt")
file.write "Issue " + event.issue.getKey() + " was deleted"
log.debug("Issue " + event.issue.getKey() + " was deleted " + file.absolutePath)
It should be simple but the file is not at the location indicated by file.absolutePath. Why can't I find this file? Is there some restriction from Scriptrunner/Groovy for writing to my own files?
Our JIRA is running on Linux and it's inside a Docker container (I've already checked it and the file isn't there either)
Try the following piece of code. This will write to a file in JIRA_HOME directory.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.util.JiraHome
def jiraHome = ComponentAccessor.getComponent(JiraHome)
def file = new File(jiraHome.home, "test.txt") //location JIRA_HOME/test.txt
file.write "Issue " + event.issue.getKey() + " was deleted"
log.debug("Issue " + event.issue.getKey() + " was deleted " + file.absolutePath)
This will create and write to it.
Cristina,
You can try to save the file relative to JiraHome using
ComponentAccessor.getComponentOfType(JiraHome.class).getHome()
You can also use a concrete absolute path but this is less portable
If you use File("log.txt") it will be saved relative to the directory of execution.
Hope it helps
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I tried using your solution but i get an error from the static code check saying that JiraHome is undeclared. How do I iniatialize it? I couldn't find anything in the API.
Additionally, if I try to specify the absolute path for the file like this:
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.startup.JiraHomeLocator
def create = new File("/opt/ea/DIV_I/IC/IC_001/jira-home/scripts/com/listeners/test.txt").createNewFile()
def file = new File("/opt/ea/DIV_I/IC/IC_001/jira-home/scripts/com/listeners/test.txt")
I get this error:
2017-12-14 01:57:40,099 WARN [common.UserScriptEndpoint]: Script console script failed: java.io.IOException: No such file or directory at java_io_File$createNewFile$10.call(Unknown Source) at Script770.run(Script770.groovy:8)
If i skip the call to call to createNewFile() I get no error, but same as before no file is at the location that I indicate.
Any ideas?
Thanks,
Cristina
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.