jbelien/phpstan-sarif-formatter

PHPStan 的 SARIF 格式化工具

1.1.0 2024-09-09 14:21 UTC

README

PHPStan

PHPStan 专注于在不实际运行代码的情况下查找代码中的错误。它甚至在你为代码编写测试之前就能捕捉到整个类别的错误。在运行实际代码行之前,PHPStan 使 PHP 更接近编译语言,因为可以检查代码的每行的正确性。

https://phpstan.org/

静态分析结果交换格式 (SARIF)

SARIF,静态分析结果交换格式,是一个基于 JSON 的标准格式,用于静态分析工具的输出。
它已被 批准OASIS 标准。

SARIF 是一个旨在满足复杂工具需求的同时仍适用于简单工具的丰富格式。由于不可能支持每个工具的每个功能,SARIF 提供了一种可扩展机制,允许工具作者存储 SARIF 格式直接表示不了的自定义数据。

https://docs.oasis-open.org/sarif/sarif/v2.0/sarif-v2.0.html

用法

composer require --dev phpstan/phpstan jbelien/phpstan-sarif-formatter

然后更新您的 phpstan.neon 配置文件

services:
    errorFormatter.sarif:
        class: PHPStanSarifErrorFormatter\SarifErrorFormatter
        arguments:
            relativePathHelper: @simpleRelativePathHelper
            currentWorkingDirectory: %currentWorkingDirectory%
            pretty: true

GitHub 代码扫描

文档:https://githubdocs.cn/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning

GitHub 代码扫描功能与 SARIF 兼容。
PHPStan 的 SARIF 格式化工具允许您将 PHPStan 用作 GitHub 代码扫描工具。

要在您的 GitHub Actions 工作流程中使用,请在其作业中添加以下内容

- name: Run PHPStan
  continue-on-error: true
  run: phpstan analyze --error-format=sarif > phpstan-results.sarif

- name: Upload analysis results to GitHub
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: phpstan-results.sarif
    wait-for-processing: true

它将在您的 PR(检查 此 PR)中显示 PHPStan 错误信息,并在项目的“安全”选项卡中的“代码扫描”报告中添加警报(见下方的截图)。

Screenshot