2013年11月3日日曜日

Growlと連携してRedmineのチケットが自分に来た時に通知してくれるRubyスクリプト

https://gist.github.com/kakakikikeke/7289446

Gistでソースコードを公開しました
Rubyで作っています

■環境
Windows7 64bit
Ruby 2.0.0p195
Growl 2.0.9.1

■インストール方法
1. 事前準備

2. 必要なgemのインストール
コマンドプロンプトを開いて以下のコマンドを実行し必要なモジュールをインストールします
デフォルトでインストールされているモジュールもありますので必要に応じて実行してください
gem install json
gem install open-uri
gem install mail
gem install date

3. スクリプト設定
Gistからダウンロードしたcheck_ticket.rbをGrowlをインストールしたディレクトリに配置します
配置したcheck_ticket.rbに対して「rubyw.exe」で開くようにプログラムを紐付けます
※ruby.exeではなくrubyw.exeを紐付けてください、rubyw.exeを紐付けることで実行時にコマンドプロンプトを表示させないようにします

check_ticket.rbの以下の項目を設定してください
  • user_id・・・redmine上で管理されているユーザのIDを入力します、URLに表示される「query_id=」の数字を入力します
  • username・・・redmineにログインするユーザ名を入力します
  • password・・・redmineにログインするユーザのパスワードを入力します
  • redmine_hostname・・・redmineが動作しているドメインもしくはIPアドレスを入力します
  • redmine_port・・・redmineが動作しているポートを指定します、80番の場合も省略せずに入力してください
  • proxy_hostname・・・プロキシのホスト名またはIPアドレスを指定します(プロキシを利用する場合は23行目のopen_uriの部分のコメントアウトを切り替えてください)
  • proxy_port・・・プロキシが動作しているポート番号を入力します、80番の場面も省略せずに入力してください

4. Windowsタスクスケジューラの設定
タスクスケジューラを開き右上「タスクの作成」を選択します
名前、説明は適当に入力します(「Redmineチケット通知」とかにしておきましょう)
タスクの実行は「毎日」で設定します(あとで更に設定変更します)、間隔も1日で大丈夫です
タスクの実行は「プログラムの開始」を選択し、プログラムにダウンロードしてGrowlのインストールディレクトリに配置したcheck_ticket.rbを参照から選択します
そのまま確認画面にいってOKを押下してタスクを作成します

作成したタスクが一覧に表示されるのでプロパティを表示します
トリガータグから編集を選択し「トリガーの編集」ダイアログを表示します
繰り返し間隔を「1分間」に設定し、継続時間を「無期限」に設定します
繰り返し間隔はプルダウンに1分間というのがないのですが、5分間を選択したあとにプルダウンを編集して1に変更してください


これで設定は完了です
うまく動作しない場合はcheck_ticket.rbをデバッグしてエラーが出ていないか確認してください

■Tips
デバッグしたい場合は以下の内容のファイルをGrowlのインストールディレクトリに配置して実行してください
rubyの実行内容がコマンドプロンプトに表示されます
cd C:\Program Files (x86)\Growl for Windows
ruby check_ticket.rb

現状の設定だと過去5分間に更新されたチケットを通知します
なので1分毎に回るタスクだと一回の更新で通知が3から4件ほど来てしまいます
通知を減らしたい場合は時間をbefore_minute変数の時間を「60*5」ではなく「60*2」とかにしてください

0 件のコメント:

コメントを投稿