6

我有一个使用 MSBuild 构建解决方案的 Jenkins 服务器。未启用浅克隆(在高级克隆行为上),所以我认为它正在获取所有最后的提交。我正在使用 SonarQube 进行分析。我设置在构建之前运行开始分析,在构建完成后运行结束分析。SonarQube 分析成功完成,但我收到警告:

在分析过程中检测到浅克隆。某些文件会丢失 SCM 信息。这将影响问题的自动分配等功能。请配置您的构建以禁用浅层克隆。

有人知道我对 SonarQube 缺少什么可以正常工作吗?

4

3 回答 3

7

对于与 sonarcloud 集成的 github 存储库之一,我在 sonarcloud 中收到了相同的警告。

sonarcloud 浅克隆警告 github

因此,如果有人在 github 操作工作流中寻找禁用浅克隆的选项,那么只需编辑yml文件并使用fetch-depth: 0带有actions/checkout@v2step 的选项来禁用浅克隆。

完整的例子在下面提到

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0

有关更多详细信息,请访问 - https://github.com/actions/checkout#fetch-all-history-for-all-tags-and-branches

于 2020-06-21T15:07:51.737 回答
3

如文档中所述:https ://docs.travis-ci.com/user/customizing-the-build#sts=Git%20Clone%20Depth%20#

只需禁用git fetch 深度限制,.travis.yml如下所示:

git:
  depth: false

否则你是 git 克隆两次。

于 2020-04-06T05:41:53.487 回答
1

我已经修好了!当我在 Jenkins 上禁用 Shallow Clone 时,它​​仍然缺少过去的提交,所以我不得不在存储库文件夹中的 GIT bash 上运行一些命令:

git fetch --depth=1000000

(除非你有超过 100 万次提交)

然后确认我已经移除了浅层:

git fetch --unshallow

等待下一次构建和分析后,现在警告消失了,我可以看到作者了!

于 2019-11-25T15:56:27.267 回答