在Sonar中配置license和copyright的检查

2023-11-04

现在开源代码越来越多,代码头部的license和copyright信息在开发中容易被遗忘。那么就有必要做一些相关的检查,例如在持续集成CI中加入这方面的检查。当然,目前有很多集成在IDE中的工具来自动添加license和copyright信息,这是主动的措施,本篇要描述的是被动检查的机制。

本篇主要介绍在SonarCloud(Sonarqube也类同)中,如何添加这项检查功能。在以后的篇幅中,也会介绍其他不同的方式。

首先,简单介绍一下SonarCloud(SonarCloud是针对开源代码的检查,而Sonar也有本地的私有版本SonarQube。),它主要用于做代码的静态检查,包括扫描缺陷、安全威胁、代码单元测试覆盖率、代码重复率以及代码的坏味道等,常用于代码的持续集成中。官方地址https://sonarcloud.io/。打开后可发现可以使用Github、Bitbucket、AzureDevOps以及Gitlab账户直接授权登录。

本篇以Github账户为例,使用Github账户登录后,点击右上角头像,在下拉列表里My Organizations里会出现Github中的组。可以点击加号->Analyze new project来配置扫描项目,也可以通过在Github中配置CI来配置自动扫描(可以参看上一篇文章来配置CI)。

添加好了项目,我们就可以开始了。

步骤:

1.打开项目所在的组,如果没有在Github中创建组,有一个默认的账户所在的组。打开Quality Profiles选项卡,可以发现有很多针对不同编程语言的sonar默认的profiles(Sonar way),以Java语言为例,像下图这样。

Profile里面包含有很多Rules,而这Rules里就是sonar静态检查的规则,可以打开查看详细的内容。点击上图中的Rules的具体数字399。显示了几种类型的Rule,有Bug、Vulnerability、Code Smell和Security Hotspot。

 

2.SonarCloud提供了检查license和copyright的rule,但是在默认的Sonar way这个profile中并没有启用。下面我们来启用它。首先,新建一个profile,返回到Quality Profiles页面,点击右边的create

添加一个名字,选择Java,Parent里可以选择内置的Sonar way作为基础。点击创建后,Java-super这个profile就创建好了,点击右侧的配置图标->Active More Rules

然后再左边的搜索框内搜索copyright,可以找到Track lack of copyright and license headers这一个rule,点击Active激活。

在激活页面,可以选择rule的严重程度,并且将你所要检查的headers信息的内容填写在headerFormat里,如果是正侧匹配的,需要把下面的isRegularExpression选成true,最后Activate。这个profile就创建完了。

3.添加上面的profile到项目中

在组页面选择你的项目,然后Administration->Quality Profiles

找到Java的条目,选择Java-super这个我们刚创建好的profile即可。

4.验证扫描

扫描刚才的项目,在Issues页面中可以看到Code Smell选项中有一个issue,就是我们刚刚配置的rule扫描出来的问题。点击进去可以查看详细的是哪一个文件没有添加license和copyright header。

 

