Obtenir l'URL du ticket JIRA créé par la bibliothèque jira-python

introduction

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.

la revue

S'identifier

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." }

Création de billets

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'}
    )

Sujet principal

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

prime

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. スクリーンショット 2019-11-08 15.22.21.png

Recommended Posts

Obtenir l'URL du ticket JIRA créé par la bibliothèque jira-python
Un diagramme de réseau a été créé avec les données du COVID-19.
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
Obtenez le nom de fichier du répertoire (glob)
Obtenez le salaire moyen d'un emploi avec des conditions spécifiées sur Indeed.com
[Python] Récupérez les fichiers dans le dossier avec Python
Récupérer l'appelant d'une fonction en Python
Obtenir une liste d'utilisateurs IAM avec Boto3
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Obtenez le nom de la variable sous forme de chaîne de caractères.
Calculez la valeur totale de plusieurs colonnes avec awk
Prenez des captures d'écran LCD avec Python-LEGO Mindstorms
Essayez d'obtenir le contenu de Word avec Golang
Visualisez le vocabulaire caractéristique d'un document avec D3.js
[Python] Obtenir la liste des noms ExifTags de la bibliothèque Pillow
Obtenez l'état de fonctionnement de JR West avec Python
Obtenez l'URL de la destination de la redirection HTTP en Python
Calculer le produit des matrices avec une expression de caractère?
Obtenez le prix d'achat et de vente de la monnaie virtuelle avec l'API de l'échange Zaif et créez un graphique
Mesurer l'importance des entités avec un outil de forêt aléatoire
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Votre URL n'a pas répondu avec la valeur du paramètre de défi.
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Traitement linguistique 100 knocks-29: Obtenez l'URL de l'image du drapeau
Analysez le modèle thématique pour devenir romancier avec GensimPy3
Fabriquez un thermomètre BLE et obtenez la température avec Pythonista3
L'histoire de la création d'un bot de boîte à questions avec discord.py
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Récupérez la source de la page à charger indéfiniment avec python.
Obtenez le nombre de chiffres
Obtenez l'URL de destination du lien en spécifiant la phrase de texte avec le grattage Python (Beautiful Soup) + XPath
Traitez le contenu du fichier dans l'ordre avec un script shell
Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Si vous donnez une liste avec l'argument par défaut de la fonction ...
L'histoire de la création d'un pilote standard pour db avec python.
J'ai essayé de résumer brièvement la procédure de démarrage du développement de Django
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Compter la partie concaténée maximale d'un graphe aléatoire avec NetworkX
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
L'idée d'alimenter le fichier de configuration avec un fichier python au lieu de yaml
Pour améliorer la réutilisabilité et la maintenabilité des flux de travail créés avec Luigi
Créez une fonction pour obtenir le contenu de la base de données dans Go
Obtenez une liste de fichiers dans un dossier avec python sans chemin
L'histoire de la création d'un module qui ignore le courrier avec python
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Obtenez la météo avec les requêtes Python