« 複数チケットに対するコメント | Main | 複数チケットに対するコメント(bugtraq:logregex) »

2008.02.28

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):
    pass
の後あたり(別に他のところでもOKだと思います)。内容としては、
def _cmdAssign(self, ticket):
    if ticket['status'] == 'new':
        ticket['status'] = 'assigned'
    pass

のような感じ。コマンド名のところは、_supported_cmdsのところで定義した名前にします。

 Ticketの現在のステータスがnewの場合、assignedに書き換えます。それ以外のステータスだった場合は、何も変更しません。

 とりあえず、スクリプトを直接書き換えることで対応はできましたが・・・まぁ、こんなところでしょうか。ワークフローを定義しても、自動的にその内容が反映されるわけでもなく、ワークフローを意識しながら処理を書かなければいけないところがアレですが(^^;

|

« 複数チケットに対するコメント | Main | 複数チケットに対するコメント(bugtraq:logregex) »

Subversion・Trac・etc.」カテゴリの記事

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference trac-post-commit-hookでステータスも変更:

« 複数チケットに対するコメント | Main | 複数チケットに対するコメント(bugtraq:logregex) »