Hallo. Ich bin Matsumoto von der Abteilung für Mediensystementwicklung am 17. Tag des mediba Adventskalenders 2016.
Bei mediba verwenden mehrere Teams JIRA von atlassian für das Projektmanagement. Ich verwende es auch, um Aufgaben zu verwalten, die regelmäßig ausgeführt werden, aber ich veröffentliche jedes Mal eine Geschichte und veröffentliche Unteraufgaben für Mitglieder ... Da es nüchtern ist und manchmal versehentlich vergessen wird, habe ich versucht, die Arbeit mithilfe der API zu vereinfachen.
--Erstellen Sie wöchentliche Probleme mit periodischen Berichten mithilfe der JIRA-API und erstellen Sie so viele Unteraufgabenprobleme, wie Mitglieder vorhanden sind
import
import
import requests
import json
import datetime
Es gibt zwei Authentifizierungsmethoden für die Verwendung der JIRA-API. Dieses Mal verwenden wir Basic HTTP.
Erstellen Sie einen Authentifizierungsschlüssel mit BASE64-Codierung.
Authentifizierung
import base64
auth_str = 'JIRA-Konto:JIRA Passwort'
authkey = base64.encodestring(auth_str.encode("utf8")).decode("ascii")
Erfassen Sie für eine Parameteranalyse wie den Problemtyp ein vorhandenes Problem und beziehen Sie sich darauf.
Problem bekommen
issue_data = requests.get(
'https://JIRA URL/rest/api/2/issue/Problem-ID, die Sie erhalten möchten',
headers={'Content-Type': 'application/json',
'Authorization': 'In Basic erstellter Authentifizierungsschlüssel}'})
Der Zugriff auf die API ist möglich, indem der Authentifizierungsschlüssel in die Headerinformationen aufgenommen wird. Rufen Sie in der Antwort die Informationen ab, die zum Erstellen des Problems erforderlich sind.
Ich denke, dass sich dieser Bereich abhängig von den JIRA-Einstellungen ändern wird.
Bereiten Sie zunächst die Parameter vor, die in der Anforderung verwendet werden sollen.
Parameter
#Verantwortliche Person für Kinderfragen
assignee = ['Verantwortliche Person 1 ID', 'Ausweis der verantwortlichen Person 2', 'Ausweis der verantwortlichen Person 3']
#Meldefrist
duedate = str(datetime.date.today() + datetime.timedelta(3))
Dies ist eine Anforderung zum Hinzufügen eines Problems.
Problem hinzufügen
addissue = requests.post(
'https://JIRA URL/rest/api/2/issue/',
json.dumps({
"fields": {
'project': {
'key': 'Projektschlüssel'
},
'assignee': {
'name': 'Verantwortliche Person für die Elternfrage'
},
'reporter': {
'name': 'Reporter der Elternausgabe'
},
'priority': {
'id': '3'
},
'issuetype': {
'id': '10001'
},
'labels': 'Markenname',
'summary':'Zusammenfassung',
'description': description,
'duedate': duedate,
}
}),
headers={'Content-Type': 'application/json',
'Authorization': 'Grundlegender Authentifizierungsschlüssel}'}
)
Nachdem das übergeordnete Problem hinzugefügt wurde, fügen Sie das untergeordnete Problem als Unteraufgabe hinzu. Da die ID des übergeordneten Problems für das übergeordnete Problem erforderlich ist, wird die ID verwendet, die aus dem vorherigen Anforderungsergebnis erhalten wurde.
Problem hinzufügen
for name in assignee:
addsub = requests.post(
'https://JIRA URL/rest/api/2/issue/',
json.dumps({
"fields": {
'project': {'key': 'Projektschlüssel'},
'summary': summary + '_' + name,
'assignee': {
'name': name
},
'reporter': {
'name': 'Übergeordneter Ticketreporter'
},
'priority': {
'id': '3'
},
'parent': {
'id': addissue.json()['id']
},
'issuetype': {
'id': '5'
},
'labels': 'Markenname',
'description': description,
'duedate': duedate,
}
}),
headers={'Content-Type': 'application/json',
'Authorization': 'Grundlegender Authentifizierungsschlüssel}'}
)
Das obige ist die Antwort des Ausführungsergebnisses.
Antwort
{'id': '42601',
'key': 'Projektschlüssel-452',
'self': 'https://JIRA URL/rest/api/2/issue/42601'}
'42601'
{'id': '42602',
'key': 'Projektschlüssel-453',
'self': 'https://JIRA URL/rest/api/2/issue/42602'}
{'id': '42603',
'key': 'Projektschlüssel-454',
'self': 'https://JIRA URL/rest/api/2/issue/42603'}
{'id': '42604',
'key': 'Projektschlüssel-455',
'self': 'https://JIRA URL/rest/api/2/issue/42604'}
Greifen Sie tatsächlich auf JIRA zu, bestätigen Sie, dass das übergeordnete und das untergeordnete Problem normal hinzugefügt wurden, und beenden Sie den Vorgang.
Sobald Sie die Parameter kennen, funktioniert dies problemlos, indem Sie die API anfordern. Wenn Sie also JIRA verwenden, warum sollten Sie dies nicht in Betracht ziehen? Natürlich kann stattdessen Curl verwendet werden. Morgen, den 18., werden "Remote Development Initiatives" von Mr. Sone sein.
Recommended Posts