DevOps实践:在GitLab CI/CD中集成静态分析Helix QAC的工作原理与优势

基于云的GitLab CI/CD平台使开发团队能够简化其CI/CD流程,并加速软件开发生命周期(SDLC)。

将严格的、基于合规性的静态分析(如Helix QAC所提供)作为新阶段添加到现有的GitLab CI/CD流程中,将进一步增强SDLC,并将您的DevOps工作流从持续集成推进到持续合规。

GitLab用户为何应在CI/CD工作流中使用Helix QAC

GitLab是一个由AI驱动的DevSecOps平台,为Wiki、问题跟踪和CI/CD流程功能提供Git存储库管理器。它由GitLab公司开发,并于2011年发布。

GitLab CI/CD(与CI/CD流程定义和工作流相关的组件)被全球软件开发团队用于许多不同的软件项目,并且越来越多地应用于各种嵌入式行业,包括航空航天、国防、汽车、医疗设备和工业自动化。

GitLab CI/CD 深受开发人员欢迎,因为它整合了开发人员的工作流程,缩短了开发周期,降低了工程风险,帮助确保应用程序更加安全,并打通了孤岛和阶段之间的壁垒。现在,许多开发团队也希望将Helix QAC之类的静态分析工具添加到GitLab中,为其CI流程增加自动化、深入的程序间分析,以确保标准合规。

Helix QAC如何与GitLab相辅相成

Helix QAC是一款静态代码分析工具,可严格准确地遵守监管严格和安全关键型行业的编码标准。

对于使用GitLab CI/CD来简化工作流并缩短DevOps周期的嵌入式开发团队,可以从GitLab与Helix QAC的结合使用中获益。Helix QAC可以在开发过程的早期识别错误、代码质量问题、合规性故障和标准偏差,同时还能轻松地进行更改,从而帮助团队实现开发左移。

与许多静态分析工具不同,Helix QAC的深度和高精度分析引擎,很少或几乎不会返回误报和漏报结果,因此,开发人员无需浪费时间去调查误报,而可以信赖这些分析结果,从一开始就确保代码安全、可靠且易于维护。

最新版本的Helix QAC更新改进了现有的Delta分析功能,通过CI-builds实现了与Perforce Validate平台的完整CI/CD集成。其对CI构建的支持,可以扩展到在基于云的CI流程中运行的分析作业、容器化构建任务,以及通过内置Web API集成到不同的CI/CD平台(如Gitlab)。

将GitLab与Helix QAC结合使用

将GitLab等CI平台与Helix QAC结合使用,可为开发人员提供一个集中化和标准化的工作基础,通过脚本和命令行工具帮助实现CI自动化。

有多种方法可以将Helix QAC静态分析工具与GitLab(或类似环境)等CI系统相集成,因为Helix QAC提供了一个命令行界面(CLI)和灵活的工具,以适应大多数工作流程和各种配置。

例如,Helix QAC可以集成到DevOps工作流程中,作为合并请求自动测试的一部分。这意味着,当开发人员认为其功能已完成并准备合并时,GitLab将运行分析,并反馈是否发现问题,而无需任何额外输入。这样,开发人员就可以执行质量门,如果Helix QAC确实发现了功能分支引入的新问题,则强制进行审查;反之,则确认功能分支没有向主分支引入任何新问题,从而简化整个合并请求流程。

Helix QAC的CI和灵活分析功能可帮助团队管理结果,并识别相较于上一次完整分析的新更改所引入的潜在缺陷。此外,开发人员可以更快地就错误或更改进行沟通,而无需等待夜间构建,另外还可以通过Validate平台访问整个组织的结果和其他数据。

这些Helix QAC功能可在GitLab流程中自动执行测试,为多个并发流程构建质量门,以确保代码的质量、安全性和编码标准的合规性。

GitLab和Helix QAC集成的工作原理

以下视频是GitLab和Helix QAC集成演示,欢迎点击观看↓

GitLab和Helix QAC集成演示

演示示例展示了开发人员打开合并请求,启动包含Helix QAC分析的CI流程的过程,该分析配置为在被合并的分支和它要合并到的项目之间执行Delta分析。在这种情况下,由于添加了新问题,GitLab提示流程失败,并提供了一个链接,供开发人员或审查员在Validate中查看这些问题。

在开发项目时,您的CI流程可以在关键步骤(如合并请求或主分支更新时)自动运行系统化的Helix QAC静态分析。

对主分支进行定期的Helix QAC分析至关重要,它能够确保其他分支与之比较的基线始终是最新的。主分支上的变更应该始终通过合并请求获得批准,因此在添加新问题时,不应该出现失败状态。

示例流程:

qac integration analysis:
	stage: test
	only:
		-master
	script:
		-make clean
		-rm -rf
		  pqra 
		  pqraproject.xml
		  -$HELIX_QACLI_PATH validate config -c -P . -U $VALIDATE_URL -b
