Bonjour. Je suis Matsumoto du département de développement du système médiatique le 17e jour du calendrier de l'avent mediba 2016.
Chez mediba, plusieurs équipes utilisent le JIRA d'atlassian pour la gestion de projet. Je l'utilise également pour gérer les tâches qui se produisent régulièrement, mais je publie une histoire à chaque fois et publie des sous-tâches pour les membres ... Parce que c'est sobre et parfois oublié par inadvertance, j'ai essayé de simplifier le travail en utilisant l'API.
--Créez des problèmes de rapport périodique hebdomadaire à l'aide de l'API de JIRA et créez autant de problèmes de sous-tâches qu'il y a de membres
import
import
import requests
import json
import datetime
Il existe deux méthodes d'authentification pour utiliser l'API de JIRA, et cette fois, nous utiliserons le HTTP de base.
Créez une clé d'authentification à l'aide du codage BASE64.
Authentification
import base64
auth_str = 'Compte JIRA:Mot de passe JIRA'
authkey = base64.encodestring(auth_str.encode("utf8")).decode("ascii")
Pour l'analyse des paramètres tels que le type de problème, acquérez et référez-vous aux problèmes existants.
Obtenir un problème
issue_data = requests.get(
'https://URL JIRA/rest/api/2/issue/ID du problème que vous souhaitez obtenir',
headers={'Content-Type': 'application/json',
'Authorization': 'Clé d'authentification créée sur Basic}'})
L'accès à l'API est possible en incluant la clé d'authentification dans les informations d'en-tête. À partir de la réponse, obtenez les informations nécessaires pour créer le problème.
--Priority = la priorité 3 est moyenne --Issue type = issue type 5 est une sous-tâche
Je pense que cette zone changera en fonction des paramètres JIRA.
Tout d'abord, préparez les paramètres à utiliser dans la requête.
Paramètres
#Responsable de la problématique enfant
assignee = ['Responsable 1 pièce d'identité', 'ID de la personne responsable 2', 'Pièce d'identité du responsable 3']
#Date limite de rapport
duedate = str(datetime.date.today() + datetime.timedelta(3))
Ceci est une demande d'ajout d'un problème.
Ajouter un problème
addissue = requests.post(
'https://URL JIRA/rest/api/2/issue/',
json.dumps({
"fields": {
'project': {
'key': 'Clé du projet'
},
'assignee': {
'name': 'Responsable de la question parentale'
},
'reporter': {
'name': 'Journaliste du problème des parents'
},
'priority': {
'id': '3'
},
'issuetype': {
'id': '10001'
},
'labels': 'Nom de l'étiquette',
'summary':'Résumé',
'description': description,
'duedate': duedate,
}
}),
headers={'Content-Type': 'application/json',
'Authorization': 'Clé d'authentification de base}'}
)
Maintenant que le problème parent est ajouté, ajoutez le problème enfant en tant que sous-tâche. Étant donné que l'ID du problème parent est requis pour le parent, celui obtenu à partir du résultat de la requête précédente sera utilisé.
Ajouter un problème
for name in assignee:
addsub = requests.post(
'https://URL JIRA/rest/api/2/issue/',
json.dumps({
"fields": {
'project': {'key': 'Clé du projet'},
'summary': summary + '_' + name,
'assignee': {
'name': name
},
'reporter': {
'name': 'Journaliste de ticket parent'
},
'priority': {
'id': '3'
},
'parent': {
'id': addissue.json()['id']
},
'issuetype': {
'id': '5'
},
'labels': 'Nom de l'étiquette',
'description': description,
'duedate': duedate,
}
}),
headers={'Content-Type': 'application/json',
'Authorization': 'Clé d'authentification de base}'}
)
Ce qui précède, la réponse du résultat de l'exécution.
réponse
{'id': '42601',
'key': 'Clé du projet-452',
'self': 'https://URL JIRA/rest/api/2/issue/42601'}
'42601'
{'id': '42602',
'key': 'Clé du projet-453',
'self': 'https://URL JIRA/rest/api/2/issue/42602'}
{'id': '42603',
'key': 'Clé du projet-454',
'self': 'https://URL JIRA/rest/api/2/issue/42603'}
{'id': '42604',
'key': 'Clé du projet-455',
'self': 'https://URL JIRA/rest/api/2/issue/42604'}
En fait, accédez à JIRA, confirmez que le problème parent et le problème enfant ont été ajoutés normalement et terminez.
Une fois que vous connaissez les paramètres, cela fonctionnera facilement en demandant simplement l'API, donc si vous utilisez JIRA, pourquoi ne pas l'envisager? Bien sûr, curl peut être utilisé à la place. Demain, le 18 sera "Initiatives de développement à distance" de M. Sone.
Recommended Posts