Es ist ein recht übliches Vorgehen, dass Anforderungsdokumente sowohl in Confluence abgelegt und bearbeitet werden, als auch noch Tickets in JIRA erstellt werden, um die Anforderungen verfolgen und auswerten zu können. Produktmenschen arbeiten nunmal vielfach lieber mit dem featurereichen Editor im Wiki, als in einem JIRA-Beschreibungsfeld und Entwickler brauchen diese Informationen aber auch direkt in ihrem Arbeitstool JIRA. Dies führt dann dazu, dass Inhalte entweder an zwei Stellen gepflegt werden müssen oder in dem JIRA-Ticket nur ein Link auf die entsprechende Confluence-Seite verweist und damit unnötiges Context-Switching provoziert wird.
Wäre es nicht schön, wenn man die Confluence-Seite einfach als Vorschau in das JIRA-Ticket integrieren könnte?
Mit folgenden Schritten lässt sich dies mühelos bewerkstelligen, allerdings wird dazu das ScriptRunner Plugin von Adaptavist benötigt. Dies war bis vor kurzem kostenlos, ist jetzt aber leider mittlerweile kostenpflichtig.
Mit dem Plugin ScriptRunner lassen sich unter anderem in JIRA programmierbare benutzerdefinierte Felder anlegen. Zunächst wird ein normales URL-Feld mit dem Namen „Confluence URL“ angelegt, in welches der Nutzer die URL der Confluence-Seite eintragen kann.
Als zweites wird ein Scripted Field „Confluence Preview“ angelegt, in welchem die Vorschau zu der Seite ausgegeben werden kann.
Diese beiden Felder müssen nun der Bildschirmmaske hinzugefügt werden, die für das Anzeigen von Anforderungstickets zuständig ist.
Als nächstes wird das Skript in das Scripted Field eingetragen. Dazu in der JIRA-Administration unter dem Punkt Script Runner auf Script Fields klicken und das soeben angelegte Feld „Confluence Preview“ auswählen und bearbeiten. Als Template für die Ausgabe HTML auswählen und in den Script Editor das folgende Script eingeben:
import com.atlassian.jira.component.ComponentAccessor String url = getCustomFieldValue('Confluence URL'); // construct url if (url?.length() > 0) { return "<iframe height=\"100%\" width=\"100%\" scrolling=\"auto\" frameborder=\"0\" src=\"" + url + "\"></iframe> <script type=\"text/javascript\">theContent = document.getElementById(\"customfield_21861-val\"); theContent.style.width = \"100%\"; theContent.style.height = \"800px\"; theContent.style.overflow = \"scroll\"; </script>"; } return url;
Dies sollte dann wie folgt aussehen:
Das ist auch schon alles. Wenn jetzt eine Anforderung angelegt wird und in das URL-Feld die Adresse einer Confluence-Seite eingegeben wird, so erscheint in dem JIRA-Ticket eine wunderschöne Vorschau der Seite, die sogar direkt in JIRA bearbeitet werden kann und damit immer synchron bleibt 🙂