コメントの@mention
このセクションでは、自動入力ドロップダウン、コメント、チェンジリスト、レビューの説明で、Swarmによるユーザの @mention とグループの @@mention の処理方法をカスタマイズする方法について説明します。
- ユーザの @mention 機能は、Swarm 2017.1以降で使用することができます。
- グループの @@mention 機能は、Swarm 2017.3以降で使用することができます。
- Helix Coreサーバが大文字と小文字を区別するように設定されている場合、除外リスト内の名前についても、大文字と小文字が区別されます。
構成情報を変更しても、構成キャッシュを再ロードしない限り、その構成情報がSwarmで使用されることはありません。構成キャッシュを再ロードすると、変更した構成情報がSwarmで強制的に使用されます。Swarm構成キャッシュを再ロードするには、admin ユーザまたはsuper ユーザでなくてはなりません。[ユーザID]ドロップダウンメニューに移動して[システム情報]を選択し、[キャッシュ情報]タブをクリックしてから[構成の再ロード]ボタンボタンをクリックします。
デフォルトの動作:
- ユーザがコメント内で @mention 機能または @@mention 機能を使用すると、Swarmにより、Swarmのすべてのユーザまたはグループについて自動入力が実行されます。
- ユーザが特定のレビューでレビュー担当者の編集を行うと、Swarmにより、Swarmのすべてのユーザとグループについて自動入力が実行されます。
- ユーザが特定のレビュー作成者の編集を行うと、Swarmにより、Swarmのすべてのユーザについて自動入力が実行されます。
SWARM_ROOT/data/config.php
ファイルのmentions構成ブロックを使用して、上記の動作を微調整することができます。以下に例を示します。
<?php
'mentions' => array(
'mode' => 'global',
'user_exclude_list' => array('super', 'swarm-admin'),
'group_exclude_list' => array('testers', 'writers'),
),
-
modeにより、レビューコメント内で@mention または@@mention の入力を開始したときに表示される自動入力ドロップダウンの範囲を指定します。
- globalを指定すると、Swarmのすべてのユーザとグループに対して自動入力ドロップダウンが表示されます。これがデフォルト値です。
- projectsを指定すると、自動入力リストに登録されているプロジェクトメンバー(ユーザとグループ)に対してのみ、自動入力ドロップダウンが表示されます。
- disabledを指定すると、自動入力ドロップダウンが非表示になります。
-
user_exclude_listを指定した場合の動作は、以下のようになります。
- Swarmで、ブラックリストに登録されているユーザについてコメント内で @mention したり、レビュー担当者を編集したり、作成者を編集したりしても、ブラックリストに登録されているユーザに対して提案が表示されることはありません。
- Swarmのコメントやレビューの説明内で、ブラックリストに登録されているユーザを @mention して手動で追加しても、それらのユーザがレビューに追加されることはありません。
- チェンジリストの説明内で、除外リストに登録されているユーザを @mention しても、それらのユーザがレビューに追加されることはありません。
- Swarm APIを使用して、除外リストに登録されているユーザをレビューに追加することはできません。
- 既にレビューに参加しているユーザを除外リストに追加した場合、そのユーザがレビューから削除されることはありません。
- ただし、レビューに関するメール通知は送信されなくなります。
ヒント除外リストに追加されたユーザについて:
-
group_exclude_listを指定した場合の動作は以下のようになります。
- Swarmで、ブラックリストに登録されているグループについてコメント内で @@mention したり、レビュー担当者を編集したりしても、ブラックリストに登録されているグループに対して提案が表示されることはありません。
- Swarmのコメントやレビューの説明内で、除外リストに登録されているグループを @@mention して手動で追加しても、それらのグループがレビューに追加されることはありません。
- チェンジリストの説明内で、除外リストに登録されているグループを @@mention しても、それらのグループがレビューに追加されることはありません。
- Swarm APIを使用して、除外リストに登録されているユーザをレビューに追加することはできません。
- すでにレビューに参加しているグループをブラックリストに追加した場合、そのグループがレビューから削除されることはありません。
- ただし、レビューに関するメール通知は送信されなくなります。
- 除外リストに登録されているグループのメンバーが、別のグループのメンバーとしてレビューに参加している場合は、引き続きレビューに関するメール通知が送信されます。
ヒント除外リストに追加されたグループについて:
除外リスト内の正規表現
ユーザとグループの除外リスト内で正規表現を使用できますが、ユーザやグループを間違って除外しないように注意する必要があります。Swarmの除外リストでは、有効なPHP正規表現であればすべて使用できますが、それらの正規表現のすべてが除外リストに対して意味のある表現であるとは限りません。
Swarmは、正規表現の先頭に「^」という文字を追加し、正規表現の末尾に「$」という文字を追加します。例えば、「^your-reg-ex-pattern$」のようになります。正規表現を作成する場合は、この点に注意してください。
- 正規表現を使用する前に、正規表現を使用した場合の結果をテストすることができます。詳細については、https://regex101.com/を参照してください。
- 除外リスト内の正規表現で大文字と小文字が区別されるかどうかは、Helixサーバの大文字と小文字の設定によって異なります。
正規表現の例
便利な正規表現の例を以下に示します。
完全一致:
「super」と指定すると、「super」という名前のユーザまたはグループだけが除外されます。
前方一致:
「admin.*」と指定すると、名前が「admin」で始まるユーザまたはグループが除外されます。
例えば、以下のようなユーザやグループが除外されます。
administrator、admin-group、admin
後方一致:
「.*admin」と指定すると、名前が「admin」で終わるユーザまたはグループが除外されます。
例えば、以下のようなユーザやグループが除外されます。
test-admin、buildadmin、admin
末尾が数値:
「.*[0-9]+」と指定すると、名前が数値で終わるユーザまたはグループが除外されます。
例えば、以下のようなユーザやグループが除外されます。
test03、admin-10、tester_123456
名前に含まれている文字列が一致:
「.*admin.*」と指定すると、名前に「admin」という文字列が含まれているユーザまたはグループが除外されます。
例えば、以下のようなユーザやグループが除外されます。
test-admin、buildadmin、administrator、admin-group、admin