jamesclark32/dev-audit

快速运行一系列 CLI 命令并总结其结果

1.1.0 2024-09-21 14:58 UTC

This package is auto-updated.

Last update: 2024-09-21 14:59:49 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供了一组 Laravel 控制台命令,可以快速运行一系列 CLI 命令并总结其结果。

Dev Audit 的目的是封装一系列在开发过程中经常一起运行的审计,例如合并前的常规操作。

该包附带了一系列基于作者工作流程的意见化默认审计,但可以轻松修改以适应您的需求。

开箱即用,Dev Audit 运行以下内容

  • 测试 (phpunit)
  • 静态分析 (phpstan)
  • 针对已更改的 PHP 文件的 Lint 检查 (pint)
  • 针对已更改的 JavaScript 文件的 Lint 检查 (prettier)
  • Composer 审计
  • Npm 审计

注意,这包括 phpstanprettier,它们需要在 Laravel 项目中单独安装和配置。

安装后,可以使用 artisan dev:audit 在任何时间运行 Dev Audit。

底层,Dev Audit 通过配置实例执行命令 Symfony/Process,并作为 UI 包装器来总结结果,同时去除反馈杂音。

典型的输出如下所示

img.png

Linters

此包还包含一个命令 dev:lint 来运行 linters。您可以在任何选择的时间运行此命令。您还可以通过添加 --lint 标志来将 linters 作为审计的一部分运行: php artisan dev:audit --lint

如果您始终希望在审计过程中运行 linters,您可以通过在 dev-audit 配置文件中将 settings.always_lint 设置为 true 来控制此操作。

安装

要开始,您只需使用 composer 安装该包即可

建议只要求在开发中使用此包。

composer require --dev jamesclark32/dev-audit

安装后,可以使用 artisan dev:audit 在任何时间运行 Dev Audit。

配置

要调整要运行的审计,只需发布并修改配置文件。

您可以使用以下命令将配置文件发布到 config/dev-audit.php

php artisan vendor:publish --tag="dev-audit-config"

配置文件包含要运行的审计的详细信息。可以添加、删除、修改审计或调整它们的顺序。

任何新的审计只需要一个 title 用于显示目的和一个要运行的 command

failure_hint 内容是可选的,但提供了在失败的情况下显示可能需要的下一步命令的机会。

默认审计配置如下所示

return [
    'settings' => [
        'always_lint' => false,
    ],
    'audits' => [
        [
            'title' => 'PHPUnit',
            'command' => './vendor/bin/phpunit -d memory_limit=-1 --no-progress --configuration phpunit.xml;',
            'failure_hint' => 'Run tests using "php artisan test --stop-on-error" to help discover code issues in isolation.',
        ],
        [
            'title' => 'PHPStan',
            'command' => './vendor/bin/phpstan analyze -v --memory-limit=-1',
            'failure_hint' => 'Address the code issues found by "./vendor/bin/phpstan analyze -v --memory-limit=-1", or adjust phpstan.neon to allow for them.',
        ],
        [
            'title' => 'Pint (dirty files)',
            'command' => './vendor/bin/pint --dirty --test',
            'failure_hint' => 'Run "./vendor/bin/pint --dirty" to have Pint fix these code style issues while remaining scoped to files with uncommited changes only.',
        ],
        [
            'title' => 'Prettier (dirty files)',
            'command' => 'npx prettier --config .prettierrc -u -l $(git diff --name-only --diff-filter=d | xargs)',
            'failure_hint' => 'Run "npx prettier --config .prettierrc -u -w $(git diff --name-only --diff-filter=d HEAD | xargs)" to have prettier fix these code style issues while remaining scoped to files with uncommited changes only.',
        ],
        [
            'title' => 'Composer Audit',
            'command' => 'composer audit',
        ],
        [
            'title' => 'NPM Audit',
            'command' => 'npm audit',
        ],
    ],
    'linters' => [
        [
            'title' => 'Pint (dirty files)',
            'command' => './vendor/bin/pint --dirty',
        ],
        [
            'title' => 'Prettier (dirty files)',
            'command' => 'npx prettier --config .prettierrc -u -w $(git diff --name-only --diff-filter=d | xargs)',
        ],
    ],
];

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

鸣谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件