Toilet Paper 4

IntelliJ und JIRA Workflow

Problem

Beim Bearbeiten von JIRA-Tickets hat man immer wieder die gleichen Aufgaben zu erledigen und muss dafür oft zwischen verschiedenen Programmen (Browser, IDE, CLI) hin- und herwechseln. Beispielsweise:

1. Ticket-Status auf „In Arbeit“ setzen (Browser)
2. Coding (IDE)
3. Commit-Message inkl. Ticket-Commit-Referenz in die Commit-Message einfügen (CLI)
4. Ticket-Status ändern (Browser)

Das hält auf und geht viel schicker.

Lösung

Changelists nutzen! Man erledigt/automatisiert möglichst viele Schritte direkt in IntelliJ. Dazu muss JIRA nur als Task-Server in IntelliJ bekannt gemacht werden („Preferences -> Tools -> Tasks -> Servers“). Danach können Changelists direkt aus Tickets erstellen werden („Tools -> Tasks & Contexts“).

Unter anderem können mit Hilfe von Task-Server und Changelists folgende Schritte erledigt werden:

  • Ticket-Status ändern
  • Sich beim Öffnen eines Tasks das Ticket zuweisen
  • Changelist und Branch passend zum Ticket anlegen
  • Commit-Message mittels eines Templates vorbelegen (automatische Referenzierung in JIRA)
  • Ticket aus IntelliJ direkt im Browser aufrufen, wenn der Pfad unter „Preferences -> Version Control -> Issue Navigation“ hinterlegt ist
  • Automatischer Branch-Wechsel beim Wechsel der Changelist

Das Plugin „Atlassian Connector for IntelliJ IDE“ bietet noch zusätzliche Möglichkeiten:

  • Tickets kommentieren
  • Tickets / Sub-Tasks erstellen
  • Attachments, Kommentare, etc. lesen und hinzufügen
IntelliJ Task Server
IntelliJ Open Tasks

Beispiel

Will man nun ein Ticket bearbeiten, ruft man es einfach in IntelliJ auf und erstellt eine neue Changelist. Im Dialog oben rechts kann z.B. der Status des Tickets gesetzt und gleich ein neuer Branch angelegt werden.

Die Changelist enthält somit schon die Referenz auf das Ticket, welche beim Commit über IntelliJ gleich in die Commit-Message übernommen wird. Wurde die Einstellung „Time Tracking“ aktiviert, stoppt IntelliJ auch die Zeit für die gerade aktive Changelist mit.

Öffnet man nun auf diesem Weg ein weiteres Ticket, so kann der Status des vorherigen Tickets auch gleich aktualisiert werden.

---

Weiterführende Aspekte

---

Autor

Mathias Bauer, Software Architect, Media & More