9. API and Scripting¶
9.1. Atlassian Python API¶
https://github.com/atlassian-api/atlassian-python-api/tree/master/examples/jira
pip install atlassian-python-api
from pprint import pprint
from atlassian import Jira
jira = Jira(
url="http://localhost:8000/",
username="admin",
password="admin")
status = jira.reindex().json()
pprint(status)
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")
9.2. Atlassian CLI¶
9.3. DevTools Ecosystem Integration¶
https://dev.astrotech.io/git/internals/hooks.html#branch-hook
https://dev.astrotech.io/git/tools/git-flow.html#konwencje-nazewnicze
git log --oneline --format='"%h", "%an", "%ae", "%ad", "%s"' --date=iso > ~/Desktop/git-log.csv
9.4. REST API¶
9.5. Create Issue From URL¶
Z menu u góry wybierz Projects -> View All projects -> Inspect Element (źródło strony) -> znajdź: data-project-id (to będzie pid)
http://18.195.183.213:8080/secure/CreateIssueDetails!init.jspa?pid=10000&issuetype=10002
javascript:window.location='http://18.195.183.213:8080/secure/CreateIssueDetails!init.jspa?pid=10006&issuetype=10003&fixVersions=10015&components=10002&summary=' + document.getElementById('search_form_input').value
9.6. Assignments¶
9.6.1. Atlassian Python API - Instalacja¶
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
9.6.2. Atlassian Python API - Reindeksacja¶
Stwórz skrypt
jira-reindex.py
Skrypt wykorzystując bibliotekę
atlassian-python-api
ma reindeksować JIRĘSkrypt
jira-reindex.py
dodaj Crontab by był uruchamiany o 4 w nocyPamiętaj, że cron ma inne zmienne środowiskowe
9.6.3. Atlassian Python API - Project Administrators¶
Stwórz skrypt
jira-administrators.py
Skrypt ma wylistować wszystkich administratorów projektów w JIRA w tabelce, wraz z ich e-mailem 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
9.6.4. Atlassian Python API - Changelog¶
Napisz skrypt
jira-changelog.py
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