Qiitaの記事をもとに、SonarQubeのAutomatic Issue Assignmentを紹介します。コードスキャン後に大量のIssueが見つかると、誰に割り当てるかを決める作業が負担になります。この機能はSCM情報を使って、Issueを該当コードの開発者に自動で割り当てます。
自動割り当ての仕組み
解析時にGitなどのSCM情報を取得し、Issueが検出された行の最終更新者を特定します。SonarQube上のユーザーとSCMのコミッターをメールアドレスで照合し、一致したユーザーへIssueを割り当てます。
処理の流れは次の通りです。
- 解析時に各行の最終更新者情報(
git blame相当)を取得する - Issueの位置から、その行を最後にコミットしたユーザーを特定する
- SCM上のメールアドレスをSonarQubeユーザーにマッピングする
- 対応するユーザーにIssueを割り当てる
動作確認
SonarQubeに、SCMで使うメールアドレスと一致するユーザーを登録します。記事ではGitHub連携を利用し、SonarQubeの3ユーザーに対応するアカウントからコードをコミットしています。

各ユーザーに対応するGitHubアカウントから、それぞれコードをコミットします。

コミット後に解析を実行すると、検出されたIssueが該当コードの最終コミッターに自動で割り当てられます。SCM連携が正しく設定され、ユーザーのメールアドレスが対応していることが前提です。

まとめ
SCM連携を設定すれば、Issueの担当者を手作業で決める負担を減らし、コードを変更した開発者へ改善作業をつなげられます。解析後にIssueが放置されがちなチームでは、自動割り当ての設定とユーザーのマッピングを確認してみてください。