Automatisez les notifications Slack pour les tickets JIRA attendus aujourd'hui ~ Développement de slack bot avec python

Que faire dans cet article

** Automatisez les notifications Slack pour les tickets JIRA qui répondent aux critères de recherche **

Affichez le ticket JIRA correspondant dans Slack en envoyant un mot spécifique au bot avec des mentions dans Slack (ici confirm_today_tickets) comme indiqué ci-dessous.

スクリーンショット 2017-06-26 22.30.29.png

Il y a un ticket créé dans JIRA PJ comme indiqué ci-dessous, et c'est une image pour afficher le ticket qui est capturé dans la condition de recherche sur Slack.

スクリーンショット 2017-06-26 22.36.29.png

Je l'ajouterai au programme créé en ① Création automatique de tickets JIRA avec slack bot ~ développement de slack bot avec python ① ~

slackbot         #Un annuaire qui organise les programmes. N'importe quel nom va bien
├─ run.py        #Démarrez le bot en exécutant ce programme
├─ slackbot_settings.py   #Fichier pour écrire les paramètres liés au bot
└─ plugins                #Ajouter une fonctionnalité de bot à ce répertoire
   ├─ __init__.py         #Un fichier pour indiquer le module. Vider c'est bien
   └─ my_mention.py       #Présente chaque fichier. N'importe quel nom va bien

La cible à modifier est à nouveau my_mention.py. Le script ressemble à ceci:

# coding: utf-8

from slackbot.bot import respond_to	 # @botname:Décodeur qui réagit avec
from slackbot.bot import listen_to	  #Décodeur qui répond aux remarques dans le canal
from jira import JIRA
from jira.client import JIRA

#Définir les variables utilisées dans les fonctions
auth_str = 'bot_test:bot_test'
admin = '@takahirono7'
server_ip = 'http://192.168.10.10:8080'
options = {
	'server': server_ip
	}
jira = JIRA(options, basic_auth=('bot_test','bot_test'))

#Décrivez le jql à utiliser
jql_confirm_today_tickets = 'project = "BOT" AND created >=  startOfDay()'
jql_confirm_current_week_tickets = 'created > StartofWeek()'


#Confirmation des billets prévue pour aujourd'hui
@respond_to('confirm_today_tickets')
def get_today_tickets(message):

	try:
#Voir les billets prévus pour le travail aujourd'hui
		today_work_tickets = jira.search_issues(jql_confirm_today_tickets)
		count_today_work_tickets = len(today_work_tickets)
		message.reply('Les travaux prévus aujourd'hui%cas s' %(count_today_work_tickets))
		for ticket in today_work_tickets:
# fields.Obtenez un résumé avec résumé
			ticket_summary = ticket.fields.summary
# fields.Obtenez un résumé avec résumé
			if ticket.fields.assignee:
				ticket_assignee = ticket.fields.assignee.name
			else:
				ticket_assignee = 'Responsable non affecté'
#Sortie vers slack dans l'ordre de l'URL du nom du ticket
			message.send(ticket_summary + 'Personne en charge: %s URL:"%s/browse/%s"' %(ticket_assignee, server_ip, ticket))

	except Exception as e:
		print("Arguments d'exception:", e.args)
		message.reply('Échec de la création du ticket, vérifiez la cause%s' %(admin))

#Confirmation des billets prévus pour cette semaine
@respond_to('confirm_current_week_tickets')
def get_current_week_tickets(message):
	try:
		current_week_tickets = jira.search_issues(jql_confirm_current_week_tickets)
		count_current_week_tickets = len(current_week_tickets)
		message.reply('Le travail à faire cette semaine%cas s' %(count_current_week_tickets))
		for ticket in current_week_tickets:
# fields.Obtenez un résumé avec résumé
			ticket_summary = ticket.fields.summary
#Sortie vers slack dans l'ordre de l'URL du nom du ticket
			message.send(ticket_summary + ' URL:"%s/browse/%s"' %(server_ip, ticket))
	except Exception as e:
		print("Arguments d'exception:", e.args)
		message.reply('Échec de la création du ticket, vérifiez la cause%s' %(admin))

La description

Vous pouvez obtenir les informations du champ ticket avec etc.

--Il existe une fonction appelée get_current_week_tickets, qui a pour rôle d'afficher les billets avec des dates de livraison dans la semaine. C'est une image de vérification des billets qui seront livrés dans la semaine le lundi matin. JQL peut afficher les tickets du dimanche au lundi suivant en utilisant le début de la semaine

Tout ce qui arrive avec JQL peut être obtenu avec la méthode jira.search_issues (), donc je pense que vous pouvez récupérer divers tickets avec JQL.

Relation

Création automatique de tickets JIRA avec slack bot ~ développement de slack bot avec python ① ~ Ticket JIRA avec bot slack → Automatisation de la notification Slack ~ développement de bot slack avec python② ~ Avertir slack lorsque la page de vente du commutateur est mise à jour ~ développement du bot slack avec python ③ ~ Demandez au bot de vous indiquer la météo (informations sur les précipitations) à l'aide de l'API d'informations météorologiques (YOLP) fournie par Yahoo ~ développement du bot slack ④ ~ avec python

Recommended Posts

Automatisez les notifications Slack pour les tickets JIRA attendus aujourd'hui ~ Développement de slack bot avec python
Création automatique de tickets JIRA avec slack bot ~ développement de slack bot avec python ① ~
Créer des tickets JIRA en utilisant Python
[Pour organiser] Environnement de développement Python
Options d'environnement de développement Python pour mai 2020
Paramètres Emacs pour l'environnement de développement Python