Redmine REST APIを操作するpython_redmineを試してみた
Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来るようにしたい、ってことで、Redmine REST APIをPythonで扱う方法をいろいろ見てみましたが、python_redmineが必要な操作を満たしていて使い勝手が良さそうなので試してみました。
目次
RedmineでREST APIを有効にする
管理者でRedmineにログインして[API]タグ-[RESTによるWebサービスを有効にする]にチェックします。
※バージョンによっては[認証]タグにあります。
API操作に使用するユーザの[個人設定]の右ペインでAPIアクセスキーをコピーして使います。
インストール
pipでインストール出来ます。
1 2 |
$ pip install python_redmine |
基本
「key=」にAPIアクセスキーを指定します。
1 2 3 4 |
from redmine import Redmine redmine = Redmine('http://mydomain.com', key='xxxxxxxxxxxxxxxxxxxxxxxxxxxx') |
チケット登録
手入力同様に必須でもデフォルト値のあるフィールドは省略可能です。
1 2 3 4 5 6 7 8 9 10 11 |
issue = redmine.issue.new() issue.project_id = 'test' issue.subject = u'題名' issue.tracker_id = 1 issue.description = u'チケットの説明フィールド\n改行' issue.assigned_to_id = 1 issue.start_date = datetime.date(2017, 2, 1) issue.due_date = datetime.date(2017, 2, 28) issue.estimated_hours = 3 issue.save() |
project_idはプロジェクトの識別子を指定します。
tracker_id(トラッカー) はtrackerテーブルのレコードで確認します。
assigned_to_id(担当者)はusersテーブルのレコードで確認します。
estimated_hours(予定工数)は時間です。
start_date , due_dateは厳密に日付型で指定します。
チケット更新
1 2 3 4 5 |
issue = redmine.issue.get(12345) issue.status_id = 2 issue.due_date = datetime.date(2017, 3, 31) issue.save() |
該当のチケットIDはredmine.issue.getで取得します。
このチケットIDは画面で確認出来るIDです。
よくあるケースとして、ステータス、期日を変更してみました。
作業時間の記録
1 2 3 4 5 6 7 8 |
time_entry = redmine.time_entry.new() time_entry.issue_id = 12345 time_entry.spent_on = datetime.date.today() time_entry.hours = 3 time_entry.activity_id = 12 time_entry.comments = u'作業の内容' time_entry.save() |
activity_id(作業種別)は事前に確認しておきます。
spent_on(作業日)は厳密に日付型なので、datetime.today()ではなくdate.today()を使います。
issue_idにチケットIDを指定します。
今後
Slackからの操作を予定しているので、各IDとかを検索できるコマンドも用意しないと、コマンドだけでは完結しないので、そのへんも作ろうと思います。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
SourceTreeからgitサーバへSSHを使ってプッシュする
SSH URI gitのパスは/var/git/pj.gitとします。 [pla …
-
-
SQLAlchemy Session.executeでinsertしてAUTO INCREMENTでセットされたプライマリキーを取得したい
PythohのORMライブラリSQLAlchemyでMySQLにインサートしたレ …
-
-
「MonotaRo Tech #3 テスト自動化」に行ってきました
モノタロウさんの「MonotaRo Tech #3 テスト自動化」に行ってきまし …
-
-
Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する
EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …
-
-
redmine_omniauth_googleプラグインをRedmine3.0.0で動くようにする
redmine_omniauth_googleプラグインをインストールしたところ …
-
-
Redmine Agileプラグインをバージョンアップインストールする
Redmine 3.0.0でRedmineCRMのAgileプラグインをインスト …
-
-
Redmine 3.0.0に CRMプラグインをインストールする
Redmine CRMプラグインのFreeのLightバージョンを使ってみる事に …
-
-
Pandoc PDF出力時に目次とヘッダをつける
目次をつける 環境などはPandoc関連記事をご確認ください。 Pandoc実行 …
-
-
pyenv update で「pyenv: no such command `update’ 」
環境 macOS Sierra 10.12.4 pyenvのアップデート pye …
-
-
「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました
「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました。 略 …