zoukankan      html  css  js  c++  java
  • sonarQube Github pull request扫描代码

    参考官方地址: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=4 -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

  • 相关阅读:
    SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
    实时电商数仓(三)之数据采集(二)搭建日志采集系统的集群(二)建立父工程
    实时电商数仓(一)之系统架构
    gdb 条件断点 + 多线程 +attach
    dpdk tx_pkt_burst rte_pktmbuf_free mbuf释放
    dpdk 网卡初始化 —— 收包
    dpdk 版本变动修改
    rte_mempool_get_priv
    mempool + ring test
    dpdk mempool debug
  • 原文地址:https://www.cnblogs.com/weschen/p/6306672.html
Copyright © 2011-2022 走看看