JIRA Ticket automatische Erstellung mit Slack Bot ~ Slack Bot Entwicklung mit Python ① ~

Was ist in diesem Artikel zu tun?

** Automatisierung der JIRA-Ticketerstellung ** ** Erstellen Sie einen Mechanismus, damit JIRA-Tickets automatisch erstellt werden, wenn Sie mit Slack erwähnen **

Wenn Sie den Inhalt des Tickets twittern, indem Sie dem Bot eine Erwähnung von slack wie folgt hinzufügen スクリーンショット 2017-06-20 19.07.44.png

Ticket wird in JIRA erstellt スクリーンショット 2017-06-20 19.12.40.png

Da ich einen solchen Mechanismus erstellt habe, werde ich auch mein eigenes Memo schreiben

Ausführungsumgebung

 Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-6.7"

  config.vm.define "dev" do |node|
    node.vm.network "private_network", ip: "192.168.10.10"
    node.vm.synced_folder "/Users/takahirono7/projects/", "/root/project"
  end
end

Das Festlegen von synced_folder ist sehr praktisch, da Sie das Verzeichnis auf Ihrem lokalen Mac und Vagrant synchronisieren können. Die Methode ist unten zusammengefasst Dateien zwischen Gastbetriebssystemen, die auf Vagrant und Mac ausgeführt werden, synchronisieren

Bot-Benutzer hinzufügen

Zuerst müssen Sie einen Bot-Benutzer erstellen, der auf Slack ausgeführt wird

Bitte klicken Sie unter der folgenden URL auf "Neuen Bot-Benutzer erstellen", um einen Bot-Benutzer zu erstellen https://api.slack.com/bot-users

スクリーンショット 2017-06-20 19.31.54.png

Für Details wenden Sie sich bitte an die folgenden Personen, die es wunderbar zusammengefasst haben. Slackbot mit Python erstellen (1)

Nach Abschluss der Kontoerstellung den folgenden Artikel

Fügen Sie dem Bot Funktionen hinzu

Bitte auf den Punkt bringen Erstellen Sie einen Slack-Bot mit Pythons Slackbot-Bibliothek

Dieser Bereich wird von den Pionieren ausführlich erklärt, daher werde ich ihn nicht beschreiben. Ich weiß das wirklich zu schätzen.

Ich gehe zum obigen Teil über und denke, dass die Verzeichnisstruktur wie folgt ist. Unten zitiere ich den obigen Artikel von sukesuke

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

Wir werden eine Funktion hinzufügen, um einen Link zu jira zu my_mention.py zu erstellen.

Die Implementierung verwendete die Python-Jira-Bibliothek. Ich habe darüber nachgedacht, es mit Curl oder Urllib zu implementieren, aber ich denke, die Python-Jira-Bibliothek ist die einfachste. https://jira.readthedocs.io/en/master/

Fügen Sie my_mention.py Folgendes hinzu

from jira import JIRA
from jira.client import JIRA
@listen_to('create_ticket')
def create_tickets(message):
    options = {
        'server': 'https://**Jira Domain**/jira'
        }
    body  = message.body['te i xt']

    jira = JIRA(options, basic_auth=('bot_test','bot_test'))
    issue_dict = {
        'project': {'key': 'TES'},
        'summary': 'New issue from jira-python',
        'description': body ,
        'issuetype': {'name': 'Aufgabe'}
        }
    new_issue = jira.create_issue(fields=issue_dict)
    message.reply('Ticket erstellt')
#Objekt im folgenden Format abrufen
# [<JIRA Issue: key='TES-4644', id='59893'>]
    last_ticket = jira.search_issues('project = "TES" AND reporter = bot_test ORDER BY createdDate DESC', maxResults = 1)

# last_ticket[0]damit"TES-4659"などのticket keyが取得damitきる
    message.reply("https://JIRA-Domain/jira/projects/TES/issues/%s" %(last_ticket[0]))

Erläuterung

jira = JIRA(options, basic_auth=('bot_test','bot_test'))

Geben Sie grundlegende Authentifizierungsinformationen an, wenn Sie JIRA instanziieren. Vergessen Sie nicht, im Voraus einen Benutzer auf der JIRA-Seite zu erstellen

new_issue = jira.create_issue(fields=issue_dict)

