Skip to content

Toru-Motora/jira_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JIRA API クライアント

JIRA REST APIを使用して課題を検索し、マークダウン形式で出力するクライアントツールとREST APIサーバー

概要

このツールは、JIRA REST APIを使用して特定のプロジェクトの課題を検索し、結果をマークダウン形式で表示・保存するためのクライアントツールです。また、REST APIエンドポイントとしても利用できます。優先度や期限に基づいて課題を整理し、緊急課題を特定して詳細情報を提供します。

機能

  • JIRA APIを使用した課題の検索
  • 優先度に基づく課題のソート
  • マークダウン表形式での課題一覧表示
  • ステータス別の課題数サマリー
  • 緊急課題の特定と詳細表示
  • マークダウンファイルへの出力
  • JSONファイルへのデータ保存
  • REST APIエンドポイントの提供

プロジェクト構造

jiraAPI/
│
├── src/                  # ソースコードディレクトリ
│   ├── jira/             # JIRAクライアント関連のモジュール
│   │   ├── __init__.py
│   │   ├── client.py     # JiraAPIClientクラス
│   │   ├── formatter.py  # データフォーマット関連の機能
│   │   └── utils.py      # ユーティリティ関数
│   │
│   ├── config/           # 設定関連
│   │   ├── __init__.py
│   │   └── settings.py   # 設定クラス
│   │
│   └── api/              # REST APIエンドポイント
│       ├── __init__.py
│       ├── app.py        # Flaskアプリケーション
│       ├── models.py     # APIモデル
│       └── services.py   # APIサービス
│
├── data/                 # データディレクトリ
│   ├── output/           # 出力ファイル(JSONやマークダウン)
│   └── logs/             # ログファイル
│
├── tests/                # テストコード
│   ├── __init__.py
│   ├── test_client.py
│   └── test_formatter.py
│
├── scripts/              # 実行スクリプト
│   ├── run_jira_client.py  # クライアント実行スクリプト
│   ├── run_api_server.py   # APIサーバー実行スクリプト
│   └── examples.py         # サンプル実行スクリプト
│
├── docs/                 # ドキュメント
│   ├── api.md            # API仕様書
│   └── examples/         # リクエスト例
│
├── requirements.txt      # 依存パッケージ
└── README.md             # プロジェクト説明

事前準備

1. APIトークンの発行

  1. Jira画面右上の「アカウント設定を管理」を選択します。
  2. 表示された画面で「セキュリティ」を選択します。
  3. 「APIトークン」セクションから「APIトークンの作成と管理」を選択します。
  4. 遷移先で「APIトークンを作成」をクリックします。
  5. 「Name」と「有効期限」を設定し、「作成」を選択します。
  6. 発行されたトークンを控え、本プログラムの api_token として利用します。

2. プロジェクトキー(ID)の取得

  1. Jira上で対象のプロジェクトを開きます。
  2. ブラウザのURLを確認します。
  3. URL内の {projectname} 部分が project_key となります。

例:

インストール

  1. リポジトリをクローン

    git clone https://github.com/yourusername/jira-api-client.git
    cd jira-api-client
    
  2. 依存パッケージのインストール

    pip install -r requirements.txt
    

設定

設定は.envファイルで管理します。以下の手順で設定してください:

  1. .env.exampleファイルを.envにコピー

    copy .env.example .env
    
  2. .envファイルを編集して、以下の設定を行います:

    # JIRA API設定
    JIRA_DOMAIN=your-domain.atlassian.net
    JIRA_EMAIL=your-email@example.com
    JIRA_API_TOKEN=your-api-token
    JIRA_PROJECT_KEY=PROJECT
    
    # APIサーバー設定
    API_HOST=0.0.0.0
    API_PORT=5000
    API_DEBUG=False
    
    # SSL検証設定
    VERIFY_SSL=True
    # SSL_CERT_PATH=/path/to/certificate.pem  # 必要に応じてコメントを解除
    

設定項目の説明

JIRA API設定

  • JIRA_DOMAIN - JIRAドメイン(例:your-domain.atlassian.net
  • JIRA_EMAIL - JIRAアカウントのメールアドレス
  • JIRA_API_TOKEN - JIRA APIトークン
  • JIRA_PROJECT_KEY - JIRAプロジェクトキー

APIサーバー設定

  • API_HOST - APIサーバーのホスト(デフォルト:0.0.0.0
  • API_PORT - APIサーバーのポート(デフォルト:5000
  • API_DEBUG - デバッグモードの有効/無効(TrueまたはFalse

SSL検証設定

  • VERIFY_SSL - SSL証明書の検証を有効/無効(TrueまたはFalse
  • SSL_CERT_PATH - カスタムSSL証明書のパス(オプション)

使用方法

クライアントの実行

python scripts/run_jira_client.py

このコマンドは、設定されたプロジェクトの課題を検索し、マークダウン形式で表示し、ファイルに保存します。

APIサーバーの実行

python scripts/run_api_server.py

このコマンドは、REST APIサーバーを起動します。デフォルトでは、ポート5000でリッスンします。

オプション:

  • --host - ホスト(デフォルト:0.0.0.0)
  • --port - ポート番号(デフォルト:5000)
  • --debug - デバッグモードで実行

サンプルスクリプトの実行

python scripts/examples.py

このスクリプトは、JIRAクライアントの基本的な使用例を示します。

API エンドポイント

JIRA課題の取得

POST /api/jira/issues

JIRA課題を取得し、JSON形式で返すエンドポイントです。

リクエスト例:

{
  "credentials": {
    "domain": "your-domain.atlassian.net",
    "email": "your-email@example.com",
    "api_token": "your-api-token",
    "project_key": "PROJECT"
  },
  "query_params": {
    "max_results": 50,
    "include_description": true,
    "output_format": "json"
  }
}

マークダウン形式での課題取得

POST /api/jira/markdown

JIRA課題をマークダウン形式で取得するエンドポイントです。

詳細なAPI仕様については、API仕様書を参照してください。

出力ファイル

実行結果は以下のディレクトリに保存されます:

  • マークダウンファイル: data/output/jira_issues_[PROJECT_KEY]_[TIMESTAMP].md
  • JSONファイル: data/output/jira_issues_[PROJECT_KEY]_[TIMESTAMP].json

テスト

テストを実行するには:

python -m unittest discover -s tests

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages