https://qiita.com/mu-naka/items/9ad7f509e697e83c2987 ↑ Dans le code Python que j'ai écrit plus tôt, j'ai écrit le processus de "création d'un ticket JIRA", mais j'ai décidé d'ajouter une notification Slack au processus suivant. Je voulais inclure l'URL du ticket JIRA nouvellement créée dans le contenu de la notification Slack, mais je l'ai écrite sous forme de mémorandum car il était difficile (introuvable) de trouver l'URL même si je cherchais le document. S'il vous plaît laissez-moi savoir s'il existe une meilleure façon Cliquez ici pour la documentation officielle ↓ https://jira.readthedocs.io/en/master/index.html
Veuillez vous référer à l'article précédent pour savoir comment utiliser la bibliothèque JIRA sur python. La version python de cet article est la 3.7.
Pour utiliser JIRA, vous devez d'abord vous connecter, alors connectez-vous.
test.py
# JIRA Login
try:
jira = JIRA(options = {'server': os.environ["URL JIRA * 1"]}, basic_auth = (ID utilisateur JIRA,Mot de passe JIRA))
except JIRAError as e:
return { "status" : "JIRA Login Failed." }
test.py
# Create New Issue
newIssue = jira.create_issue(
project = 'Nom du projet * 2',
summary = 'Résumé (titre du ticket)',
description = 'Description du billet',
issuetype = {'name':'tâche'}
)
La valeur de retour de create_issue () au moment de la création du ticket est incluse dans newIssue. En regardant le contenu de ce nouveau numéro
test.py
from pprint import pprint
#(Omis)
pprint(vars(newIssue))
log
{'_base_url': '{server}/rest/{rest_path}/{rest_api_version}/{path}',
'_options': {'agile_rest_api_version': '1.0',
'agile_rest_path': 'greenhopper',
'async': False,
'async_workers': 5,
'auth_url': '/rest/auth/1/session',
'check_update': False,
'client_cert': None,
'context_path': '/jira',
'headers': {'Cache-Control': 'no-cache',
'Content-Type': 'application/json',
'X-Atlassian-Token': 'no-check'},
'resilient': True,
'rest_api_version': '2',
'rest_path': 'api',
'server': 'https://jira.hoge.com/jira',
'verify': True},
'_resource': 'issue/{0}',
'_session': <jira.resilientsession.ResilientSession object at 0x7fa801472dd0>,
'expand': 'renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations',
'fields': <class 'jira.resources.PropertyHolder'>,
'id': '12345',
'key': 'HOGE-001',
'raw': {
~ Ce qui suit est omis ~
Je l'ai omis car il a beaucoup de volume, mais il n'y avait aucun paramètre qui puisse être utilisé comme URL tel quel.
Cependant, l'URL du ticket a une règle de https: // [URL de base du serveur JIRA] / blowse / [clé de ticket]
, elle peut donc être générée avec le code suivant.
test.py
ticketUrl = newIssue._options.server + '/browse/' + newIssue.key
Utilisez le Webhook entrant pour Slack et ignorez la notification avec le code suivant.
test.py
requests.post('URL du webhook', data = json.dumps({
'text': ticketUrl,
'username': u'Nom d'utilisateur de notification',
'icon_emoji': u':bow:',
'link_names': 1
}))
Les valeurs des différents paramètres sont différentes de celles de l'exemple, mais l'URL du ticket créé avec celui-ci peut être incluse dans le contenu de la notification Slack.
Recommended Posts