Rumah > pembangunan bahagian belakang > Tutorial Python > Mengautomasikan Penciptaan Tiket JIRA dengan Flask API: Panduan Penyepaduan GitHub Webhook

Mengautomasikan Penciptaan Tiket JIRA dengan Flask API: Panduan Penyepaduan GitHub Webhook

Patricia Arquette
Lepaskan: 2024-12-30 09:00:17
asal
998 orang telah melayarinya

Perkemas aliran kerja anda dengan menjana tiket JIRA secara automatik daripada ulasan isu GitHub menggunakan Python dan Flask

? pengenalan

Selamat datang ke dunia DevOps! Hari ini, kami menyelami projek menarik yang menghubungkan Jira dan GitHub untuk penyepaduan yang lancar. Matlamat projek ini adalah untuk mengautomasikan penciptaan tiket Jira terus daripada ulasan isu GitHub, menjimatkan masa dan mengurangkan usaha manual untuk pembangun.

Begini cara kami menangani projek ini:

  • Sediakan API Flask: Kami akan melancarkan instance EC2 berasaskan Ubuntu t2.micro untuk mengehoskan aplikasi Flask kami.
  • Konfigurasikan Jira: Kami akan membuat projek di Jira dan menggunakan APInya untuk membuat tiket.
  • Sepadukan API: Dengan menyediakan token API Jira kepada apl Flask kami, kami akan membolehkannya berinteraksi dengan Jira.

Setelah semuanya disediakan, apl Flask kami akan bertindak sebagai API webhook untuk GitHub. Pada bila-bila masa pembangun mengulas /jira pada isu GitHub, program akan membuat tiket Jira yang sepadan secara automatik, boleh dilihat pada papan pemuka Jira. Menarik kan? Mari mulakan!


? Pra-syarat

Sebelum terjun ke dalam projek, pastikan anda menyediakan yang berikut:

  • Akaun GitHub dan Jira: Anda memerlukan akaun aktif pada kedua-dua platform untuk mengkonfigurasi penyepaduan.
  • Flask Dipasang: Pastikan Flask disediakan dalam persekitaran Python anda. Jika tidak, anda boleh memasangnya menggunakan:
pip install flask
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Pemahaman Asas EC2 dan Flask: Kebiasaan dengan menyediakan tika EC2 dan mencipta aplikasi Flask mudah akan membantu anda mengikutinya dengan lancar.

Dengan adanya prasyarat ini, anda sudah bersedia untuk memulakan projek ini!


? Menyediakan Aplikasi Instance dan Flask EC2

Mari mulakan projek dengan mencipta dan menyediakan contoh EC2 untuk mengehos aplikasi Flask kami. Ikuti langkah ini:

Langkah 1: Buat Instance EC2

  • Navigasi ke Papan Pemuka AWS EC2 dan buat contoh t2.micro berasaskan Ubuntu yang baharu.
  • Namakan contoh jira-github-integration.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

  • Muat turun fail pasangan kunci untuk akses SSH.
  • Buka port 5000 dalam kumpulan keselamatan untuk mengakses aplikasi kelalang.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Langkah 2: SSH ke dalam Instance
Gunakan fail pasangan kunci yang dimuat turun ke SSH ke dalam contoh:

pip install flask
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Langkah 3: Sediakan Persekitaran Python
Jalankan arahan berikut untuk memasang Python dan Flask:

ssh -i your-key.pem ubuntu@<instance-public-ip>
Salin selepas log masuk
Salin selepas log masuk

Ini akan menyediakan semua kebergantungan yang diperlukan untuk projek.

Langkah 4: Cipta Aplikasi Kelalang

  • Buat fail baharu bernama github_jira.py:
sudo apt update  
sudo apt install python3-pip python3-venv  
python3 -m venv myvenv  
source myvenv/bin/activate  # Activate the virtual environment  
pip3 install flask          # Install Flask in the virtual environment
Salin selepas log masuk
Salin selepas log masuk

Tambahkan kandungan berikut pada fail:

nano github_jira.py
Salin selepas log masuk
Salin selepas log masuk

? Menjana Token API Atlassian

Sebelum menjalankan skrip github_jira.py, kami memerlukan dua maklumat penting:

  • Token API Atlassian
  • Nama Domain Atlassian Anda

Langkah untuk Menjana Token API Atlassian:

  • Log masuk ke Akaun Atlassian Anda:
  • Lawati Atlassian dan log masuk dengan kelayakan anda.

