【问题标题】:Gitlab code quality: where is the report?Gitlab 代码质量:报告在哪里?
【发布时间】:2018-09-04 21:09:23
【问题描述】:

关于这个项目:https://gitlab.com/tyvain/parcoursup/tree/master

我有一个代码质量阶段:

code_quality:
  stage: code_quality
  image: docker:stable
  variables:
    DOCKER_DRIVER: overlay2
  allow_failure: true
  services:
    - docker:stable-dind
  script:
    - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
    - docker run
        --env SOURCE_CODE="$PWD"
        --volume "$PWD":/code
        --volume /var/run/docker.sock:/var/run/docker.sock
        "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
  artifacts:
    paths: [gl-code-quality-report.json]

这个阶段总是“通过”。日志:https://gitlab.com/tyvain/parcoursup/-/jobs/94665791

我怀疑我的代码是否完美,所以某处应该存在一些代码质量问题。

代码质量报告应该在哪里输出?
这个参数是什么:“路径:[gl-code-quality-report.json]”?

【问题讨论】:

    标签: gitlab gitlab-ci


    【解决方案1】:

    这里有两个问题:

    • 该报告仅适用于“gitlab EE 版”中的合并请求(不是免费的)
    • 报告可以在这里下载为 json 文件:

    【讨论】:

      【解决方案2】:

      GitLab 解析并在合并请求中显示结果。它通过与以前的代码质量结果进行比较来工作,因此当您第一次将作业合并到master 时,您将看不到任何东西。但是,它应该适用于后续的合并请求。

      这里有更详细的解释:Code Quality

      【讨论】:

      • gitlab 中关于代码质量的文档很差。目前尚不清楚如何设置它以及如何访问它。此外,还不清楚您是否必须付费才能直接在合并请求中看到它。
      • 是的,它是 GitLab 所谓的 Auto DevOps 的一个组件。它有希望,但我也发现它的边缘相当粗糙。而且,是的,这些集成被宣传为 GitLab EE(付费)功能。
      【解决方案3】:

      这是旧的,但在这里添加它,以防其他人偶然发现它。我发现了同样的问题(成功,但没有输出),结果是测试超时。在 codeclimate 引擎上有一个默认的 900 秒超时。 codeclimate 使用的图像超过 1.5gb 的数据,因此它们需要很长时间才能在慢速连接上下载。当他们超时时,他们返回退出代码 0,但没有报告。

      通过在本地进行验证:

      docker run \
        --env CODECLIMATE_CODE=/path/to/my/code \
        --env CONTAINER_TIMEOUT_SECONDS=9000 \
        --volume /path/to/my/code:/code \
        --volume /tmp/cc:/tmp/cc \
        --volume /var/run/docker.sock:/var/run/docker.sock \
        --env CODECLIMATE_DEBUG=1 "codeclimate/codeclimate:0.83.0" \
        analyze -f json
      

      如果超时是您的问题,添加 CONTAINER_TIMEOUT_SECONDS 作为环境变量将允许您超过此值。我没有在 GitLab 中进一步使用它,因为缺少文档,并且我想要 checkstyle,并不是 GitLab 中包含代码质量的所有其他东西,并且文档不清楚如何做到这一点。

      【讨论】:

        【解决方案4】:

        从 GitLab 13.2 版开始,接受的答案应该是过时的,其中code quality widget was made available to all tiers

        【讨论】:

          【解决方案5】:

          GitLab 13.6(2020 年 11 月)改变了这种情况:

          为代码质量生成 HTML 报告

          代码质量报告为您提供有关在当前分支中发现的代码质量违规的各种信息,但它们的格式并不易于阅读。

          现在,此报告以.html 文件的形式提供,因此您可以更轻松地查看项目中的代码质量违规并确定影响。您甚至可以将文件托管在 GitLab 页面上,以便更轻松地查看!

          感谢Vicken Simonian的贡献!

          参见DocumentationIssue


          GitLab 13.11(2021 年 4 月)

          按严重性排序的代码质量违规

          对您的项目运行代码质量扫描可以发现数十到数千个违规行为。

          在合并请求小部件的较小视图中,当您对大量代码质量违规行为进行分类时,可能很难查明需要首先解决的最关键问题。

          代码质量合并请求小部件和完整代码质量报告现在都按严重程度对违规行为进行排序,以便您可以快速识别要解决的最重要的代码质量违规行为。

          参见DocumentationIssue

          【讨论】:

            最近更新 更多