Python と Flask を使用して GitHub の課題コメントから JIRA チケットを自動的に生成することで、ワークフローを合理化します
?導入
DevOps の世界へようこそ!今日、私たちは Jira と GitHub を橋渡ししてシームレスに統合するエキサイティングなプロジェクトに取り組みます。このプロジェクトの目標は、GitHub の課題コメントから直接 Jira チケットの作成を自動化し、時間を節約し、開発者の手動作業を軽減することです。
このプロジェクトに取り組む方法は次のとおりです:
- Flask API をセットアップする: Flask アプリケーションをホストするために、t2.micro Ubuntu ベースの EC2 インスタンスを起動します。
- Jira の構成: Jira でプロジェクトを作成し、その API を使用してチケットを作成します。
- API の統合: Jira API トークンを Flask アプリに提供することで、Jira と対話できるようになります。
すべてがセットアップされると、Flask アプリは GitHub の Webhook API として機能します。開発者が GitHub の問題について /jira にコメントするたびに、プログラムは対応する Jira チケットを自動的に作成し、Jira ダッシュボードに表示されます。ワクワクしますよね?始めましょう!
?前提条件
プロジェクトに入る前に、次のものが準備されていることを確認してください:
- GitHub アカウントと Jira アカウント: 統合を構成するには、両方のプラットフォームでアクティブなアカウントが必要です。
- Flask がインストールされました: Flask が Python 環境にセットアップされていることを確認します。そうでない場合は、次を使用してインストールできます。
pip install flask
- EC2 と Flask の基本的な理解: EC2 インスタンスのセットアップと単純な Flask アプリケーションの作成に精通していると、スムーズに進めることができます。
これらの前提条件が整ったら、このプロジェクトを開始する準備は完了です!
? EC2 インスタンスと Flask アプリケーションのセットアップ
Flask アプリケーションをホストするための EC2 インスタンスを作成して設定することからプロジェクトを始めましょう。次の手順に従ってください:
ステップ 1: EC2 インスタンスを作成する
- AWS EC2 ダッシュボードに移動し、新しい t2.micro Ubuntu ベースのインスタンスを作成します。
- インスタンスに jira-github-integration という名前を付けます。
- SSH アクセス用のキーペア ファイルをダウンロードします。
- セキュリティ グループの ポート 5000 を開いて、Flask アプリケーションにアクセスします。
ステップ 2: SSH でインスタンスに接続します
ダウンロードしたキーペア ファイルを使用してインスタンスに SSH 接続します:
pip install flask
ステップ 3: Python 環境をセットアップする
次のコマンドを実行して、Python と Flask をインストールします。
ssh -i your-key.pem ubuntu@<instance-public-ip> </instance-public-ip>
これにより、プロジェクトに必要な依存関係がすべて設定されます。
ステップ 4: Flask アプリケーションを作成する
- 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
次のコンテンツをファイルに追加します:
nano github_jira.py
? Atlassian API トークンの生成
github_jira.py スクリプトを実行する前に、2 つの重要な情報が必要です。
- Atlassian API トークン
- Atlassian ドメイン名
Atlassian API トークンを生成する手順:
- Atlassian アカウントにログインします:
- Atlassian にアクセスし、資格情報を使用してログインします。
アカウント設定に移動します:
- 右上隅にあるプロフィール写真またはアバターをクリックします。
- ドロップダウン メニューから [アカウント設定] を選択します。
- 「セキュリティ」タブに移動します:
- 「アカウント設定」ページで、「セキュリティ」タブをクリックします。
- 「API トークン」セクションで、「API トークンの作成」をクリックします。
新しい API トークンを作成します:
- 説明 (GitHub Jira Integration など) を入力し、プロンプトが表示されたらトークンの有効期限を設定します。
- 「作成」をクリックすると、API トークンが生成されます。
API トークンをコピーします:
- 「コピー」ボタンをクリックしてトークンをコピーします。
- トークンを github_jira.py スクリプトの API_TOKEN 変数に貼り付けます。
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>
Atlassian ドメインを追加します:
? github_jira.py スクリプトでの必須フィールドの構成
スクリプトを実行する前に、統合が Jira アカウントとシームレスに機能するように、github_jira.py ファイル内のいくつかの重要なフィールドを更新する必要があります。
1. HTTP Basic認証(メールアドレス)
HTTPBasicAuth の最初のパラメーターを、Jira アカウントにリンクされているメール アドレスに置き換えます。
API_TOKEN = "<your-generated-api-token>" </your-generated-api-token>
2.プロジェクトキー
- プロジェクト キーは、チケットが作成される Jira プロジェクトを一意に識別します。
- プロジェクト キーを見つけるには:
- Jira ダッシュボードに移動します。
- 「プロジェクト」タブで、チケットが作成されるプロジェクトを見つけます。
- プロジェクトキーは単純な括弧 (()) 内に表示されます。たとえば、プロジェクト Project ABC (SCRUM) では、キーは SCRUM です。
スクリプト内のフィールドの下にある「キー」フィールドを置き換えます:
pip install flask
3.問題タイプ ID
- 問題タイプ ID は、問題のタイプ (例: バグ、ストーリー、タスク) の一意の識別子です。
- 問題 ID を確認するには:
- Jira ダッシュボードで、右上隅にある 3 つの点をクリックし、[カスタム フィールドの管理] を選択します。
- プロジェクト設定で、左側のメニューから課題タイプに移動します。
- 使用するストーリーまたは問題のタイプをクリックします。
- ブラウザで URL を確認してください。 URL の最後に数値 (例: 10005) があります。これは問題タイプ ID です。
スクリプト内の issuetype の下の「id」フィールドを置き換えます:
ssh -i your-key.pem ubuntu@<instance-public-ip> </instance-public-ip>
スクリプト内の更新されたフィールドの例:
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
最終ステップ: スクリプトを実行する
これらのフィールドが更新されたら、次を使用してスクリプトを実行します。
nano github_jira.py
スクリプトは完全に構成され、GitHub コメントを Jira チケット作成と統合する準備ができました!
? Webhook を追加して統合を完了する
スクリプトの準備ができたので、最後のステップは GitHub リポジトリで Webhook を構成することです。この Webhook は特定のイベント (この場合はコメントの発行) をリッスンし、Flask アプリケーションをトリガーします。
Webhook を追加する手順:
- GitHub リポジトリに移動します:
- このプロジェクトをテストする GitHub リポジトリを開きます。 リポジトリ設定へのアクセス:
- リポジトリ メニューにある [設定] タブをクリックします。
- 左側のナビゲーション バーで、[コードと自動化] セクションにある Webhook を選択します。
新しい Webhook を追加します:
- 「Webhook を追加」ボタンをクリックします。
- Webhook を構成します:
- ペイロード URL: Flask アプリケーションの URL を入力します。これには、EC2 インスタンスのパブリック DNS と Flask エンドポイントのルートが含まれる必要があります。
pip install flask
コンテンツタイプ:
ドロップダウン メニューから application/json を選択します。トリガー:
オプション「個々のイベントを選択させます」を選択します。
コメントの問題のみのボックスをオンにします。
Webhook を保存します:
- 「Webhook の追加」ボタンをクリックして設定を保存します。
統合のテスト
- GitHub で問題を作成する:
- リポジトリの [問題] タブに移動します。
- [新しい問題] をクリックし、タイトルと説明を入力して保存します。
- 問題に関するコメント:
- 作成した課題を開き、/jira を使用してコメントを追加します。
魔法を観察してください:
- Webhook がトリガーされ、POST リクエストが Flask サーバーに送信されます。
- Flask アプリケーションはリクエストを処理し、Jira API を使用して Jira チケットを作成します。
Jira ダッシュボードで確認します:
- Jira ダッシュボードを開き、スクリプトで指定されたプロジェクトに移動します。
- GitHub の問題コメントに対応する新しく作成されたチケットが表示されます。
?結論
おめでとうございます! ? GitHub と Jira を統合する実践プロジェクトが正常に完了しました。 Flask アプリケーションを仲介として利用することで、GitHub の課題コメントから直接 Jira チケットを作成するプロセスを自動化しました。
このプロジェクトでは次のことを取り上げました:
- Flask アプリをホストするための EC2 インスタンスのセットアップ
- Jira API と対話するように Flask アプリを構成します。
- ワークフローをトリガーするための GitHub Webhook を作成および追加します。
- GitHub コメントからの Jira チケットのシームレスな作成を観察します。
この統合により、手作業が軽減され、重要なタスクが漏れないようにすることで、開発者とプロジェクト マネージャー間のコラボレーションが簡素化されます。これは、自動化によって DevOps ワークフローの生産性がどのように向上するかを示す実践的なデモンストレーションです。
この基盤を自由に構築して、統合をさらにカスタマイズしたり、Jira での GitHub プル リクエスト追跡の自動化やワークフローへの他のツールの統合などの追加のユースケースを検討したりできます。
このプロジェクトが有益で魅力的であると感じていただければ幸いです。 ?さらに有益なブログについては、Hashnode、X(Twitter)、LinkedIn でフォローしてください。
コーディングと自動化を楽しんでください! ?
以上がFlask API を使用した JIRA チケット作成の自動化: GitHub Webhook 統合ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
