この記事は Okinawa.rb Advent Calendar 2018 の21日目の記事です。
最近は Laravel づくしで、Rails が恋しい今日この頃、みなさんいかがお過ごしでしょうか?
去年までフリーのプログラマやってましたが、息切れしてリーマン落ちした私です。
Excel から Redmine へ一括チケット登録
ruby から .xlsx 読んで Redmine へ REST 使って登録します。
多分他にも便利なの色々ありそうですが、、あえて書かせてもらいます。
なぜなら他にネタもないのでっ!
ということで...
確認したバージョン
redmine: 3.4.3
ruby: 2.4.4
Excel: .xlsx が使えるバージョン
事前準備
-
Redmine の REST API を有効化しといてください
-
REST 利用するユーザーのAPIアクセスキーを控えておく
ソース公開しますので、よしなにやってください。
多分動くはず。(エラー処理とかほとんどやってませんが...)
https://github.com/tokanao/xlsx2redmine
補足
-
一応新規作成時にチケットid取得して、xlsx 更新しているので、更新にも対応しています
-
実行前に xls ファイル閉じてください
-
issue シートは start_date, due_date 入れると、行の対応する日付に稼働時間(8.0)が入るので簡易 WBS としても使えます
-
tracker_id, assigned_to, status_id などの id は自分で一覧取得で確認してください
参考
https://{your Redmine domain}/projects.xml?key={REST API Key}
https://{your Redmine domain}/trackers.xml?key={REST API Key}
https://{your Redmine domain}/issues.xml?key={REST API Key}
https://{your Redmine domain}/issue_statuses.xml?key={REST API Key}
解説
もう解説とかも手抜きです。
手を抜くことは大切です。人生休み休み歩んでいきましょう。
-
メイン処理です、シート読みながら対応するテーブルを投げてます。なので、シート名は Redmine のテーブル名と一致させる必要があります
https://github.com/tokanao/xlsx2redmine/blob/master/run.rb#L220-L230 -
関連チケット情報とカスタム項目の情報収集
https://github.com/tokanao/xlsx2redmine/blob/master/run.rb#L33 -
送信用 xml 作成
https://github.com/tokanao/xlsx2redmine/blob/master/run.rb#L81 -
Redmine へリクエスト送信
https://github.com/tokanao/xlsx2redmine/blob/master/run.rb#L125
そしていきなりまとめ
え?VBAから直接やれよって?
...だってその当時 ruby 使いたかったんだもんっ!(←ココかわいい感じで)