おまけのおまけ:closeの停止とresolved対応

デフォルトでは上記プラグインが持っている機能は

  • チケットにリポジトリのコメントを連携する
  • チケットをクローズする

ですが、今回対応したケースでは、チケットクローズはマネージャがしたいので、勝手にクローズされては困ったりしました。そうじゃなくてステータスをresolvedにはしたい。困った困った。
ということで、プラグイン書き換えました。

vi /usr/local/lib/python2.6/dist-packages/Trac-0.12.2.ja1-py2.6.egg/tracopt/ticket/commit_updater.py

  def cmd_close(self, ticket, changeset, perm):
    if not self.check_perms or 'TICKET_MODIFY' in perm:
      ticket['status'] = 'resolved'         <== ここ
      if not ticket['owner']:
        ticket['owner'] = changeset.author

これでステータス変更対象が close じゃなくて resolved になりました。
あと、デフォルトではこのチケットステータス変更用のコマンドが「close」とかで気持ち悪いので、trac.iniにこんな感じで追加。

commit_ticket_update_commands.close = resolved resolve solve fix fixed fixes

関数名も変数名も close で多少気持ち悪いけど、Core ライブラリを必要以上にいじるのも気が引けるし、こんなもんでしょ。