Trac ticket workflow
Trac0.11系からチケットステータスのフローをカスタマイズ出来る様になった。
そこで、開発中にレビュー依頼を出すフローを作ってみた。
ユースケース
事前条件:担当者がチケット作業中。statusはaccepted。
1.担当者がreview依頼を出す(アクション=toreview)。statusはreviewingに。
2.reviewerはreviewingになっているチケットをレビューjする(アクション=review)。statusはreviewedに。
3.担当者は再度acceptして作業再開。もしくはresolveしてチケット完了。
trac.ini
以下を設定
[ticket-workflow] accept = new,assigned,accepted,reopened,reviewed -> accepted accept.operations = set_owner_to_self accept.permissions = TICKET_MODIFY leave = * -> * leave.default = 1 leave.operations = leave_status reassign = new,assigned,accepted,reopened,reviewed -> assigned reassign.operations = set_owner reassign.permissions = TICKET_MODIFY reopen = closed -> reopened reopen.operations = del_resolution reopen.permissions = TICKET_CREATE resolve = new,assigned,accepted,reopened,reviewed -> closed resolve.operations = set_resolution resolve.permissions = TICKET_MODIFY toreview = new,assigned,accepted,reopened -> reviewing toreview.permissions = TICKET_MODIFY review = reviewing -> reviewed review.permissions = TICKET_MODIFY
今回はレビュー中でもticket作業は止めない方針の為、レビュー依頼の際に担当者を変更しない。もし変更したい場合は
toreview = new,assigned,accepted,reopened -> reviewing toreview.operations = set_owner toreview.permissions = TICKET_MODIFY review = reviewing -> reviewed review.operations = set_owner review.permissions = TICKET_MODIFY
の様にoperationsを設定すればOK。アクション選択ラジオボタンに担当者選択フィールドが付加される。
operationsは他に以下を選択可能。
leave_status | ステータスはそのまま |
---|---|
del_owner | 担当者を空に |
set_owner | 担当者を設定 |
set_owner_to_self | 担当者を自分自身に |
del_resolution | resolution(解決方法)を空に |
set_resolutoin | resolutionを設定する |
reset_workflow | ステータスをnewにリセット |
set_owner、set_resolutionオペレーションを設定する場合、選択肢を指定できる。
test = new,assigned,accepted,reopened -> testing test.operations = set_owner,set_resolution test.set_owner = taro,jiro test.set_resolution = invalid, fixed test.permissions = TICKET_MODIFY
なかなか便利で楽しい。
でも懲りすぎると運用が面倒になるので気をつけよう。