参考官方地址:https://docs.sonarqube.org/display/PLUG/GitHub+Plugin

运行环境:sonarQube6.2 + sonarScanner2.8

近来,使用sonarQube的次数比较少,项目中主要是使用Visual Studio Team Service + sonarQube的方式对代码进行扫描(每一次Pull Request经过Merge之后会自动触发Build从而每次扫描最新的代码),代码都是存在于Github中,查看资料时发现当开发员将新代码提交一个Pull Request可以对代码进行扫描(是否可以是自动??

我现时测试的功能是使用创建Pull Request后,已经知道了Pull Request ID后再进行手动的扫描,并将扫描的结果放入至Github的Pull Request中的留言框中。

开始前需要满足两个条件

  1. 已经安装sonarQube服务器(这个是肯定的啦,没有sonarQube将无从谈起)
  2. 正常运行的sonarQube服务器已经安装Github插件

接下来就是我们需要设置的步骤了

一、在Github网站中生成token

打开Github网站,登陆并打开个人设置,点击Personal access tokens,然后在右边点击Generate new token

输入token的描述,权限方面只需要选择public_repo,保存当前设置,并将生成的token值保存好,运行sonarScanner需要token作为参数运行。

二、在sonarQube网站中生成token

打开sonarQube网站并登陆,这里我使用admin进行登陆

在主页点击Administrator

在跳转的页面中,选择Security>>>Users

点击Tokens,这里,我已经创建了一个Token所以会提醒修改Token

在弹出框中输入Token Name也相当于一个描述,并将生成的token值保存好,运行sonarScanner需要token作为参数运行。

三、在Github中提交新的Pull Request

如使用Github的都明白,就是将两个代码版本进行合并

四、运行sonarScanner命令

按官网上的说法运行sonarScanner命令需要的参数如下,并给出了一个示例,在试了很多次以后还是发现不能正常扫描代码

运行命令,我这里将Github Token和sonarQube Token都使用X代替,至于参数-X是因为我想在运行时得到更多的调试信息,要在运行时,还是需要指定参数projectKey和sources

sonar-scanner  -X -Dsonar.analysis.mode=preview -Dsonar.github.pullRequest= -Dsonar.github.repository=Somebody/SampleProject -Dsonar.github.oauth=XXXXXXXXXXXXXXXX -Dsonar.host.url=http://localhost:9000/ -Dsonar.login=XXXXXXXXXXXXXXXX

加入两个参数后变成以下的样式,运行完成后,会发现在Github的Pull Request中会增加很多的Comment信息,关于信息,还需要再查看是否正确

sonar-scanner  -X -Dsonar.analysis.mode=preview -Dsonar.github.pullRequest=4 -Dsonar.github.repository=Somebody/SampleProject -Dsonar.github.oauth=XXXXXXXXXXXXXXXX -Dsonar.host.url=http://localhost:9000/ -Dsonar.login=XXXXXXXXXXXXXXXX -Dsonar.sources="." -Dsonar.projectKey="sampleProject"

在这里,我尝试的结果是,在Github Pull Request 中会增加Comment,但是扫描中途会遇到错误,然后就会出现Pull Request中说还未分析完成的情况,这是一个问题,需要解决。

最后公开一下我个人写的一个小工具,github pull request扫描的功能也在其中,请参考代码https://github.com/ChenWes/sonarQubeScanner/tree/development

sonarQube Github pull request扫描代码的更多相关文章

  1. VS Code 中使用 GitHub pull request 插件提交代码

    VS Code作为一个代码编辑器,受到很多人的喜爱:其中有很多非常有用的插件/扩展功能,也会极大的提高我们的工作效率. 这里介绍一下GitHub pull request,用来向GitHub提交在VS ...

  2. Github Pull Request的提出与采纳

    这一文来简要介绍一下Github Pull Request(以下简称PR)的使用方法: 作为PR的提出者,如何对某个仓库提交PR,如何根据仓库管理者对所提交PR的反馈对PR进行完善 作为PR的接收者, ...

  3. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  4. gitHub pull Request记录

    1.fork开源项目到自己的gitHub,点fork,然后clone即可 2.提交本地修改,push到自己的代码库 3.点new pull Request,写点备忘信息 注意确保修改的正确性,如果运行 ...

  5. github pull request

    https://stackoverflow.com/questions/14680711/how-to-do-a-github-pull-request https://help.github.com ...

  6. 六、配置github的pull request触发jenkins自动构建

    之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般的正常工作中,不会允许程序员直接向主分支推送代码:正常都是fork一个本地的分支,在本地分支调试完后,向主干分支提交 ...

  7. 配置github的pull request触发jenkins自动构建

    参照: https://www.cnblogs.com/zanjiahaoge666/p/6402738.html 之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般 ...

  8. Gitlab - Pull Request

    1.概述 今天查看Gmail,有网友私密我Gitlab的Pull Request工作流程,一直以为我写过这片博客,查看<Git和Gitlab协同工作>却发现遗漏了Pull Request这 ...

  9. github 修改fork的代码之后如何提交代码并pull request

    官方的解释还是有点模糊,我是参照这篇文章来的. http://www.linuxidc.com/Linux/2012-12/76922.htm 关于Git的版本管理的原理,我是从这篇文章里面学习的. ...

随机推荐

  1. DataGridView使用

    DataGridView控件概述 DataGridView 控件代码目录(Windows 窗体) 未绑定数据列 定义:可能想要显示并非来自数据源的一列数据,这种列称为未绑定列. 数据格式示例 如何:设 ...

  2. Maven中如何将源码之外的文件打包及添加本地jar

    <build> <resources> <resource> <directory>src/main/resources</directory&g ...

  3. 【python】python获取当前日期前后N天或N月的日期

    # -*- coding: utf- -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime imp ...

  4. zTree基本功能[core]

    zTree 是一个依靠jQuery实现的多功能"树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree v3.0 将核心代码按照功能进行了分割,不需 ...

  5. [洛谷P1887]乘积最大3

    题目大意:请你找出$m$个和为$n$的正整数,他们的乘积要尽可能的大.输出字典序最小的方案 题解:对于一些数,若它们的和相同,那么越接近它们的乘积越大. 卡点:无 C++ Code: #include ...

  6. [洛谷P4238]【模板】多项式求逆

    题目大意:多项式求逆 题解:$ A^{-1}(x) = (2 - B(x) * A(x)) \times B(x) \pmod{x^n} $ ($B(x)$ 为$A(x)$在$x^{\lceil \d ...

  7. js金额转大写数字

    //金额转大写数字 const intToChinese = money => { //汉字的数字 let cnNums = new Array('零', '壹', '贰', '叁', '肆', ...

  8. POJ2396:Budget(带下界的网络流)

    Budget Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 8946   Accepted: 3327   Special ...

  9. bzoj 2304 [Apio2011]寻路 Dij+模拟+恶心建图

    [Apio2011]寻路 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 624  Solved: 193[Submit][Status][Discus ...

  10. 马上给Meltdown和Spectre漏洞打补丁

    元旦之后的第一个工作日可谓是惊喜不断,4号就传来了 Google Project Zero 等团队和个人报告的 Meltdown 和 Spectre 内核漏洞的消息,首先简单介绍一下这两个内核漏洞. ...