如何通过在磁盘上创建报告文件来生成 github 注释?



我正在尝试找到一种可移植的方式来为 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 认证。它由第三方提供,受单独的服务条款、隐私政策和支持文档的约束。

我没有尝试过,再次,只是一个随机的谷歌点击。

最新更新