Navigasi ke Tetapan Akaun:

  • Klik pada gambar profil atau avatar anda di penjuru kanan sebelah atas.
  • Pilih tetapan Akaun daripada menu lungsur turun.
  • Pergi ke Tab Keselamatan:
  • Dalam halaman tetapan Akaun, klik pada tab Keselamatan.
  • Di bawah bahagian token API, klik pada Cipta token API.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Buat Token API Baharu:

  • Berikan penerangan (cth., GitHub Jira Integration) dan tetapkan tarikh tamat tempoh untuk token jika digesa.
  • Klik Buat dan token API anda akan dijana.

Salin Token API:

  • Klik butang Salin untuk menyalin token.
  • Tampal token ke dalam pembolehubah API_TOKEN dalam skrip github_jira.py anda:
 import requests
 from requests.auth import HTTPBasicAuth
 import json
 from flask import Flask, request

 app = Flask(__name__)

 # Define a route that handles POST requests
 @app.route('/createJira', methods=['POST'])
 def createJira():
     # The comment's body field in the GitHub payload
     comment_data = request.json.get("comment", {})
     comment_body = comment_data.get("body", "")

     # Check if the body field of the comment is "/jira"
     if comment_body == "/jira":
         print("Condition met. Proceeding with POST request...")

         # Jira API details
         url = "https://<Your-Atlassian-domain>/rest/api/3/issue"
         API_TOKEN = "<YOUR_API_TOKEN>"
         auth = HTTPBasicAuth("<YOUR_EMAIL_ADDRESSS_CONNECTED_TO_THE_ACCOUNT>", API_TOKEN)

         headers = {
             "Accept": "application/json",
             "Content-Type": "application/json"
         }

         payload = json.dumps({
             "fields": {
                 "description": {
                     "content": [
                         {
                             "content": [
                                 {
                                     "text": "Order entry fails when selecting supplier.",
                                     "type": "text"
                                 }
                             ],
                             "type": "paragraph"
                         }
                     ],
                     "type": "doc",
                     "version": 1
                 },
                 "project": {
                     "key": "<YOUR_KEY>"
                 },
                 "issuetype": {
                     "id": "<YOUR_ISSUE_ID>"
                 },
                 "summary": "Main order flow broken",
             },
             "update": {}
         })

         # POST request to create an issue in Jira
         response = requests.post(url, data=payload, headers=headers, auth=auth)
         print("POST request response:", response.status_code, response.text)

         # Return the response back
         return json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": "))
     else:
         print("No matching comment found. POST request will not be made.")
         return json.dumps({"error": "No matching comment found. POST request was not made."}, sort_keys=True, indent=4, separators=(",", ": "))

 if __name__ == '__main__':
     app.run(host='0.0.0.0', port=5000)
Salin selepas log masuk

Tambah Domain Atlassian Anda:
Gantikan dalam pembolehubah url dengan nama domain Atlassian anda. Contohnya, jika URL papan pemuka Jira anda ialah https://yourworkspace.atlassian.net, gunakan yourworkspace.atlassian.net sebagai domain.


? Mengkonfigurasi Medan Diperlukan dalam Skrip github_jira.py

Sebelum menjalankan skrip, anda perlu mengemas kini beberapa medan penting dalam fail github_jira.py untuk memastikan penyepaduan berfungsi dengan lancar dengan akaun Jira anda.

1. Pengesahan Asas HTTP (Alamat E-mel)
Gantikan parameter pertama dalam HTTPBasicAuth dengan alamat e-mel yang dipautkan ke akaun Jira anda.

API_TOKEN = "<Your-Generated-API-Token>"
Salin selepas log masuk

2. Kunci Projek

  • Kunci Projek secara unik mengenal pasti projek Jira tempat tiket akan dibuat.
  • Untuk mencari kunci projek anda:
  • Pergi ke Papan Pemuka Jira.
  • Di bawah tab Projek, cari projek tempat tiket akan dibuat.
  • Kunci projek dipaparkan dalam kurungan mudah (()). Contohnya, dalam projek Project ABC (SCRUM), kuncinya ialah SCRUM.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Ganti medan "kunci" di bawah medan dalam skrip:

pip install flask
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

3. ID Jenis Isu

  • ID jenis isu ialah pengecam unik untuk jenis isu (cth., Pepijat, Cerita, Tugas).
  • Untuk mencari ID isu:
  • Dalam papan pemuka Jira anda, klik tiga titik di penjuru kanan sebelah atas dan pilih Urus Medan Tersuai.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

  • Dalam Tetapan Projek, navigasi ke Jenis Isu daripada menu sebelah kiri.
  • Klik pada Cerita atau jenis isu yang anda mahu gunakan.
  • Lihat URL dalam penyemak imbas anda. Pada penghujung URL, anda akan menemui nilai berangka (mis., 10005). Ini ialah ID jenis isu anda.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Ganti medan "id" di bawah jenis isu dalam skrip:

ssh -i your-key.pem ubuntu@<instance-public-ip>
Salin selepas log masuk
Salin selepas log masuk

