8. API and Scripting

8.2. Sctipting

8.2.1. Reindex

Code Listing 8.1. Jira reindex
from pprint import pprint
from atlassian import Jira


jira = Jira(
    url="http://localhost:8000/",
    username="admin",
    password="admin")

status = jira.reindex().json()
pprint(status)

8.2.2. Project Administrators

Code Listing 8.2. Jira Project Administrators
import logging
from atlassian import Confluence
from atlassian import Jira


logging.basicConfig(level=logging.DEBUG, format="[%(asctime).19s] [%(levelname)s] %(message)s")
logging.getLogger("requests").setLevel(logging.WARNING)
log = logging.getLogger("jira-projects-administrators")


jira = Jira(
    url="http://localhost:8000/",
    username="admin",
    password="admin")

html = "<table><tr><th>Project Key</th><th>Project Name</th><th>Leader</th><th>Email</th></tr>"

for data in jira.project_leaders():
    log.info("{project_key} leader is {lead_name} <{lead_email}>".format(**data))
    html += "<tr><td>{project_key}</td><td>{project_name}<td></td>{lead_name}<td></td><a href='mailto:{lead_email}'>{lead_email}</a></td></tr>".format(**data)

html += "</table><p></p><p></p>"
html += "<p>Autogenerated with <a href='http://localhost:7999/projects/AGILE/repos/devops-utils-jira/browse/bin/jira-projects-administrators.py'>this script</a></p>"

confluence = Confluence(
    url="http://localhost:8090/",
    username="admin",
    password="admin")

confluence.update_page(
    page_id=13207798,
    parent_id=7471197,
    title="Administratorzy JIRA",
    body=html)

log.info("Confluence Page Created with JRIA Administrators at: http://localhost:8095/pages/viewpage.action?pageId=13207798")

8.3. Assignments

8.3.1. Atlassian Python API - Instalacja

  1. Zainstaluj bibliotekę Atlassian Python API atlassian-python-api

Note

Kod biblioteki dostępny jest na GitHub https://github.com/atlassian-api/atlassian-python-api

Warning

Wymagany Python 3.4 lub nowszy

8.3.2. Atlassian Python API - Reindeksacja

  1. Stwórz skrypt jira-reindex.py
  2. Skrypt wykorzystując bibliotekę atlassian-python-api ma reindeksować JIRĘ
  3. Skrypt jira-reindex.py dodaj Crontab by był uruchamiany o 4 w nocy
  4. Pamiętaj, że cron ma inne zmienne środowiskowe

8.3.3. Atlassian Python API - Project Administrators

  1. Stwórz skrypt jira-administrators.py

  2. Skrypt ma wyliistować wszystkich administratorów projektów w JIRA w tabelce, wraz z ich emailem jako link “mailto”

    • Wynik zapisz w Confluence i dodaj się do watchers strony, by być powiadamianym o zmianach
    • Jeżeli nie masz zainstalowanego Confluence to zrzuć do pliku /var/www/jira-admins.html i skonfiguruj nginx aby wyświetlał tą stronę
Podpowiedź:

Aby uruchomić Confluence możesz wykorzystać Docker

$ apt-get update
$ apt-get install docker.io
$ docker run -v /var/atlassian/application-data/confluence:/var/atlassian/application-data/confluence -d -p 8090:8090 atlassian/confluence-server

8.3.4. Atlassian Python API - Changelog

  1. Napisz skrypt jira-changelog.py

  2. Wygeneruj Changelog, tj. listę zadań które zmieniły się pomiędzy dwoma wersjami (wykorzystaj JQL)

    • Wynik zapisz w Confluence na osobnej stronie dla każdej wersji
    • Jeżeli nie masz zainstalowanego Confluence to zrzuć do pliku /var/www/changelog-XXX.html i skonfiguruj nginx aby wyświetlał tą stronę, XXX to nazwa wersji