我正在尝试找到一种可移植的方式来为 GitHub 生成代码注释,以避免供应商锁定。
主要是我想在构建过程中将注释转储到文件(yaml,json,...(中,并在最后有一个任务将该文件转换为github注释。
这里的主要目标是避免将对 github 注释的支持硬编码到生成它们的工具中,因此其他 CI/CD 系统也可以使用注释报告并在其 UI 中显示它们。
linters -> annotations.report -> github-upload
像flake8这样的工具能够以可解析格式file:line:column: message
生成输出,但我需要知道是否有任何标准化注释的尝试,以便我们可以从多个工具收集和组合它们并将它们提供给CI/CD引擎。
我目前正在使用 https://github.com/yuzutech/annotations-action 示例操作代码:
- name: Annotate
uses: yuzutech/annotations-action@v0.3.0
with:
repo-token: ${{secrets.GITHUB_TOKEN}}
input: ./annotations.json
title: 'Findings'
ignore-missing-file: true
它做得很好,但有一个小缺陷。如果你对提交/PR有发现,你可以在你需要的地方看到带有漂亮注释的发现。如果重新推送更改,即使结果仍然存在,注释也不会在以后的提交中显示。我打开了一个问题,但尚未收到答复。
上面提到的annotations-action
尚未更新,它根本不适用于我(已弃用的调用(。
我还没有找到任何其他完全符合我想要的东西。
更新:我发现您可以使用 reviewdog 根据调查结果进行注释。我还创建了一个 GitHub 操作,可用于静态代码分析 https://github.com/tsigouris007/action-semgrep-reviewdog。您可以访问entrypoint.sh
文件并检查我如何使用jq
将自定义输出通过管道传输到 reviewdog。
今天我用谷歌搜索了那些"Github动作注释"到底是什么,这是热门之一:
https://github.com/marketplace/actions/annotations-action
用于从 JSON 文件创建注释的 GitHub 操作
截至目前,该页面还包含:
这个仓库使用 github 上@attest范围内的 npm 包;我们正在努力开源这些包。
注释操作未经 GitHub 认证。它由第三方提供,受单独的服务条款、隐私政策和支持文档的约束。
我没有尝试过,再次,只是一个随机的谷歌点击。