Automatisieren Sie Slack-Benachrichtigungen für JIRA-Tickets, die heute fällig sind ~ Slack-Bot-Entwicklung mit Python ② ~

Was ist in diesem Artikel zu tun?

** Automatisieren Sie Slack-Benachrichtigungen für JIRA-Tickets, die Suchkriterien erfüllen **

Zeigen Sie das entsprechende JIRA-Ticket in Slack an, indem Sie dem Bot ein bestimmtes Wort mit Erwähnungen in Slack (hier verify_today_tickets) senden, wie unten gezeigt.

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

In JIRA PJ wurde ein Ticket erstellt, wie unten gezeigt, und es ist ein Bild, um das Ticket anzuzeigen, das in der Suchbedingung von Slack erfasst wurde.

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

Ich werde es dem in ① erstellten Programm hinzufügen Automatische Erstellung von JIRA-Tickets mit Slack-Bot ~ Slack-Bot-Entwicklung mit Python ① ~

slackbot         #Ein Verzeichnis, das Programme organisiert. Jeder Name ist in Ordnung
├─ run.py        #Starten Sie den Bot, indem Sie dieses Programm ausführen
├─ slackbot_settings.py   #Datei zum Schreiben von Einstellungen für Bot
└─ plugins                #Fügen Sie diesem Verzeichnis Bot-Funktionen hinzu
   ├─ __init__.py         #Eine Datei zur Angabe des Moduls. Leer ist in Ordnung
   └─ my_mention.py       #Verfügt über jede Datei. Jeder Name ist in Ordnung

Das zu bearbeitende Ziel ist wieder my_mention.py. Das Skript sieht folgendermaßen aus:

# coding: utf-8

from slackbot.bot import respond_to	 # @botname:Decoder, der mit reagiert
from slackbot.bot import listen_to	  #Decoder, der auf kanalinterne Bemerkungen reagiert
from jira import JIRA
from jira.client import JIRA

#Definieren Sie Variablen, die in Funktionen verwendet werden
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'))

#Beschreiben Sie das zu verwendende jql
jql_confirm_today_tickets = 'project = "BOT" AND created >=  startOfDay()'
jql_confirm_current_week_tickets = 'created > StartofWeek()'


#Bestätigung der Tickets, die heute stattfinden sollen
@respond_to('confirm_today_tickets')
def get_today_tickets(message):

	try:
#Sehen Sie sich Tickets an, die heute für die Arbeit geplant sind
		today_work_tickets = jira.search_issues(jql_confirm_today_tickets)
		count_today_work_tickets = len(today_work_tickets)
		message.reply('Die Arbeiten sollen heute durchgeführt werden%s Fälle' %(count_today_work_tickets))
		for ticket in today_work_tickets:
# fields.Holen Sie sich eine Zusammenfassung mit Zusammenfassung
			ticket_summary = ticket.fields.summary
# fields.Holen Sie sich eine Zusammenfassung mit Zusammenfassung
			if ticket.fields.assignee:
				ticket_assignee = ticket.fields.assignee.name
			else:
				ticket_assignee = 'Verantwortliche Person nicht zugewiesen'
#Ausgabe in der Reihenfolge der Ticketnamen-URL
			message.send(ticket_summary + 'Verantwortliche Person: %s URL:"%s/browse/%s"' %(ticket_assignee, server_ip, ticket))

	except Exception as e:
		print("Ausnahme args:", e.args)
		message.reply('Überprüfen Sie die Ursache, wenn die Ticketerstellung fehlschlägt%s' %(admin))

#Bestätigung der für diese Woche geplanten Tickets
@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('Die Arbeit, die diese Woche erledigt werden muss%s Fälle' %(count_current_week_tickets))
		for ticket in current_week_tickets:
# fields.Holen Sie sich eine Zusammenfassung mit Zusammenfassung
			ticket_summary = ticket.fields.summary
#Ausgabe in der Reihenfolge der Ticketnamen-URL
			message.send(ticket_summary + ' URL:"%s/browse/%s"' %(server_ip, ticket))
	except Exception as e:
		print("Ausnahme args:", e.args)
		message.reply('Überprüfen Sie die Ursache, wenn die Ticketerstellung fehlschlägt%s' %(admin))

Erläuterung

Sie können die Informationen des Ticketfeldes mit etc. erhalten.

Es ist ein Bild der Bestätigung eines Tickets, das innerhalb einer Woche am Montagmorgen geliefert wird. JQL kann Tickets von Sonntag bis nächsten Montag mithilfe von Wochenbeginn anzeigen

Alles, was mit JQL trifft, kann mit der Methode jira.search_issues () abgerufen werden. Ich denke, Sie können mit JQL verschiedene Tickets abholen.

Beziehung

Automatische Erstellung von JIRA-Tickets mit Slack-Bot ~ Slack-Bot-Entwicklung mit Python ① ~ JIRA-Ticket mit Slack-Bot → Automatisierung der Slack-Benachrichtigung ~ Slack-Bot-Entwicklung mit Python② ~ Benachrichtigen Sie Slack, wenn die Switch-Verkaufsseite aktualisiert wird ~ Slack-Bot-Entwicklung mit Python ③ ~ [Lassen Sie sich vom Bot das Wetter (Niederschlagsinformationen) mithilfe der Wetterinformations-API (YOLP) mitteilen, die von Yahoo bereitgestellt wird.

Recommended Posts

Automatisieren Sie Slack-Benachrichtigungen für JIRA-Tickets, die heute fällig sind ~ Slack-Bot-Entwicklung mit Python ② ~
JIRA Ticket automatische Erstellung mit Slack Bot ~ Slack Bot Entwicklung mit Python ① ~
Erstellen Sie JIRA-Tickets mit Python
[Zum Organisieren] Python-Entwicklungsumgebung
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Emacs-Einstellungen für die Python-Entwicklungsumgebung