mridang/pmd-annotations

将PMD风格的XML报告转换为通过Checks API的GitHub pull-request注释。此脚本旨在在您的GitHub Action中使用。

资助包维护!
mridang

0.0.2 2020-03-31 08:41 UTC

This package is auto-updated.

Last update: 2024-08-29 05:43:14 UTC


README

将PMD风格的XML报告转换为通过Checks API的GitHub pull-request 注释。此脚本旨在在您的GitHub Action中使用。

这意味着您不再需要通过GitHub Action日志文件或控制台输出进行搜索。无需解释格式不同的消息。相反,您可以专注于您的pull-request,并且无需离开pull-request区域。

Logs Example

上下文示例 图片来自 https://github.com/mheap/phpunit-github-actions-printer

安装

通过Composer安装二进制文件

composer require mridang/pmd-annotations

示例用法

pmd2pr可用于现有的PMD报告XML报告。或者,您可能将其用于UNIX管道表示法,以将其链接到现有的cli命令。

在您的GitHub Action工作流程中运行以下命令之一

处理PMD格式的文件

vendor/bin/pmd2pr /path/to/pmd-report.xml

可用选项

  • --graceful-warnings:如果只有警告,则不退出错误代码
  • --colorize:彩色输出。如果相同的lint脚本应在本地命令行和远程GitHub Actions上使用,则很有用。使用此选项,错误和警告在命令行上更容易区分,输出仍然与GitHub注释兼容

管道另一个命令的输出

这适用于生成PMD格式报告的任何命令。以下是一些示例

使用PHPMD

phpmd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | vendor/bin/pmd2pr

示例GitHubAction工作流程

如果您使用shivammathur/setup-php来设置PHP,则pmd2pr二进制文件包含在内

# ...
jobs:
    phpmd-analysis:
      name: phpmd static code analysis
      runs-on: ubuntu-latest
      steps:
          - uses: actions/checkout@v2
          - name: Setup PHP
            uses: shivammathur/setup-php@v1
            with:
                php-version: 7.3
                coverage: none # disable xdebug, pcov
                tools: pmd2pr
          - run: |
                composer install # install your apps dependencies
                vendor/bin/phpmd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | pmd2pr

如果您使用自定义PHP安装,则项目需要要求mridang/pmd-annotations

# ...
jobs:
    phpmd-analysis:
      name: phpmd static code analysis
      runs-on: ubuntu-latest
      steps:
          - uses: actions/checkout@v2
          - name: Setup PHP
            run: # custom PHP installation
          - run: |
                composer install # install your apps dependencies
                composer require mridang/pmd-annotations # install pmd2pr
                vendor/bin/phpmd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | vendor/bin/pmd2pr

资源

GitHubAction问题匹配器