Sonarqube系列05:GitLab 集成实践
Sonarqube 支持与 GitLab 集成以提供一系列自动化交互功能,包括集成 Gitlab 登录、GitLab 项目导入及 Merge Request 评论联动。
本篇重点介绍如何配置集成以上功能。
1. 前置条件
- 已本地部署的 GitLab
- 具备相应项目权限的 GitLab 账号
- GitLab 版本>11.7
2. GitLab 登录
GitLab 支持创建 Application,提供身份验证、用户资料读取、仓库读取等功能,用于与三方平台对接,而 Sonarqube 社区版本默认实现了 GitLab 身份验证功能。
主要配置工作如下:
- GitLab 配置
- 创建集成的 Application
- Sonarqube 配置
- 配置访问地址
- 配置 Gitlab 验证信息( Application 的 ID 和 Secret )
2.1. GitLab 配置
2.1.1. 创建集成的 Application
登录 GitLab 后,按如下步骤创建登录应用。
- In the top-right corner, select your
avatar
. - Select
Settings
. - On the left sidebar, select
Applications
. - Enter a
Name
,Redirect URI
, selectScopes
.Name
: sonarqube-login.Redirect URI
: Enter your SonarQube URL with the path/oauth2/callback/gitlab
. For example,https://sonarqube.mycompany.com/oauth2/callback/gitlab
.Scopes
: Select api if you plan to enable group synchronization. Select read_user if you only plan to delegate authentication.
- Select
Save application
.
保存后记录展示的Application ID
和Secret
。
2.2. Sonarqube 配置
2.2.1. 配置访问地址
进入 Administration > Configuration > General Settings > General
:
Server base URL
: GitLab 可访问的 Sonarqube 局域网/公网基础 URL,需与 GitLab ApplicationRedirect URI
前缀一致,例如,之前填的是https://sonarqube.mycompany.com/oauth2/callback/gitlab
,这里需要填https://sonarqube.mycompany.com
,否则 GitLab 登录回调会不成功。
2.2.2. 配置 GitLab 验证信息
进入 Administration > Configuration > General Settings > ALM Integrations > GitLab > Authentication
:
Enabled
: set totrue
.Application ID
: GitLab Application ID.Secret
: GitLab Application Secret.
3. GitLab 联动
除基础的集成 GitLab 登录之外,Sonarqube 还支持通过 GitLab 开放 API 进行交互,实现 GitLab 项目导入及 Merge Request 评论联动。
3.1. GitLab 配置
3.1.1. 创建账户 Access Token
- In the top-right corner, select your
avatar
. - Select
Settings
. - On the left sidebar, select
Access Tokens
. - Enter a
Name
,Expires at
, selectScopes
.Name
: Personal access token name.Expires at
: Expire date.Scopes
: Selectapi
.
3.2. Sonarqube 配置
3.2.1. GitLab 联动配置
进入 Administration > General Settings > ALM Integrations > GitLab
:
Configuration name
: Configuration name for displayGitLab API URL
: Check in thisyour-gitlab-domain/help/api/README.md
. For GitLab13.x.x
isyour-gitlab-domain/api/v4
Personal Access token
: GitLab account access token
配置完成后 New Project
支持下拉选择 GitLab
跳转到 GitLab 项目列表页选择对应的项目,Sonarqube 会自动创建与之关联的项目。
3.2.2. 手动关联项目
除了采用上面的方式导入的 GitLab 项目实现关联外,对于已存在的项目可以手动进行关联:
进入 Project Settings > General Settings > Pull Request Decoration
Configuration name
: The configuration name that corresponds to your GitLab instanceProject ID
: Your GitLab Project ID found in GitLab