サーバー管理 > SCM の変更パッケージ > 変更パッケージ レビューア/ウォッチャーの規則 > 条件の構造と要素
  
条件の構造と要素
ここでは、条件の構造と、条件に含めることのできる要素について説明します。
IssueFieldCondition 要素
アイテム フィールドの条件を使用すると、変更パッケージに関連付けられているアイテムのフィールドの値に変更パッケージのレビューを関連付けることができます。これにより、指定したフィールドが指定した値を持つ場合に誰がレビューアになるのかを指定できます。IssueFieldCondition の式では、すべてのアイテム フィールドがサポートされます。フィールド値を指定するときには正規表現も使用できます。
IssueFieldCondition 要素では、fieldName 属性と operator 属性を必ず指定する必要があります。さらに、IssueFieldCondition の後には必ず FieldValueUserFieldValueGroupFieldValue のいずれかの要素を続ける必要があります。fieldName 属性では、式で使用するフィールドの名前を指定できます。operator 属性では、フィールド値の比較に使用する演算子を指定できます。現在のところ、Equal および NotEqual という 2 つの演算子がサポートされています。正規表現では、これらの演算子の意味は "一致する" と "一致しない" になります。フィールド値のタイプが (ユーザーの) グループの場合は、演算子 Equal の意味が "グループのユーザーである" になります。すべての比較で常に大文字と小文字が区別されます。
フィールド値のタイプがユーザーの場合は、IssueFieldCondition 要素の後に UserFieldValue 要素を指定する必要があります。タイプが (ユーザーの) グループの場合は、IssueFieldCondition 要素の後に GroupFieldValue を指定する必要があります。それ以外の場合は、IssueFieldCondition 要素の後に FieldValue 要素を指定します。
FieldValue 要素にはオプションの属性 regularExpression が含まれ、これは True または False に設定できます。フィールドの値を比較するときに正規表現を使用するかどうかを指定できます。デフォルト値は False ですが、この属性の値を True に設定すると、フィールド値に正規表現を指定して、実際のフィールド値との照合に使用することができます。
たとえば、"レビューする変更パッケージに関連付けられているアイテムの Project フィールドの値が SI/GUI/Diff の場合" という条件は、次のように記述されます。
<IssueFieldCondition fieldName="Project" operator="Equal">
<FieldValue>
SI/GUI/Diff
</FieldValue>
</IssueFieldCondition>
すべての GUI プロジェクトをレビューする場合の条件は、"アイテムの Project フィールドが式 .*swing.*" と一致する場合" となり、次のように記述されます。
<IssueFieldCondition fieldName="Project" operator="Equal">
<FieldValue regularExpression="True" >
.*swing.*
</FieldValue>
</IssueFieldCondition>
さらに、"アイテムが Co-op グループのユーザーによって作成された場合" という条件は、次のように記述されます。
<IssueFieldCondition fieldName="Created User" operator="Equal">
<GroupFieldValue>
Co-op
</GroupFieldValue>
</IssueFieldCondition>
エラーとメッセージ
IssueFieldCondition が指定されている条件は、レビューする変更パッケージにアイテムが関連付けられていない場合、デフォルトで満たされていると見なされます。アイテム フィールドの条件で指定されているフィールド名が存在しない場合は、ログにエラーが記録されますが、この場合も条件は満たされていると見なされます。FieldValue で使用されている正規表現が間違っているために照合の際に例外が発生した場合は、ログにエラーが記録され、式は一致したことになります。
ChangePackageFieldCondition 要素
ChangePackageFieldCondition 要素を使用すると、変更パッケージのレビューを変更パッケージのフィールドの値に関連付けることができます。使用できるフィールドは、サマリー、ユーザー (変更パッケージの作成者)、および説明です。IssueFieldCondition と同様、ChangePackageFieldCondition には fieldName 属性と operator 属性が含まれ、同じ意味と制限を持ちます。
サポートされていないフィールドの名前を指定すると、ログにメッセージが記録され、条件は満たされません。
ChangePackageEntryFieldCondition 要素
現在サポートされている変更パッケージ エントリ フィールドは、メンバー、プロジェクト、アーカイブ、およびバリアントです。ChangePackageEntryFieldCondition にその他のフィールドを指定すると、そのフィールドは無視され、ログにメッセージが記録されます。条件は満たされません。
MemberAttributeCondition 要素
メンバー属性の条件を使用すると、変更パッケージのメンバーに属する特定のユーザー定義属性の値に変更パッケージのレビューを関連付けることができます。これにより、指定した値の属性を持つメンバーが変更パッケージに存在する場合にレビューアになるエンティティを指定できます。値に正規表現を指定することもできます。その場合は、指定した名前の属性の値が正規表現パターンに一致した場合に条件が満たされます。MemberAttributeCondition では、すべてのユーザー定義メンバー属性がサポートされています。
MemberAttributeCondition 要素は attributeName 属性と operator 属性を含みます。operator 属性では、フィールド値の比較に使用する演算子を指定できます。現在のところ、Equal および NotEqual という演算子がサポートされています。正規表現では、これらの意味は "一致する" と "一致しない" になります。attributeName 属性は、条件で使用するメンバー属性の名前を指定します。MemberAttributeCondition の後には、MemberAttributeValue 要素を 1 つだけ指定する必要があります。この要素には、regularExpression という省略可能な属性があります。この要素では、メンバー属性の値を指定できます。正規表現を使用する場合は、実際のメンバー属性の値と照合する正規表現パターンを指定します。
Reviewers 要素
Reviewers 要素を使用すると、使用する列挙ポリシー (現在サポートされているのは All ポリシーのみ)、使用する返信ポリシー (現在サポートされているのは UnOrdered のみ)、および拒否されたレビューの扱いを指定できます。これらのポリシーを指定した後、Reviewers 要素では個々の User または Group をレビューアとして指定したり、レビューアのユーザーまたはグループをアイテム フィールドから取得するように指定したりできます。
UserExpressionGroupExpression を使用する場合は、レビューする変更パッケージにアイテムが関連付けられていないとログにメッセージが記録されます。また、レビューアが存在せず、アイテム フィールドが適切なタイプでない場合は、ログにエラー メッセージが記録され、レビューアは返されません。
User タグまたはGroup タグから直接取得されたすべてのレビューアや、Issue フィールドから解決されたレビューアに対しては、領域に対する確認が実行されます。すべてのレビューアの一覧に含まれているユーザーまたはグループが領域内に存在しない場合は、ログにエラーが記録され、そのレビューアは無視されます。
レビューア規則
レビューア規則は、省略可能な条件とレビューア式で構成されます。レビューの条件が存在しない場合、その (存在しない) 条件はデフォルトで満たされていると見なされ、レビューア式に指定されているすべてのレビューアが返されます。条件が指定されている場合は、サブミットされる実際の変更パッケージと、関連付けられているアイテム (存在する場合) に対して、その条件が評価されます。条件が満たされている場合はレビューア式のレビューアが返され、満たされていない場合は返されません。