使用吉特哈布Actions对C++代码进行分析
今天的主题:吉特哈布和C++代码分析,有人问了,吉特哈布是个啥玩意?
老哥请别走,如果你读过我之前的文章,就知道我为什么管那玩意儿叫吉特哈布了。
好了,正文开始。
之前我们有提到过吉特哈布代码分析功能,它可以帮助开发者引入代码安全检查到持续集成环境和日常开发流程中。而CodeQL则是此代码分析功能幕后所使用的分析引擎。今天,我们将介绍MSVC代码分析功能,这项功能可以和CodeQL一起协同工作,针对C++吉特哈布仓库中的代码进行分析。
此操作将采用当今Visual Studio中可用的各种代码质量和安全警告,并将它们作为警报进行处理,并将它们显示在吉特哈布存储库的安全视图中。生成的代码扫描警告将为通过吉特哈布的现有功能提供支持。这些包括,突出显示贡献者PR的源代码以及他们可能引入的任何警告,或允许存储库所有者查看和管理安全选项卡下的所有警告,如下图所示:
除了支持吉特哈布内部的分析警报外,分析结果还可以作为工作流组件来发布,允许贡献者在集成开发环境中下载并查看它们。这是通过我们对SARIF的支持实现的,SARIF是一种用于分析工具的标准化文件格式。 可以使用SARIF查看器插件在Visual Studio Code中查看此格式。 这可以提供在源代码上突出显示的附加信息,使开发人员能够轻松解决发现的任何问题。
存储库需要支持CMake以确保可以提取有关如何构建项目的信息。 我们选择CMake是因为它为C++ 项目的各种性质提供了很好的抽象,并且因为它在开源社区中被广泛采用。 它还为当前未使用 Microsoft编译器构建团队提供了一条简单的路径,以获取分析设置并查看它必须提供的功能。
设置吉特哈布Action
要开始使用吉特哈布Action,你可以在安全性(选项卡)-> 设置代码扫描页面(如果在你的代码仓库中检测到C++)上找到Microsoft C++代码分析设置项,如下图所示:
安装模板后,你就可以对其进行自定义以适应代码库的特定需求。 另外,你还可以配置选项,例如忽略用于测试或更改规则集文件的一组目标。 规则集文件可以用来自定义将在默认行为之外运行的警告。还可以选择 Visual Studio 安装工具中可用的预定义规则集(在“Team ToolsStatic Analysis ToolsRule Sets”目录中)或引用签入源的自定义文件。为了获得最佳结果,创建一个自定义规则集,从 VS 中的官方规则集中添加/删除警告。这样,就可以在开发过程中保证规则集合始终是官方最新版本。
示例规则
下图展示了一个规则的定义。
总结
一般而言,我的性格驱使我关注每条编译器给我送来的警告信息。
先一遍警告信息,然后搞明白为什么会提示此警告,最后,看看代码是否可以进一步修正以清除此警告。
简单来说就是:完美主义者倾向。
有的时候,这可不是什么优点。
最后
Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Microsoft C++ Code Analysis with GitHub Actions》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
使用吉特哈布Actions对C++代码进行分析相关推荐
- 使用吉特哈布Codespaces和Visual Studio Code进行C++开发
关于缩写 为了避免行文太过膨胀,我可能会将如下全称以缩写代替,请注意. VSC: Visual Studio Code 吉特哈布:猿友应该都懂,而且因为文章限制,我也打不出来. 好了,开始呗那就. 不 ...
- 解决吉特哈布原本可以访问突然访问不了的问题
不要问我为什么不写英文名字而写吉特哈布,,,因为文章容易被 .. 今天下午访问 [吉特哈布] 突然访问不了了,错误信息提示 [吉特哈布] 的响应时间过长,具体原因可以百度,可能就是之前改的hosts文 ...
- .NET 11 个 Visual Studio 代码性能分析工具
原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...
- 11个Visual Studio代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...
- Blueprint代码详细分析-Android10.0编译系统(七)
摘要:Blueprint解析Android.bp到ninja的代码流程时如何走的? 阅读本文大约需要花费18分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Andro ...
- Rust 阴阳谜题,及纯基于代码的分析与化简
Rust 阴阳谜题,及纯基于代码的分析与化简 雾雨魔法店专栏 https://zhuanlan.zhihu.com/marisa 来源 https://zhuanlan.zhihu.com/p/522 ...
- 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研
想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研 http://blog.csdn.net/testing_is_believing/article/details/22 ...
- 【代码审计】使用SonarQube进行代码质量分析管理
2019独角兽企业重金招聘Python工程师标准>>> 在之前的开发中,代码的工作量化和质量化都是一个问题,随着近几年互联网行业的快速发展,代码已经可以来工作量化和质量化,今天我们来 ...
- 11 个 Visual Studio 代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...
最新文章
- linux挂载硬盘_一篇文章带你了解 linux 如何进行挂载
- Google Calendar API练习
- 数据更改后推送_合格的数据科学家,这些Github知识必须了解
- λ-矩阵(若尔当标准形的理论推论)
- java怎么判断类相同_java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用“===”是什么意思...
- fiddler运行原理_全网最全最细的fiddler使用教程以及工作原理
- matlab guidata两个,Matlab
- 面向.NET开发人员的Dapr——俯瞰Dapr
- 6.5 开始进入设计 … Transition to Design
- ZooKeeper学习之路 (七)ZooKeeper设计特点及典型应用场景
- java权限管理selor_Java进阶学习第四天——DOM入门
- 计算机保研面试知识点,保研面试(附面试笔试机试)
- 写bat文件,报系统找不到指定文件的处理方式
- source deactivate失败,无法退出虚拟环境
- APP启动时白屏/黑屏 或者 Activity打开时白屏/黑屏
- 计算机磁盘清理软件,清理磁盘空间的7种技巧,电脑装机、安装系统必备
- 《网络安全法》及其法律体系介绍
- 传智播客javase总结 2
- unity3d--PlayerPrefs 游戏存档
- ElasticSearch 6.3版本 Document APIs之Reindex API