参考官方地址: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. 2017南开ACM校赛(网络赛) 民间题解

    orz 首先说一下这个只是民间题解,可能会有很多错误 程序还没有评测,所以可能存在问题 C题比赛的时候没想到..后来发现是个模板题,所以没有代码 希望这份题解能对读者有所启发吧... A题 直接倒序枚 ...

  2. [洛谷P3946] ことりのおやつ(小鸟的点心)

    题目大意:最短路,第$i$个点原有积雪$h_i$,极限雪高$l_i$(即雪超过极限雪高就不可以行走),每秒降雪$q$,ことり速度为$1m/s$,若时间大于$g$,则输出$wtnap wa kotori ...

  3. BZOJ 题解continue

    1041 圆上的整点 暴力枚举 会超时 这道题很像之前一次noip模拟题(当时的我还太水了(虽然现在也很水)) x2+y2=R2 考虑变型 x2=(R+y)(R-y) int d=gcd(R,y) i ...

  4. rman异机恢复,全部恢复和增量恢复

    1.首先准备工作:hostname 192.168.222.11 ol7.localdomain ol7建立相关目录:mkdir -p /u01/app/oracle/oradata/DB11G/mk ...

  5. 第一次做的jsp分页,详细代码。。。。

    自己学jsp也有了一段时间,而且自己现在上的课是java web现在雪儿基础做了一个最简单的jsp页面,代码都放在一个页面,自己准备在改进,一步步来,这里的代码可能不是很完美,没事,下面接下来会有大概 ...

  6. 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)

    本文属于本人原创,转载请注明出处:http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx [前面的话] 在网上经常看到有人对req ...

  7. HDU1232 畅通工程---(经典并查集应用)

    http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory ...

  8. 稀疏编码学习笔记(二)L2范数

    L2范数 除了L1范数,还有一种更受宠幸的规则化范数是L2范数: ||W||2.它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫 ...

  9. bzoj 2064 DP

    这道题可以抽象成两个数列,将一个数列变换为另一个 数列的代价最小 首先我们可以处理出所有的状态代表,对于每个状态 用二进制来表示,代表的是两个数列中的每一项选还是不选 那么答案最多为n1+n2-2,也 ...

  10. 硬币问题 tarjan缩点+DP 莫涛

    2013-09-15 20:04 题目描述 有这样一个游戏,桌面上摆了N枚硬币,分别标号1-N,每枚硬币有一个分数C[i]与一个后继硬币T[i].作为游戏参与者的你,可以购买一个名为mlj的小机器人, ...