


Mengautomasikan Penciptaan Tiket JIRA dengan Flask API: Panduan Penyepaduan GitHub Webhook
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
- 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.
- Muat turun fail pasangan kunci untuk akses SSH.
- Buka port 5000 dalam kumpulan keselamatan untuk mengakses aplikasi kelalang.
Langkah 2: SSH ke dalam Instance
Gunakan fail pasangan kunci yang dimuat turun ke SSH ke dalam contoh:
pip install flask
Langkah 3: Sediakan Persekitaran Python
Jalankan arahan berikut untuk memasang Python dan Flask:
ssh -i your-key.pem ubuntu@<instance-public-ip> </instance-public-ip>
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
Tambahkan kandungan berikut pada fail:
nano github_jira.py
? 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.
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) </your_issue_id></your_key></your_email_addresss_connected_to_the_account></your_api_token></your-atlassian-domain>
Tambah Domain Atlassian Anda:
Gantikan
? 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>" </your-generated-api-token>
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.
Ganti medan "kunci" di bawah medan dalam skrip:
pip install flask
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.
- 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.
Ganti medan "id" di bawah jenis isu dalam skrip:
ssh -i your-key.pem ubuntu@<instance-public-ip> </instance-public-ip>
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
Langkah Terakhir: Jalankan Skrip
Setelah medan ini dikemas kini, jalankan skrip menggunakan:
nano github_jira.py
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
Jenis Kandungan:
Pilih application/json daripada menu lungsur turun.Pencetus:
Pilih pilihan "Izinkan saya memilih acara individu".
Tandai kotak untuk Keluarkan ulasan sahaja.
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.
? 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!

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

Kesan homogenitas tatasusunan pada prestasi adalah dwi: 1) homogenitas membolehkan pengkompil untuk mengoptimumkan akses memori dan meningkatkan prestasi; 2) tetapi mengehadkan kepelbagaian jenis, yang boleh menyebabkan ketidakcekapan. Singkatnya, memilih struktur data yang betul adalah penting.

ToCraftExecutablePythonscripts, ikutiTheseBestPractics: 1) addAshebangline (#!/Usr/bin/envpython3) tomakethescriptexecutable.2) setpermissionswithchmod xyour_script.py.3)

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver Mac版
Alat pembangunan web visual

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver CS6
Alat pembangunan web visual