至此,我们的license和copyright检查就添加完毕了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Sonar中配置license和copyright的检查 的相关文章

  • 如何从现有存储库中的分支创建新的 GitHub 存储库?

    I have master and 新项目分支机构 现在我想创建一个全新的存储库及其基于新项目分支的主存储库 背景 我有一个存储库 其中包含三个独立的应用程序 事情并不是这样开始的 仓库中最初只有一个应用程序 然而 随着时间的推移 业务需求
  • 提供数组作为 devops 管道的参数

    我刚刚开始使用天蓝色管道 我们希望不再使用arm模板和参数文件手动部署Azure资源 而是使用devops管道来完成此任务 虽然使用单个模板 参数的 json 文件来完成此操作很简单 但我看不到处理多个文件的明智方法 我已经看到有关使用数组
  • 如何使用 env 变量作为 github actions 中输入的默认值?

    我有一个 github 操作 它有一个输入 该输入应该具有基于 env variable 的默认值 因为 github actions 不支持环境变量default字段 我想知道是否可以在我的 action yml 文件的步骤部分中重新分配
  • GitHub MarkDown:可以使用宏和变量吗?

    我一直在学习 github markdown 我有一个关于变量和宏的问题 是否可以定义变量或宏来防止重复打印文本块 用例是我有一个表生成一个大的超链接网格 链接如下所示 http www a big long big big long hy
  • Prometheus scrape_timeout的使用

    在普罗米修斯配置中 我有以下规格的工作 job name name of my job scrape interval 5m scrape timeout 30s metrics path metrics scheme http 创建指标的
  • 如何分叉一个已经分叉了上游的仓库?

    我想分叉 namecoin namecoin 但我已经分叉了比特币 比特币 后者是前者的上游父级 叉链是 比特币 比特币 gt vinced namecoin gt namecoin namecoin 当我分叉 namecoin namec
  • Github Markdown 从存储库文件加载代码块

    我想在我的中添加一个 JSON 代码块README md并且需要从repo文件加载代码块 例如 可以执行以下操作吗 json lt
  • 具有私有 git 存储库的 Cocoapods

    我想添加到podfile私有git存储库 例如 pod MyLibrary git gt email protected cdn cgi l email protection perfect top library git branch g
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • 如何正确设置 Azure DevOps 和 GitHub 之间的双向同步

    我想通过执行以下操作在 Azure DevOps 和 GitHub 之间创建双向同步 使用 CI 触发器创建 Azure DevOps 管道 将更改从 Azure DevOps 存储库推送到 GitHub 中的分支 创建第二个管道 用于侦听
  • Git 用户配置文件 - 自定义忽略

    我们有一个由 5 名开发人员组成的团队致力于硬件项目 我们有一个 user config h 文件 其中包含每个用户的特定环境和偏好的 defines 例如他们使用的硬件版本 是否应该打开声音等 目前 该文件位于我们的 gitignore
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后
  • 如何使用 Bower 正确注册 github fork

    不久前 我不得不在我的项目中使用 jQuery 插件 我需要一些不同的功能 所以我重写了这个插件 几天前我在 github 上发布了一个 fork 我想添加 打包到 Bower 存储库 分叉存储库 https github com itd2
  • 如何将 GitHub PR 的代码与其他分支的 PR 代码分开?

    我正在开发一个项目并解决问题 我正在为每个拉取请求 PR 创建一个不同的分支 上次我用他们的 PR 创建了两个不同的分支并解决了这两个问题 现在的问题是 我的两个拉取请求都与我在不同分支上推送的代码搞乱了 我借助以下命令在 git bash
  • 无法在 Eclipse 中运行从 Git 导入的项目

    我的 Eclipse 工作区中有一个来自 Github 的项目 通过 File gt Import gt Projects from GIT 但是 我无法运行该示例 因为 运行方式 下的唯一选项是 运行配置 转到 运行配置 后 我单击 浏览
  • 从另一个分支或从 master 创建 Git 分支?

    所以我是 Git 新手 我最近从存储库中提取了主分支的新版本 我创建了一个branch 1 获取某个功能并将其推送到存储库并创建拉取请求 现在我创建了一个新的branch 2 具有另一个功能 但由于我的拉取请求尚未合并 再次拉取 maste
  • 是否可以在具有高山风味的 docker 容器内构建 AOSP?

    我对 AOSP 非常陌生 我正在尝试在 Docker 上设置完整的 AOSP 以构建 Docker 映像 例如 Alpine 或 Ubuntu 映像 如果不可能 请让我知道无法在内部设置 AOSP 的原因泊坞窗图像 或者我需要编写 Dock
  • 无法连接到存储库:执行 git 命令时出错:git ls-remote -h ***public github url *** HEAD

    I have installed jenkins on ec2 instance when i try to configure my public github repo with the ec2 instance then it thr
  • 获取 Github 上已编译二进制文件的链接

    如何在 Github 上添加已编译二进制文件的链接 您可以使用 URL 链接到 GitHub 存储库中的特定文件http github com

随机推荐