I'm using scriptrunner to create a sub-task as a postfuction in one of my transitions.
According to https://answers.atlassian.com/questions/123997 I should be able, in the sub-task create transition, set something to tell it not to inherit the parent's field values. I am unable to find where to unset "Set Field Value from Parent". All of the parent's fields that also exist in the sub-task are getting populated with the parents values. I can live with this, but would REALLY like to clear all of the watchers out.
Here's what I have so far that's working like a charm. The question is - what do I add to it to clear the watchers from the sub-task? Thanks!
def cf = customFieldManager.getCustomFieldObjects(sourceIssue).find {it.name == 'Product Name'} issue.summary = sourceIssue.getCustomFieldValue(cf) issue.summary = issue.summary + " - License" issue.description = ""; checkLink = {link -> false};
You can use this scripted post-function to remove all watchers from an issue:
import com.atlassian.jira.component.ComponentAccessor def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() def locale = ComponentAccessor.getLocaleManager().getLocaleFor(user) def watcherManager = ComponentAccessor.getWatcherManager() def watchers = watcherManager.getWatchers(issue, locale) watchers.each { watcher -> watcherManager.stopWatching(watcher, issue) }
I put your scripted post-function as the last post-function in the sub-task create workflow. Didn't work. I'm assuming, perhaps incorrectly, that the sub-task create transition invoked from the parent workflow executes the post-functions that exist in the sub-task create workflow. Or does it not?
I then tried putting it in the sub-task create transition in the parent workflow and received the following error:
[c.o.s.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: IS-10597, actionId: 911, file: null java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) at com.google.common.cache.LocalCache.get(LocalCache.java:3936) at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830) at com.atlassian.jira.issue.watchers.DefaultWatcherManager.getWatcherUserKeys(DefaultWatcherManager.java:159) at com.atlassian.jira.issue.watchers.DefaultWatcherManager.getWatchers(DefaultWatcherManager.java:136) at com.atlassian.jira.issue.watchers.WatcherManager$getWatchers$0.call(Unknown Source) at Script47.run(Script47.groovy:11)
The sub-task create workflow now looks like this:
def cf = customFieldManager.getCustomFieldObjects(sourceIssue).find {it.name == 'Product Name'} issue.summary = sourceIssue.getCustomFieldValue(cf) issue.summary = issue.summary + " - License" issue.description = ""; checkLink = {link -> false}; import com.atlassian.jira.component.ComponentAccessor def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() def locale = ComponentAccessor.getLocaleManager().getLocaleFor(user) def watcherManager = ComponentAccessor.getWatcherManager() def watchers = watcherManager.getWatchers(issue, locale) watchers.each { watcher -> watcherManager.stopWatching(watcher, issue) }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
To be clear, I don't want to clear the watchers from the parent issue, but from the newly created sub-task.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
In the sub-task, I added a "clear watchers" transition that only calls your code and it works like a charm. It's a couple more steps (have to go into the sub-task, etc) but better than nothing!!!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Great, glad its working for you. Yeah sticking it on the create transition for the sub-task will work.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Putting it in the create transition for the sub-task did not work. I just have a New -> New transition called "Clear Watchers" and all it does is run your script.
But it does exactly what I need. So thank you.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
watchers.each { watcher -> watcherManager.stopWatching(watcher, issue)
Hello!
i have an error in this place:
The script could not be compiled: <pre>org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script19.groovy: 6: expecting '}', found '-' @ line 6, column 25. watchers.each { watcher -> ^ 1 error </pre>.
Added a Custom script post-function (scriptrunner).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Solution: need to change ">" to ">".
Thank`s a lot to cool guys from the telegram`s chat of Atlassian Community!
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.