Sie können ein Ticket mit der Methode create_issue erstellen. Fügen Sie optional Informationen zu Projektschlüssel, Zusammenfassung, Beschreibung und Problemtyp hinzu. Hier wird der Inhalt der Beschreibung als Inhalt der Slack-Nachricht mit body = message.body ['text'] verwendet.

    last_ticket = jira.search_issues('project = "TES" AND reporter = bot_test ORDER BY createdDate DESC', maxResults = 1)

# last_ticket[0]damit"TES-4659"などのticket keyが取得damitきる
    message.reply("https://**Jira Domain**/jira/projects/TES/issues/%s" %(last_ticket[0]))

Ich suche nach JIRA-Tickets mit der Methode jira.search_issues. Die Ergebnisse der Ticketsuche werden in einer Liste zurückgegeben. Setzen Sie den Schlüssel daher auf [0], um den Ticketschlüssel zu erhalten. Durch Hinzufügen des erhaltenen Schlüssels am Ende der URL der Jira-Domain wird die URL des Tickets abgerufen und zurückgegeben.

Mit dieser Art der Implementierung konnten wir Tickets mit Slack erstellen, wie zu Beginn beschrieben. Ich denke darüber nach, mehr Funktionen rund um JIRA zu implementieren, also werde ich es veröffentlichen, wenn ich eine Geschichte habe.

JIRA-Ticket mit Slack-Bot → Automatisierung der Slack-Benachrichtigung ~ Slack-Bot-Entwicklung mit Python② ~

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

JIRA Ticket automatische Erstellung mit Slack Bot ~ Slack Bot Entwicklung mit Python ① ~
Automatisieren Sie Slack-Benachrichtigungen für JIRA-Tickets, die heute fällig sind ~ Slack-Bot-Entwicklung mit Python ② ~
Slack Chatbot Erstellung Python
Benachrichtigen Sie Slack, wenn die Switch-Verkaufsseite aktualisiert wird ~ Slack-Bot-Entwicklung mit Python ③ ~
Lesen und Schreiben von Dateien mit Slackbot ~ Bot-Entwicklung mit Python ~
Post to Slack mit Python 3
Othello-Spieleentwicklung mit Python
Einfach mit Slack mit Bot #NowPlaying
Richten Sie mit Atom eine Python-Entwicklungsumgebung ein
Anwendungsentwicklung mit Docker + Python + Flask
[Entwicklungsumgebung] Python mit Xcode [Mit Bildschirmübergang]
Einfacher Slack API-Client mit Python
Automatische Update-Methode von Python Pyinstaller exe
Entwicklung eines Slack Bot mit Python mit chat.postMessage
WebApi-Erstellung mit Python (CRUD-Erstellung) Für Anfänger
Excel-Tabellenerstellung mit Python [Fortschrittsverwaltungstabelle]
Machen wir einen Twitter-Bot mit Python!
Bitten Sie den Bot, Ihnen das Wetter (Niederschlagsinformationen) mithilfe der Wetterinformations-API (YOLP) mitzuteilen, die von Yahoo ~ Slack Bot Development mit Python ④ ~ bereitgestellt wird
Discord Bot Himbeere Pi Null mit Python [Hinweis]
Machen Sie Twitter Trend Bot mit Heroku + Python
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
Die Abfrage [Webentwicklung mit Python] wird ebenfalls umgeleitet
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Bewegen Sie die automatische Stufe von THORLABS mit Python [für Forschungszwecke]
LINE BOT mit Python + AWS Lambda + API Gateway
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
Schritte zum Erstellen eines Twitter-Bots mit Python
Explosive Geschwindigkeit mit Python (Flasche)! Web-API-Entwicklung
Letzte Ranglistenerstellung mit der Qiita-API mit Python
Einfache Erstellung von Verkaufstools mit Python-GUI: Schätzung erstellen
Fortsetzung der Multi-Plattform-Entwicklung mit Electron und Python
[Python] Erwähnen Sie mit der Slack-API mehrere Personen
[Webentwicklung mit Python] Vorsichtsmaßnahmen beim Speichern von Cookies
Flow, um die Slack-Authentifizierung mit Flask (Python) abzuschließen
Mattermost Bot mit Python gemacht (+ Flask)
Holen Sie sich mit Poetry eine schnelle Python-Entwicklungsumgebung