Contoh Medan Dikemas Kini dalam Skrip:

sudo apt update  
sudo apt install python3-pip python3-venv  
python3 -m venv myvenv  
source myvenv/bin/activate  # Activate the virtual environment  
pip3 install flask          # Install Flask in the virtual environment
Salin selepas log masuk
Salin selepas log masuk

Langkah Terakhir: Jalankan Skrip
Setelah medan ini dikemas kini, jalankan skrip menggunakan:

nano github_jira.py
Salin selepas log masuk
Salin selepas log masuk

Skrip anda kini dikonfigurasikan sepenuhnya dan bersedia untuk menyepadukan ulasan GitHub dengan penciptaan tiket Jira!


? Menambah Webhook untuk Melengkapkan Penyepaduan

Sekarang skrip kami sudah sedia, langkah terakhir ialah mengkonfigurasi webhook dalam repositori GitHub anda. Webhook ini akan mendengar acara tertentu (dalam kes ini, mengeluarkan ulasan) dan mencetuskan aplikasi Flask.

Langkah untuk Menambah Webhook:

  • Navigasi ke Repositori GitHub:
  • Buka repositori GitHub tempat anda ingin menguji projek ini. Akses Tetapan Repositori:
  • Klik pada tab Tetapan yang terdapat dalam menu repositori.
  • Dalam bar navigasi sebelah kiri, pilih Webhooks di bawah bahagian "Kod dan automasi".

Tambah Webhook Baharu:

  • Klik pada butang Tambah webhook.
  • Konfigurasikan Webhook:
  • URL Muatan: Masukkan URL aplikasi Flask anda. Ini harus termasuk DNS awam tika EC2 anda dan laluan untuk titik akhir Flask:
pip install flask
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Jenis Kandungan:
    Pilih application/json daripada menu lungsur turun.

  • Pencetus:
    Pilih pilihan "Izinkan saya memilih acara individu".
    Tandai kotak untuk Keluarkan ulasan sahaja.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Simpan Webhook:

  • Klik butang Tambah Webhook untuk menyimpan tetapan anda.

Menguji Penyepaduan

  • Buat Isu pada GitHub:
  • Navigasi ke tab Isu repositori anda.
  • Klik pada Isu Baharu, berikan tajuk dan huraian, dan simpannya.
  • Ulasan tentang Isu:
  • Buka isu yang dibuat dan tambahkan ulasan dengan /jira.

Perhatikan Sihir:

  • Webhook akan mencetuskan dan menghantar permintaan POST ke pelayan Flask.
  • Aplikasi Flask akan memproses permintaan dan mencipta tiket Jira menggunakan API Jira.

Sahkan pada Papan Pemuka Jira:

  • Buka papan pemuka Jira anda dan navigasi ke projek yang dinyatakan dalam skrip anda.
  • Anda sepatutnya melihat tiket yang baru dibuat sepadan dengan ulasan isu GitHub.

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide

Automating JIRA Ticket Creation with a Flask API: A GitHub Webhook Integration Guide


? Kesimpulan

Tahniah! ? Anda telah berjaya menyelesaikan projek praktikal yang menyepadukan GitHub dan Jira. Dengan memanfaatkan aplikasi Flask sebagai perantara, kami mengautomasikan proses mencipta tiket Jira terus daripada ulasan isu GitHub.

Dalam projek ini, kami membincangkan:

  • Menyediakan tika EC2 untuk mengehoskan apl Flask.
  • Mengkonfigurasi apl Flask untuk berinteraksi dengan API Jira.
  • Membuat dan menambah webhook GitHub untuk mencetuskan aliran kerja.
  • Memerhati penciptaan tiket Jira yang lancar daripada ulasan GitHub.

Penyepaduan ini memudahkan kerjasama antara pembangun dan pengurus projek dengan mengurangkan usaha manual dan memastikan tugas penting tidak tergelincir. Ini ialah demonstrasi praktikal tentang cara automasi boleh meningkatkan produktiviti dalam aliran kerja DevOps.

Jangan ragu untuk membina asas ini untuk menyesuaikan penyepaduan dengan lebih lanjut atau meneroka kes penggunaan tambahan, seperti mengautomasikan penjejakan Permintaan Tarik GitHub dalam Jira atau menyepadukan alatan lain ke dalam aliran kerja anda.

Kami harap anda mendapati projek ini bermaklumat dan menarik. ? Untuk blog yang lebih bermaklumat, Ikuti saya di Hashnode, X(Twitter) dan LinkedIn.

Selamat pengekodan dan mengautomasikan! ?

Atas ialah kandungan terperinci Mengautomasikan Penciptaan Tiket JIRA dengan Flask API: Panduan Penyepaduan GitHub Webhook. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan