Helix Swarm管理者ガイド (2020.1)

コメントの@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',
        'usersBlacklist' => array('super', 'swarm-admin'),
        'groupsBlacklist' => array('testers', 'writers'),
    ),
  • modeにより、レビューコメント内で@mention または@@mention の入力を開始したときに表示される自動入力ドロップダウンの範囲を指定します。

    • globalを指定すると、Swarmのすべてのユーザとグループに対して自動入力ドロップダウンが表示されます。これがデフォルト値です。
    • projectsを指定すると、自動入力リストに登録されているプロジェクトメンバー(ユーザとグループ)に対してのみ、自動入力ドロップダウンが表示されます。
    • disabledを指定すると、自動入力ドロップダウンが非表示になります。
  • usersBlacklistを使用してユーザをブラックリストに追加した場合、以下のような動作になります。

    • Swarmで、ブラックリストに登録されているユーザについてコメント内で @mention したり、レビュー担当者を編集したり、作成者を編集したりしても、ブラックリストに登録されているユーザに対して提案が表示されることはありません。
    • Swarmのコメントやレビューの説明内で、ブラックリストに登録されているユーザを @mention して手動で追加しても、それらのユーザがレビューに追加されることはありません。
    • チェンジリストの説明内で、ブラックリストに登録されているユーザを @mention しても、それらのユーザがレビューに追加されることはありません。
    • Swarm APIを使用して、ブラックリストに登録されているユーザをレビューに追加することはできません。
    • ヒント

      ブラックリストに追加されたユーザについて:

      • 既にレビューに参加しているユーザをブラックリストに追加した場合、そのユーザがレビューから削除されることはありません。
      • ただし、レビューに関するメール通知は送信されなくなります。

  • groupsBlacklistを使用してグループをブラックリストに登録した場合、以下のような動作になります。

    • Swarmで、ブラックリストに登録されているグループについてコメント内で @@mention したり、レビュー担当者を編集したりしても、ブラックリストに登録されているグループに対して提案が表示されることはありません。
    • Swarmのコメントやレビューの説明内で、ブラックリストに登録されているグループを @@mention して手動で追加しても、それらのグループがレビューに追加されることはありません。
    • チェンジリストの説明内で、ブラックリストに登録されているグループを @@mention しても、それらのグループがレビューに追加されることはありません。
    • Swarm APIを使用して、ブラックリストに登録されているグループをレビューに追加することはできません。
    • ヒント

      ブラックリストに追加されたグループについて:

      • すでにレビューに参加しているグループをブラックリストに追加した場合、そのグループがレビューから削除されることはありません。
      • ただし、レビューに関するメール通知は送信されなくなります。
      • ブラックリストに登録されているグループのメンバーが、別のグループのメンバーとしてレビューに参加している場合は、引き続きレビューに関するメール通知が送信されます。

ブラックリスト内の正規表現

ユーザのブラックリストとグループのブラックリスト内で正規表現を使用できますが、間違ったユーザやグループをブラックリストに登録しないように注意する必要があります。 Swarmのブラックリストでは、PHPのすべての有効な正規表現を使用できますが、すべてがブラックリストに対して意味のある正規表現というわけではありません。

注意

Swarmは、正規表現の先頭に「^」という文字を追加し、正規表現の末尾に「$」という文字を追加します。 例えば、「^your-reg-ex-pattern$」のようになります。正規表現を作成する場合は、この点に注意してください。

ヒント
  • 正規表現を使用する前に、正規表現を使用した場合の結果をテストすることができます。詳細については、https://regex101.com/を参照してください。
  • ブラックリスト内の正規表現で大文字と小文字が区別されるかどうかは、Helixサーバの大文字と小文字の設定によって異なります。

正規表現の例

便利な正規表現の例を以下に示します。

完全一致:

super」と指定すると、「super」という名前のユーザまたはグループのみがブラックリストに登録されます。

前方一致:

admin.*」と指定すると、名前が「admin」で始まるユーザまたはグループがブラックリストに登録されます。

例えば、以下のようなユーザやグループがブラックリストに登録されます。

administratoradmin-groupadmin

後方一致:

.*admin」と指定すると、名前が「admin」で終わるユーザまたはグループがブラックリストに登録されます。

例えば、以下のようなユーザやグループがブラックリストに登録されます。

test-adminbuildadminadmin

末尾が数値:

.*[0-9]+」と指定すると、名前が数値で終わるユーザまたはグループがブラックリストに登録されます。

例えば、以下のようなユーザやグループがブラックリストに登録されます。

test03admin-10tester_123456

名前に含まれている文字列が一致:

.*admin.*」と指定すると、名前に「admin」という文字列が含まれているユーザまたはグループがブラックリストに登録されます。

例えば、以下のようなユーザやグループがブラックリストに登録されます。

test-adminbuildadminadministratoradmin-groupadmin