Lösungswege

Wiederkehrende Aufgaben sind in JIRA nur über Umwege möglich. Dabei gibt es z.B. folgende Optionen:

The Scheduler Plugin ist kostenpflichtig und nicht mit jeder JIRA Version kompatibel.

Beim E-Mail Import sind die Möglichkeiten der Parameter deutlich eingeschränkt.

REST API

Über die REST API kann ein Issue wie folgt angelegt werden:

# su - jira
$ vi backup.cron

#!/bin/bash
DATA='{
        "fields": {
                "project": { "key": "FM" },
                "summary": "Backups kontrollieren",
                "assignee": { "name": "bknaus" },
                "description": "Bitte die Backups folgender Systeme kontrollieren: server1, server2, server3, ...",
                "components": [{ "name": "Backup" }],
                "labels": ["cron"],
                "issuetype": { "name": "Task" }
        }
}'
curl -u automation:password -X POST --data "$DATA" -H "Content-Type: application/json" https://bknaus.de/jira/rest/api/latest/issue/

$ chmod +x backup.cron

Das Script kann man jetzt per Cron Job ausführen:

# vi /etc/crontab
30 6 1 * *      jira    /opt/jira/backup.cron > /dev/null 2>&1

Damit wird jeden ersten Tag im Monat ein Issue angelegt, der wie folgt ausschaut:

Jelly Tasks

Die "Verzögerung" beginnt bei jeden JIRA Neustart erneut! Möchte man z.B. einen Task für monatliche Backup Kontrollen einrichten, wird er bei jedem JIRA Neutstart und nach der Verzögerung in Minuten angelegt.

Macht man regelmäßige Updates von Tomcat und der JIRA Version, ist Jelly Tasks nicht zu empfehlen.

Im ersten Schritt muss Jelly in JIRA aktiviert werden:

# vi bin/setenv.sh
- JVM_SUPPORT_RECOMMENDED_ARGS=""
+ JVM_SUPPORT_RECOMMENDED_ARGS="-Djira.jelly.on=true"
# /etc/init.d/jira restart

Im nächsten Schritt legt man eine Datei an, die später ausgeführt werden soll:

# mkdir /opt/jira/jira-data/data/jelly
# vi /opt/jira/jira-data/data/jelly/tasks-monthly.jelly
# chown jira:jira /opt/jira/jira-data/data/jelly -R

Dieses Beispiel zeigt einen Tasks zur Kontrolle der Backups:

<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">
<jira:CreateIssue project-key="PR" assignee="bknaus" summary="Backups kontrollieren" duplicateSummary="ignore" ...>
</jira:CreateIssue>
</JiraJelly>

Alle Parameter findet man in der Dokumentation von Atlassian:

Zum Schluss wird ein Dienst erstellt, welcher die Jelly Tasks in der angelegten Datei monatlich ausführt. Dazu navigiert man zu "Administration > JIRA-Verwaltung > System > Dienste":