Effi­zi­ente Ver­wal­tung Ihrer Jira-Instanz mit dem atlas­sian-python-api Paket: Drei prak­ti­sche Anwendungsbeispiele



Die Ver­wal­tung einer Jira-Instanz kann kom­plex und zeit­auf­wen­dig sein, beson­ders wenn man manu­elle Pro­zesse ver­wen­det. Glück­li­cher­weise bie­tet das Paket atlas­sian-python-api eine leis­tungs­starke und fle­xi­ble Mög­lich­keit, Jira über Python-Skripte zu bedie­nen. In die­sem Blog­post zei­gen wir Ihnen drei prak­ti­sche Bei­spiele, wie Sie mit die­sem Paket Ihre Jira-Instanz effi­zi­en­ter ver­wal­ten kön­nen. Von der Erstel­lung und Aktua­li­sie­rung von Tickets bis hin zur Auto­ma­ti­sie­rung von Berich­ten – ent­de­cken Sie, wie Sie mit weni­gen Zei­len Code Ihre Arbeits­ab­läufe opti­mie­ren kön­nen. Wenn Sie noch Hilfe brau­chen agile Metho­den in klas­si­sche Unter­neh­mens­struk­tu­ren inte­grie­ren kön­nen, gibt es hier Tipps.

Authen­ti­fi­zie­rung an Ihrer Jira Instanz

Um die Jira-API nut­zen zu kön­nen, müs­sen Sie sich zunächst authen­ti­fi­zie­ren. Das Paket atlas­sian-python-api bie­tet meh­rere ein­fa­che Mög­lich­kei­ten, dies zu tun. Zum einen kön­nen die nor­ma­len Zugangs­da­ten der Jira Instanz ver­wen­det werden:

from atlassian import Jira
jira = Jira(url='https://your-jira-instance.de', username=jira_user, password=jira_password)

Bes­ser ist es jedoch sich ein per­sön­li­ches Zugriffsto­ken zu erstel­len. Die­ses kann jeder­zeit deak­ti­viert wer­den. Damit sieht die Authen­ti­fi­zie­rung wie folgt aus:

from atlassian import Jira
jira = Jira(url='https://your-jira-instance.de', token=jira_token)        

Bei­spiel 1: Erstel­lung einer Anfor­de­rung mit Unteraufgaben

In die­sem Bei­spiel zei­gen wir Ihnen, wie Sie eine neue Anfor­de­rung in Jira erstel­len und ihr meh­rere Unter­auf­ga­ben hin­zu­fü­gen kön­nen. Dies ist beson­ders nütz­lich, um grö­ßere Pro­jekte in klei­nere, über­schau­bare Auf­ga­ben zu unter­tei­len. Ins­be­son­dere wenn meh­rere ähn­li­che Anfor­de­run­gen oder Unter­auf­ga­ben zu erstel­len sind, kann man so viel Zeit sparen.

taskdefinition_anforderung = {"issuetype": dict(name="Story"),
    "project": dict(key="EXMPL"),
    "summary": "Titel der Anforderung",
    "description": “Detaillierte Beschreibung der Anforderung,
}
new_story = jira.create_issue(fields=taskdefinition_anforderung)

taskdefinition_subtask={
    "issuetype": dict(name="Subtask"),
    "project": dict(key="NPS"),
    "summary": "Titel der Unteraufgabe",
    "parent": dict(key=new_story[„key“]),
    "description": "Beschreibung der Unteraufgabe"}
new_subtask = jira.create_issue(fields=taskdefintion_subtask)

Hier­bei gilt es zu beach­ten, dass die Task­ty­pen in Jira oft benut­zer­de­fi­niert sind. Die gül­ti­gen Task­ty­pen in einem Pro­jekt erhält man als Dic­tion­ary über diese Anfrage.

issuetypes = jira.issue_createmeta_issuetypes(project="EXMPL")

Bei­spiel 2: Fäl­lig­keits­da­tum für eine Liste von Jira-Tickets setzen

Ein weit ver­brei­te­tes Sze­na­rio ist, dass man für eine lange Liste an Jira Issues ein Fäl­lig­keits­da­tum set­zen muss. Das wird über die Web­ober­flä­che schnell müh­se­lig. Für sol­che Fälle gibt es die Option auf einen Schlag meh­rere Issues anzupassen.

issues = [‘EXMPL-1’, ‘EXMPL-3’, ‘EXMPL-5’]
jira.bulk_update_issue_field(key_list=issues, fields={"duedate": “2025-12-31”})

Bei­spiel 3: Gezielte Suche nach Issues in einem Projekt

Jira ermög­licht viele über­sicht­li­che Dar­stel­lungs­for­men, aber hin und wie­der benö­tigt man dann doch eine Liste aller Issues, die bestimmte Bedin­gun­gen erfül­len. Dazu kann die Jira Query Lan­guage (JQL) genutzt wer­den. Im fol­gen­den Bei­spiel wer­den alle Issues eines Pro­jekts, die noch nicht erle­digt sind und noch die­sen Monat fäl­lig sind herausgefiltert.

jql_filter = "project = EXMPL AND status not in (Erledigt) AND duedate <= endOfMonth()"
issues = jira.jql(jql_filter)


Nut­zen Sie die hier vor­ge­stell­ten Bei­spiele und Tipps, um Ihre Jira-Instanz mit mini­ma­lem Auf­wand effi­zi­en­ter zu ver­wal­ten und Ihre täg­li­chen Arbeits­ab­läufe zu opti­mie­ren. Wei­tere Details fin­den Sie in der offi­zi­el­len Jira Doku­men­ta­tion und der Doku­men­ta­tion des Python­pa­kets atlas­sian-python-api.