Jira - Watcher bei Issueanlage erzeugen

Kurt Klinner

In einem unserer Jira-Support Projekte war ich mit der Anfrage konfrontiert, das ein bzw. mehrere User bei jedem neu angelegten Issue automatisch als Watcher hinzugefügt werden wollten. Es gibt zwar ein paar fertige Plugins ala Jira Watcher Field, die aber häufig noch manuelle Eingriffe erfordern.

Nachdem wir an der ein oder anderen Stelle bereits sehr gute Erfahrungen mit Workflow-Erweiterungen via Groovy Scripts & Scriptrunner gemacht haben, entschied ich mich für folgenden Ansatz.

Im ersten Schritt wechseln wir in den Workflow-Editor und suchen uns die Transistion aus, in welcher der Watcher automatisiert gesetzt werden soll, sprich in unserem Fall "Create Issue".

Es wird eine neue Post-Funktion vom Typ Script Post-Function bzw. genauer gesagt Custom script post-function hinzugefügt.

Als Inline script hinterlegen wir dann folgendes

package com.onresolve.jira.groovy.canned.workflow.postfunctions
import com.atlassian.jira.ComponentManager

def componentManager = ComponentManager.getInstance()
def watcherManager = componentManager.getWatcherManager()
def userManager = componentManager.getUserUtil()
def watchUsers = {usernames ->
   usernames.each {
         def user = userManager.getUser(it)
         watcherManager.startWatching(user, issue.getGenericValue())
      }
}
   def users = ["<USERNAME>", "<USERNAME>", "<...>"]
   watchUsers(users)

Wichtig ist, das die eben erzeugte Post-Function nach dem "Create the issue originally" Funktion eingeführt, da sonst der referenzierte Issue noch nicht zur Verfügung steht.