trac-post-commit-hookでステータスも変更
trac-post-commit-hookでチケットにコメントを追記した場合、fixed などを指定するとチケットのステータスが closed となりますが、refs などの場合はステータスの変更は行われません。なので、newな状態のTicketに関連してソースを修正し、コミット時に自動的にメッセージを追記してもステータスはnewのまま。
「誰が」「どのタイミングで」「どのように」Ticketのステータスを更新するのかは、運用ルールによるところも大きいとは思いますが、場合によってはステータスの変更も行って欲しいこともあるかと。
ってことで、試してみました。手始めに、コミット時に、関連するTicketのステータスがnewの場合にassignedに変更してみます。
_supported_cmds = {'close': '_cmdClose',~のところに、反応するキーワードを指定。例えば、コミットメッセージにassigned #1234のような感じで記載されている場合に反応させる場合、
'assigned': '_cmdAssign'を追加(_cmdAssignの部分は別の値でも可)。
定義したコマンドを実装。場所としては、
def _cmdRefs(self, ticket):の後あたり(別に他のところでもOKだと思います)。内容としては、
pass
def _cmdAssign(self, ticket):
if ticket['status'] == 'new':
ticket['status'] = 'assigned'
pass
のような感じ。コマンド名のところは、_supported_cmdsのところで定義した名前にします。
Ticketの現在のステータスがnewの場合、assignedに書き換えます。それ以外のステータスだった場合は、何も変更しません。
とりあえず、スクリプトを直接書き換えることで対応はできましたが・・・まぁ、こんなところでしょうか。ワークフローを定義しても、自動的にその内容が反映されるわけでもなく、ワークフローを意識しながら処理を書かなければいけないところがアレですが(^^;
「Subversion・Trac・etc.」カテゴリの記事
- Kanboard(2017.06.13)
- XML parsing failed : (413 Request Entity Too Large)(2017.06.11)
- TortoiseSVNとクライアント証明書(2012.09.17)
- Trac 1.1.1(dev)(2012.09.15)
- Trac1.0 リリース(2012.09.09)
The comments to this entry are closed.
Comments