タスクやバグのJIRAのチケットをまとめて作成したい!
けどJIRAのwebのフォームから1件ずつ作ってると、項目毎にテキストボックス切り替えたり、プルダウンメニューから項目選んだり、となかなか操作が手間ですよね。
そこで、今日はPythonを使ってJIRAチケットを作成する方法をまとめました。
日本語の記事だとあまり言及されていなかった、
- 優先度
- コンポーネント
- バージョン
- ラベル
などの入れ方についても説明します。
環境
- MacBook Pro (Retina, 13-inch, Early 2015)
- プロセッサ: 3.1 GHz Intel Core i7
- メモリ: 16 GB 1867 MHz DDR3
- OSバージョン: 10.12.3
- R : 3.3.1
準備
JIRAのパッケージをインストールします
pip install jira
軽い使い方などはこちらにも載っています
https://pypi.python.org/pypi/jira/
試しに、アトラシアンの公開JIRAからチケットの情報を抽出してみます
from jira import JIRA
jira = JIRA('https://jira.atlassian.com')
issue = jira.issue('JRA-10')
print (issue.fields.project.key) #プロジェクトキーの取得
print (issue.fields.issuetype.name) #チケットのタイプ
print (issue.fields.reporter.displayName)#報告者名
ログインする
普通に仕事でJIRAを使っていたらきっとログインしないと閲覧・投稿できないはずです。
なので!まずはログインします!
from jira import JIRA
from jira.exceptions import JIRAError
options = {'server': '(自分のJIRAのURL)'}
usr = '(ユーザー名)'
pas = '(パスワード)'
try:
jira = JIRA(options=options, basic_auth=(usr, pas))
except JIRAError as e:
if e.status_code == 401:
print ("Login to JIRA failed.")
print ("Login!!")
うまくいったら、Loginと表示されます。
チケットの作成
続いてチケットの作成です。
多様な項目を入れたチケットを作成してみましょう!
項目によって、カッコの付け方やid,nameとか微妙に違うので注意してください。
new_issue = jira.create_issue(
project='(あなたのプロジェクトキー)',
summary= '(要約)',
description= '(説明)',
issuetype={'name': '(チケットタイプ)'},
priority= {'id': '(優先度[1が最高])'},
assignee={'name': '(担当者)'},
components= [{"name": '(コンポーネント)'}],
versions = [{"name": '(バージョン)'}],
labels = ['(ラベル)']
)
print ("Done!")
優先度は、番号での指定になりますが、文字列として入力する必要があります。
またコンポーネントやバージョンは登録がないとエラーが表示されます。
あとは応用次第で、まとめてチケット作成が捗ります。
自分はExcelからまとめて、タスクをチケット化するなんてこともやってみました。