« 複数チケットに対するコメント | 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

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


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

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