ヤマムギ

growing hard days

*

Redmine REST APIを操作するpython_redmineを試してみた

   


Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来るようにしたい、ってことで、Redmine REST APIをPythonで扱う方法をいろいろ見てみましたが、python_redmineが必要な操作を満たしていて使い勝手が良さそうなので試してみました。

python_redmine

RedmineでREST APIを有効にする

管理者でRedmineにログインして[API]タグ-[RESTによるWebサービスを有効にする]にチェックします。
※バージョンによっては[認証]タグにあります。

API操作に使用するユーザの[個人設定]の右ペインでAPIアクセスキーをコピーして使います。

インストール

pipでインストール出来ます。

基本

「key=」にAPIアクセスキーを指定します。

チケット登録

手入力同様に必須でもデフォルト値のあるフィールドは省略可能です。

project_idはプロジェクトの識別子を指定します。

tracker_id(トラッカー) はtrackerテーブルのレコードで確認します。

assigned_to_id(担当者)はusersテーブルのレコードで確認します。

estimated_hours(予定工数)は時間です。

start_date , due_dateは厳密に日付型で指定します。

チケット更新

該当のチケットIDはredmine.issue.getで取得します。
このチケットIDは画面で確認出来るIDです。

よくあるケースとして、ステータス、期日を変更してみました。

作業時間の記録

activity_id(作業種別)は事前に確認しておきます。

spent_on(作業日)は厳密に日付型なので、datetime.today()ではなくdate.today()を使います。

issue_idにチケットIDを指定します。

今後

Slackからの操作を予定しているので、各IDとかを検索できるコマンドも用意しないと、コマンドだけでは完結しないので、そのへんも作ろうと思います。

@yamamanx
開発ベンダー5年、ユーザ企業システム部門通算8年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

 - ProjectManagement, Python, Redmine ,

ad

ad

Message

メールアドレスが公開されることはありません。

  関連記事

Redmineの作業時間、予定工数をSQLで抽出

プラグインとかでやればいいのかもなのですが、可視化はダッシュボードツールとかBI …

Redmine プラグイン開発チュートリアルをやってみる

Redmine 3.0環境でプラグインを作成するチュートリアルをやってみました。 …

pythonのsqlalchemyで嵌った話

エラーメッセージ InvalidRequestError: SQL expres …

Redmine Agileプラグインをバージョンアップインストールする

Redmine 3.0.0でRedmineCRMのAgileプラグインをインスト …

CentOS 6でPythonからOracleに接続する

OracleのデータをPythonでさわりたくて、その実行環境がCentOS6の …

CentOS 6.5にTeX Liveをインストールする

CentOS 6.5にTeX Liveをインストールする TeX Wikiを参考 …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

RedmineにGoogleAppsアカウントでログイン出来るようにする

RedmineのログインをGoogleアカウントで出来るように[redmine_ …

SourceTreeからgitサーバへSSHを使ってプッシュする

SSH URI gitのパスは/var/git/pj.gitとします。 [pla …

CentOS 6.5にRedmineをインストールするためにrubyをインストールする

とりあえずgitは入っている前提で [crayon-599e786cd5d3e9 …