$VALIDATE_PROJECT
	-$HELIX_QACLI_PATH sync -P . -t INJECT -g --make
	-$HELIX_QACLI_PATH validate build -P .
  • qacli validate config 命令可确保分析配置与Validate中的配置完全相同,从而在开发周期的各个阶段正确执行项目的标准和要求。

  • qacli sync 命令可确保分析所有项目文件,以防在两次提交之间添加或删除了某些文件。

  • qacli validate build 命令按配置运行分析,并将结果作为新的构建文件上传到Validate。

  • 当运行合并请求的流程时,添加新问题时的反馈至关重要,因此流程也有所不同:

    qac_MR
    stage: test
    only:
    -merge_requests
    script:
    -make clean
    -rm -rf
    pqra
    pqraproject.xml
    -$HELIX_QACLI_PATH validate config -c -P . -U $VALIDATE_URL -b
    VALIDATE_PROJECT -HELIX_QACLI_PATH sync -P . -t INJECT -g -- make
    -$HELIX_QACLI_PATH validate cibuild -P . -b
    CI_MERGE_REQUEST_SOURCE_BRANCH_NAME-CI_JOB_ID | tee file.txt
    after_script:
    - >
    if[$CI_JOB_STATUS == 'success']; then
    echo "no issued found !"
    else
    grep http://file.txt> out.txt
    glab mr note $CI_MERGE_REQUEST_IID --unique --message $(cat out.txt)
    fi

该脚本与主分支的脚本非常相似,但不同之处在于现在使用了qacli validate cibuild命令。这个新命令会分析项目,更重要的是,与主分支相比,如果要添加新的问题,它会通过delta分析进行检查。然后,结果将作为特定的 ci-build 上传到Validate,如果发现新问题,任务就会失败。after_script 用于自动向合并请求添加注释,并在Validate Web界面中提供带有ci-build 结果的链接。

ci-build 是Helix QAC 2024.2版本的旗舰功能,它基于现有的delta分析进行构建,可通过以下方式简化问题报告:

  • 如果添加了新问题,可提供即时反馈,这种情况下,系统设为simply fail 即可。
  • 可直接在Validate Web界面中查看问题,避免通过来回操作、在本地重新运行分析来检查任何新问题。
  • 被标记为偏差的问题(如ignore status)可以通过默认的质量门,从而使上述问题和流程能够顺利进行。

在此演示中,ci-builds 命令显示,合并请求中提出的所有问题都需要修复或正确偏离,才能通过CI检查。这样就能确保主分支中的所有问题都已被接受、已知并记录在案。

在 Web消息浏览器中,您可以看到所有问题并确定到底发生了什么。就像Validate中的任何其他问题一样,您可以为其分配负责人、指定状态并输入注释。在这种情况下,您应该设置一个状态来修复它,或者要求提交合并请求的开发人员修复此代码。

如果合并请求通过,或者开发人员修复了代码,您看到的问题就会越来越少,或者剩下的问题可以忽略不计。

更进一步来说,虽然此演示示例展示的是一个基本流程,但它还可以扩展更多的功能。例如,Validate有一个应用程序接口(API),可用于以各种方式增强集成,如:

  • 让合并请求中出现的注释包含更多信息,说明引入了多少问题,严重程度如何。
  • 发现新问题时,自动应用已知的系统偏差和抑制。
  • 使用自定义质量门来识别任务是否成功,而不是依赖默认的 ci-build 返回代码。

Helix QAC中CI构建功能的灵活性使开发人员能够根据需求自定义流程。

开始使用GitLab和Helix QAC

Helix QAC是一款理想的静态分析工具,可帮助基于GitLab CI/CD运行的CI/CD流程严格执行编码标准,确保功能安全合规性。Helix QAC CI/CD集成可自动执行分析,并确保开发团队拥有安全可靠的代码、一致的样式和更易于维护的代码库。

立即开始使用Gitlab和Helix QAC,优化您的DevOps合规流程。

获取更多产品支持,请咨询Perforce中国授权合作伙伴------龙智:

🌐 官网:www.shdsd.com

📞 电话:400-666-7732

📮 邮箱:marketing@shdsd.com

来源:https://bit.ly/4eLlivz

作者:Pierre-Edouard Lepere,Perforce静态分析工具销售工程师

相关推荐
网络安全(华哥)6 小时前
网络安全概论
网络·安全·web安全
XianxinMao8 小时前
企业通过私有安全端点访问大型语言模型的益处
人工智能·安全·语言模型
芯盾时代8 小时前
智能汽车的数字钥匙安全
物联网·安全·网络安全·汽车·信息与通信
zyplanke9 小时前
修改sshd默认配置,提升安全
linux·安全·ssh
安全方案9 小时前
2024信息安全网络安全等安全意识(附培训PPT下载)
网络·安全·web安全
浩浩测试一下10 小时前
Web渗透测试之XSS跨站脚本之JS输出 以及 什么是闭合标签 一篇文章给你说明白
前端·javascript·安全·web安全·网络安全·html·系统安全
兔帮大人10 小时前
Nginx安全加固系列:防范XSS
nginx·安全·xss
黑客老陈10 小时前
BaseCTF scxml 详解
开发语言·网络·python·sql·安全·web安全
路星辞*12 小时前
基于访问表的安全防范策略
运维·网络·安全·智能路由器·acl
万亿少女的梦16812 小时前
基于php的web系统漏洞攻击靶场设计与实践
前端·安全·web安全·信息安全·毕业设计·php