Detalhes do pacote

@code-pushup/cli

code-pushup20.2kMIT0.69.5

A CLI to run all kinds of code quality measurements to align your team with company goals

CLI, Code PushUp, automation, developer tools

readme (leia-me)

@code-pushup/cli

npm downloads dependencies

🔎🔬 Quality metrics for your software project. 📉🔍

  1. ⚙️ Configure what you want to track using your favourite tools.
  2. 🤖 Integrate it in your CI.
  3. 🌈 Visualize reports in a beautiful dashboard.

📊 Getting Started 🌐 Portal Integration 🛠️ CI Automation
How to setup a basic project Sort, filter your goals Updates on every PR
Getting started cover image Portal integration cover image CI Automation cover

The Code PushUp CLI serves to collect audit results, and optionally upload the report to the Code PushUp portal.

It can be used locally in your repository, or integrated in your CI environment.

If you're looking for programmatic usage, then refer to the underlying @code-pushup/core package instead.

Getting started

  1. Install as a dev dependency with your package manager:

    <summary>Installation command for npm, yarn and pnpm</summary> sh npm install --save-dev @code-pushup/cli sh yarn add --dev @code-pushup/cli sh pnpm add --save-dev @code-pushup/cli
  2. Create a code-pushup.config.ts configuration file (.js or .mjs extensions are also supported).

    import type { CoreConfig } from '@code-pushup/models';
    
    const config: CoreConfig = {
      plugins: [
        // ...
      ],
    };
    
    export default config;
  3. Add plugins as per your project needs (e.g. @code-pushup/eslint-plugin or @code-pushup/coverage-plugin).

    npm install --save-dev @code-pushup/eslint-plugin
    import eslintPlugin from '@code-pushup/eslint-plugin';
    import type { CoreConfig } from '@code-pushup/models';
    
    const config: CoreConfig = {
      // ...
      plugins: [
        // ...
        await eslintPlugin({ eslintrc: '.eslintrc.js', patterns: ['src/**/*.js'] }),
      ],
    };
    
    export default config;
  4. Run the CLI with npx code-pushup (see --help for list of commands and arguments).

  5. View report file(s) in output directory (specified by persist.outputDir configuration).
    This folder should be ignored in your .gitignore.

Set up categories (optional)

  1. Define your custom categories.

    const config: CoreConfig = {
      // ...
      categories: [
        {
          slug: 'performance',
          title: 'Performance',
          refs: [
            // reference to an existing audit or group from plugins
            {
              type: 'audit',
              plugin: 'eslint',
              slug: 'react-jsx-key',
              weight: 1,
            },
            // ...
          ],
        },
        // ...
      ],
    };
  2. Run the CLI with npx code-pushup.

  3. View report file(s) including category section in output directory.

Portal integration

If you have access to the Code PushUp portal, you can enable report uploads by installing the @code-pushup/portal-client package.

<summary>Installation command for npm, yarn and pnpm</summary> sh npm install --save-dev @code-pushup/portal-client sh yarn add --dev @code-pushup/portal-client sh pnpm add --save-dev @code-pushup/portal-client

Once the package is installed, update your configuration file to include your portal credentials:

const config: CoreConfig = {
  // ...
  upload: {
    server: 'https://ip-or-domain/path/to/portal/api/graphql',
    apiKey: process.env.PORTAL_API_KEY,
    organization: 'my-org',
    project: 'my-project',
  },
};

🛠 CI automation

Example for GitHub Actions:

name: Code PushUp

on: push

jobs:
  collect-and-upload:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npx code-pushup autorun --upload.apiKey=${{ secrets.PORTAL_API_KEY }}

Configuration

For a comprehensive list of all options available in the config file, refer to CoreConfig docs.

The default locations for the config file are code-pushup.config.ts, code-pushup.config.mjs or code-pushup.config.js. Other locations require using the --config=<path> CLI option.

If your config file relies on some custom TypeScript project configuration - e.g. import aliases via compilerOptions.paths (common in Nx) - you can use the --tsconfig=<path> CLI option.

Custom Plugins

We provide comprehensive documentation on how to create a custom plugin.

The repository also maintains a set of plugin examples showcasing different scenarios.
Each example is fully tested to demonstrate best practices for plugin testing as well.

Example for custom plugins:

  • 📏 File Size - example of basic runner executor
  • 📦 Package Json - example of audits and groups
  • 🔥 Lighthouse (official implementation here) - example of a basic command executor

CLI commands and options

Global Options

Option Type Default Description
--progress boolean true Show progress bar in stdout.
--verbose boolean false When true creates more verbose output. This is helpful when debugging. You may also set CP_VERBOSE env variable instead.
--config string looks for `code-pushup.config.{ts\ mjs\ js}` Path to config file.
--tsconfig string n/a Path to a TypeScript config, used to load config file.

[!NOTE]
By default, the CLI loads code-pushup.config.(ts|mjs|js) if no config path is provided with --config.

Common Command Options

Option Type Default Description
--persist.outputDir string n/a Directory for the produced reports.
--persist.filename string report Filename for the produced reports without extension.
--persist.format `('json' \ 'md')[]` json Format(s) of the report file.
--upload.organization string n/a Organization slug from portal.
--upload.project string n/a Project slug from portal.
--upload.server string n/a URL to your portal server.
--upload.apiKey string n/a API key for the portal server.
--onlyPlugins string[] [] Only run the specified plugins. Applicable to all commands except upload.
--skipPlugins string[] [] Skip the specified plugins. Applicable to all commands except upload.

[!NOTE]
All common options, except --onlyPlugins and --skipPlugins, can be specified in the configuration file as well. CLI arguments take precedence over configuration file options.

[!NOTE]
The --upload.* group of options is applicable to all commands except collect.

Commands

collect command

example of code-pushup terminal output

Usage: code-pushup collect [options]

Description: The command initializes and executes the necessary plugins and collects the results. Based on the results it generates a comprehensive report.

Refer to the Common Command Options for the list of available options.

upload command

Usage: code-pushup upload [options]

Description: Upload reports to the Code PushUp portal.

Refer to the Common Command Options for the list of available options.

autorun command

Usage: code-pushup autorun [options]

Description: Run plugins, collect results and upload the report to the Code PushUp portal.

Refer to the Common Command Options for the list of available options.

history command

Usage: code-pushup history

Description: Run plugins, collect results and upload the report to the Code PushUp portal for a specified number of commits.

Refer to the Common Command Options for the list of available options.

Option Type Default Description
--targetBranch string 'main' Branch to crawl history.
--forceCleanStatus boolean false If we reset the status to a clean git history forcefully or not.
--maxCount number 5 Number of commits.
--skipUploads boolean false Upload created reports
--from string n/a Hash to start in history
--to string n/a Hash to end in history

compare command

Usage: code-pushup compare --before SOURCE_PATH --after TARGET_PATH [options]

Description: Compare 2 reports and produce a report diff file.

In addition to the Common Command Options, the following options are recognized by the compare command:

Option Required Type Description
--before yes string Path to source report.json.
--after yes string Path to target report.json.
--label no string Label for diff (e.g. project name).

print-config command

Usage: code-pushup print-config [options]

Description: Print the resolved configuration.

In addition to the Common Command Options, the following options are recognized by the print-config command:

Option Required Type Description
--output no string Path to output file to print config (default is stdout).

merge-diffs command

Usage: code-pushup merge-diffs --files PATH_1 PATH_2 ... [options]

Description: Combine multiple report diffs into a single report-diff.md.

In addition to the Common Command Options, the following options are recognized by the merge-diffs command:

Option Required Type Description
--files yes string[] List of report-diff.json paths.

changelog (log de mudanças)

0.69.5 (2025-07-11)

🩹 Fixes

  • plugin-js-packages: include url for outdated packages in modern yarn (297766d1)
  • plugin-js-packages: include transitive dependencies in audit for modern yarn (8e285e93)

❤️ Thank You

  • Matěj Chalk

0.69.4 (2025-07-09)

🩹 Fixes

  • plugin-js-packages: parse yarn 4 audit output correctly (8041d870)

❤️ Thank You

  • Matěj Chalk

0.69.3 (2025-07-07)

🩹 Fixes

  • plugin-js-packages: prevent negative scores in yarn v2+ workspaces (b6f96330)

❤️ Thank You

  • Matěj Chalk

0.69.2 (2025-06-16)

🩹 Fixes

  • plugin-coverage: prevent invalid coverage when lcov has hit > found (c796f30e)

❤️ Thank You

  • Matěj Chalk

0.69.1 (2025-06-16)

🩹 Fixes

  • plugin-coverage: skip invalid line numbers from tools like pytest-cov (ba8b3171)

❤️ Thank You

  • Matěj Chalk

0.69.0 (2025-06-03)

🚀 Features

  • ci: use nx cache friendly output path for print-config command (35e334f5)
  • ci: do not skip nx/turbo cache for print-config and compare commands (c83ad36d)

❤️ Thank You

  • Matěj Chalk

0.68.0 (2025-05-19)

🚀 Features

  • core: include trees when uploading audits to portal (c1c6965e)
  • models: define tree data structure for audit details (63bf44ca)
  • plugin-coverage: replace issues with tree (2dc16890)
  • plugin-jsdocs: replace issues with tree (d347c0f2)
  • plugin-jsdocs: include end line number (f2102eb5)
  • plugin-lighthouse: convert criticalrequestchain details to trees and table (18d4230e)
  • plugin-lighthouse: convert treemap-data details to trees (19088927)
  • utils: generate ascii tree in full markdown report's audit details (ab462d42)
  • utils: convert files array to tree structure (211be5bf)
  • utils: aggregate coverage per folder (7ef0c14e)
  • utils: sort coverage tree alphabetically with folders before files (f87b869e)

🩹 Fixes

  • ci: use absolute path in print-config --output file (61ae18e1)

❤️ Thank You

  • Matěj Chalk

0.67.0 (2025-04-28)

🚀 Features

  • utils: create helper function for sequential Promise.all (556d8788)

🩹 Fixes

❤️ Thank You

  • Matěj Chalk
  • Michael @rx-angular

0.66.2 (2025-04-07)

🩹 Fixes

  • plugin-typescript: use consistent casing for plugin metadata (Typescript -> TypeScript) (8e78e8d8)
  • plugin-typescript: use same displayValue formatting as eslint (87dadf33)

❤️ Thank You

  • Matěj Chalk

0.66.1 (2025-04-07)

🩹 Fixes

  • plugin-typescript: use default export (1aa6211f)

❤️ Thank You

  • Matěj Chalk

0.66.0 (2025-04-04)

🚀 Features

  • plugin-typescript: prepare for first release (6b1e39d6)

🩹 Fixes

  • plugin-js-packages-e2e: npm outdated fallback to "wanted" if "current" is missing (ef5c2eee)

❤️ Thank You

  • Matěj Chalk
  • Vojtech Masek @vmasek

0.65.3 (2025-03-31)

🩹 Fixes

  • utils: update esbuild to version patched for GHSA-67mh-4wv8-2f99 (c5921ab2)

❤️ Thank You

  • Matěj Chalk

0.65.2 (2025-03-26)

🚀 Features

  • plugin-typescript: adjust logic (#975)

🩹 Fixes

  • plugin-js-packages: handle empty output from yarn outdated (a8cb0810)

❤️ Thank You

  • Matěj Chalk
  • Michael Hladky @BioPhoton

0.65.1 (2025-03-11)

🩹 Fixes

  • update pkgs (#965)
  • ci: prevent overwriting report artifacts (3c7fa08f)
  • nx-plugin: adjust upload config handling (#937)

❤️ Thank You

  • Matěj Chalk
  • Michael Hladky @BioPhoton

0.65.0 (2025-03-05)

🚀 Features

  • utils: add score filter to md report generation (#956)

❤️ Thank You

  • Michael Hladky @BioPhoton

0.64.2 (2025-03-05)

🩹 Fixes

  • update nx-verdaccio pkg (#954)
  • plugin-js-packages: ignore non-empty stderr (7936a00c)
  • utils: ignore non-json lines in fromJsonLines utility (7886c572)

❤️ Thank You

  • Matěj Chalk
  • Michael Hladky @BioPhoton

0.64.1 (2025-03-04)

🩹 Fixes

  • ci: always show execute process errors and log stdout if verbose (b41de478)
  • utils: remove partial from mergeConfigs return type (69c2ef4c)

❤️ Thank You

  • Matěj Chalk
  • Vojtech Masek @vmasek

0.64.0 (2025-02-27)

🚀 Features

  • ci: allow refs without shas, fetch if needed (2ee0a8d1)

❤️ Thank You

  • Matěj Chalk

0.63.0 (2025-02-26)

🚀 Features

  • ci: use temporary file for print-config instead of stdout (aa4d0b38)
  • cli: add --output=<file> option to print-config command (a1fde20c)

❤️ Thank You

  • Matěj Chalk

0.62.0 (2025-02-25)

🚀 Features

  • log process working directory as cwd if undefined (a0638f8c)

🩹 Fixes

  • utils: replace misleading commit labels in markdown diff (21a1f25d)

❤️ Thank You

  • Matěj Chalk
  • Vojtech Masek @vmasek

0.61.0 (2025-02-19)

🚀 Features

  • ci: disable nx/turbo cache for non-autorun code-pushup commands (29a1bc63)
  • models: do not throw if docs url invalid, treat as missing and log warning (a54295c6)

❤️ Thank You

  • Matěj Chalk

0.60.2 (2025-02-18)

🩹 Fixes

  • ci: prevent unknown pathspec error for custom base ref (60dfb5b2)

❤️ Thank You

  • Matěj Chalk

0.60.1 (2025-02-18)

🩹 Fixes

  • add toSorted polyfill as hotfix for bug in github actions runner (55704d18)
  • ci: prevent ambigious ref when checking head (f5f226e1)

❤️ Thank You

  • Matěj Chalk
  • Vojtech Masek @vmasek

0.60.0 (2025-02-18)

🚀 Features

  • ci: add skipComment option (9ac2a6ba)
  • plugin-typescript: add TS core logic (#932)
  • plugin-typescript: add plugin logic (#936)

🩹 Fixes

  • ci: ensure head ref is checked out (74db9023)

❤️ Thank You

  • Matěj Chalk
  • Michael Hladky @BioPhoton

0.59.0 (2025-02-14)

🚀 Features

  • plugin-coverage: do not halt plugin execution on fail (23f1ce5c)
  • utils: add string helper (#916)

🩹 Fixes

  • explicitly exit process with successful code to not leave cli hanging (2cb815bb)

❤️ Thank You

  • Michael Hladky @BioPhoton
  • Vojtech Masek @vmasek

0.58.0 (2025-02-12)

🚀 Features

  • models: auto-generate JSDoc annotations (29cf02ad)
  • plugin-coverage: support lcovonly option for vitest (b230a3d2)
  • plugin-eslint: add support for custom groups (#925)
  • plugin-jsdocs: add plugin-jsdocs to analyze documentation in ts/js projects (#896)
  • plugin-typescript: setup plugin project base (#917)

🩹 Fixes

  • handle skipped audits and groups (#911)
  • fix poppinss version (#921)
  • nest files with timestamp for plugin runners (4ecf9772)
  • models: add missing exports (#918)
  • nx-plugin: deep merge executor options (#927)

❤️ Thank You

  • Alejandro @aramirezj
  • Hanna Skryl @hanna-skryl
  • hanna-skryl
  • Michael Hladky @BioPhoton
  • Vojtech Masek @vmasek

0.57.0 (2024-12-17)

🚀 Features

  • ci: detect persist config from print-config (ad8bd284)
  • ci: remove obsolete output option (0b9d679e)
  • ci: implement run many command resolution for each monorepo tool (094797d9)
  • ci: add parallel option (85e51864)
  • ci: filter nx run-many by projects from nx show projects as fallback (97a603cc)
  • ci: sort nx projects alphabetically (6a6c2f3d)
  • ci: copy merged-report-diff.md from project to root (e1305295)
  • ci: implement bulk collecting reports for parallel monorepo runs (e0b4d97f)
  • core: enhance config validation (836b242d)
  • utils: implement type guard for nullable object props (c3fc549e)

🩹 Fixes

  • prevent "ExperimentalWarning: Importing JSON" logged to stderr (8ce9e635)
  • update progress bar gradually as plugin run complete (7a592ebd)
  • lint import extensions and fix missing .js extensions (9d6eacf4)
  • ci: handle non-JSON prefix/suffix lines from print-config (43ffcf2d)
  • ci: ensure valid output directory for reports and merged diff (5e36323d)
  • ci: resolve outputDir correctly by running workspace commands in project dir (94b25f88)
  • ci: only copy merged-report-diff.md when paths are different (f8ac4007)
  • nx-plugin: use wildcard path imports to prevent CJS runtime errors (31bed82a)
  • plugin-eslint: avoid directory imports (688a4859)
  • plugin-eslint: consider defaultOptions to ensure rule slugs from runner match (13de4b57)
  • plugin-eslint: handle mismatched slugs for legacy configs (e324f39d)
  • plugin-eslint: parse rule names containing slashes correctly (f1163d0a)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • Matěj Chalk
  • Vojtech Masek @vmasek

0.56.0 (2024-11-29)

🚀 Features

  • ci: add nxProjectsFilter option, forwards custom filters to Nx CLI (93a6a428)
  • plugin-eslint: support new config format in nx helpers (effd5d26)

❤️ Thank You

  • Matěj Chalk

0.55.0 (2024-11-25)

🚀 Features

  • ci: accept custom output directory, with project name interpolation (db3fcced)
  • plugin-eslint: drop inline object support for eslintrc (incompatible with flat config) (ead1c0ad)
  • plugin-eslint: implement rules loader for flat config (e9edf0c0)
  • plugin-eslint: detect version of config format (a618bf29)
  • plugin-eslint: search for flat config files in parent directories (3e45ac07)
  • plugin-eslint: move eslint to peer deps, add v9 to supported range (953e3c76)
  • utils: implement and test helper function to find nearest file (2acdb2d8)

🩹 Fixes

  • plugin-eslint: remove unsupported parameter for ESLint 9+ (4b889d66)
  • plugin-eslint: use LegacyESLint if ESLINT_USE_FLAT_CONFIG=false in v9 (e9352808)
  • plugin-eslint: ensure file url scheme needed for dynamic imports on Windows (91c7678c)
  • plugin-js-packages: add ignoreExitCode option for yarn v2 package manager (#878)

❤️ Thank You

  • Edouard Maleix
  • Matěj Chalk

0.54.0 (2024-11-08)

🚀 Features

  • plugin-eslint: add exclude option for Nx projects (e9560f56)

🩹 Fixes

  • ci: pass project name to downloadReportArtifact (647f7e28)
  • ci: improve misleading logs (cfece081)
  • ci: catch errors from downloadReportArtifact - log warning and proceed (3df4a71a)
  • models: allow non-integers in audit values diff (61d49ea4)
  • plugin-eslint,plugin-coverage: future-proof version range of nx peer deps (52afea5a)
  • utils: always log single perfect audit (d8a7eb25)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • hanna-skryl
  • Matěj Chalk

0.53.1 (2024-10-18)

🚀 Features

  • add keywords for NPM to display (17a0c498)

🩹 Fixes

  • ci: handle monorepo mode in non-PR flow (d7ba5a3f)

❤️ Thank You

  • Matěj Chalk
  • Vojtech Masek @vmasek

0.53.0 (2024-10-17)

🚀 Features

  • ci: add useful exports (844d529c)
  • utils: support GitLab report links (27d8a657)

🩹 Fixes

  • core: avoid portal-client import for enum conversions (1a68636f)

❤️ Thank You

  • hanna-skryl
  • Matěj Chalk

0.52.0 (2024-10-16)

🚀 Features

  • skip perfect scores in stdout summary (f423c6c4)
  • make portal-client dependency optional (18822a85)
  • ci: move in monorepo code from github-action (a9c51d98)
  • ci: move in code from github-action for issues, git diff and commands (bad87239)
  • ci: move in code for posting comment, generalized to any provider (b61d6747)
  • ci: move in main run functions from github-action and adapt (697948eb)
  • cli: handle invalid plugin filter options (9d756826)
  • cli: add skip and only category filters (149f54b2)
  • plugin-lighthouse: export default Chrome flags (2518b6ca)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • hanna-skryl
  • Matěj Chalk

0.51.0 (2024-10-02)

🚀 Features

  • cli: add command option aliases (3ae16263)
  • nx-plugin: update unicode logo in stdout (1d5e3ad1)
  • utils: support local report links (f98b10a0)

🩹 Fixes

  • plugin-js-packages: filter out warnings (61ab0f75)
  • utils: handle rounding of small trend values (c23e38e6)
  • utils: format reports with unchanged score (cddbdd35)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • hanna-skryl
  • Matěj Chalk

0.50.0 (2024-09-10)

🚀 Features

  • add defaults to js-packages plugin options (#762)
  • cli: add optional label option to compare command (b3494d63)
  • cli: scaffold merge-diffs command and test argument parsing (074c50fb)
  • cli: do not show help on error (7cefdaad)
  • core: include portal link and label in report-diff.json (e5036f1d)
  • core: implement mergeDiffs logic (0a3594d5)
  • core: improve error messages for report-diff.json parsing (85b3cdb1)
  • create-cli: package to align with package managers init command (#779)
  • models: add optional portalUrl and label to reports diff schema (8a1dacb1)
  • nx-plugin: extend config generator (#778)
  • nx-plugin: implement bin property in options (#773)
  • nx-plugin: add project prefix to plugin (#792)
  • plugin-lighthouse: omit audit details table title (eb7d6295)
  • test-nx-utils: add testing lib for nx specific logic (#777)
  • utils: increase audit value column width (2d125074)
  • utils: move groups and audits under details to make diff comment more compact (7d77b51a)
  • utils: implement diff markdown comment for monorepos (3cf7b114)
  • utils: skip unchanged categories and projects in report-diff.md (c834cfa1)
  • utils: sort projects in report-diff.md by most changed (40d24768)
  • utils: move project status from heading to paragraph in report-diff.md (260692e1)
  • utils: helper function to convert unknown errors to string (1ac3c231)

🩹 Fixes

  • plugin-lighthouse: process empty array flags (2101cf14)
  • plugin-lighthouse: process empty array flags (304b2298)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • hanna-skryl
  • Matěj Chalk
  • Michael Hladky @BioPhoton
  • Vojtech Masek @vmasek

0.49.0 (2024-07-31)

🚀 Features

  • replace chalk with ansis (#750)
  • core: fetch portal comparison link if available when comparing reports (a08978e8)
  • nx-plugin: add executor to nx-plugin (#737)
  • nx-plugin: add crystal utils (#754)
  • utils: add nested objects to cli args parsing (#758)
  • utils: include optional link to portal in markdown comment (04455aeb)

🩹 Fixes

  • utils: add is binary icon (#749)

❤️ Thank You

  • Elderov Ali
  • Matěj Chalk
  • Michael Hladky @BioPhoton

0.48.0 (2024-07-15)

🚀 Features

  • implement skip-plugins option (73695855)
  • add skipPlugin options to global configs (64f45dab)
  • nx-plugin: add general executor logic (3b5b9770)
  • plugin-lighthouse: parse opportunity details from lighthouse report (2e76d08c)
  • testing-utils: add test helper for paths (ccef3a1c)
  • utils: merge configs function (ac67ea5c)
  • utils: add explicit types to merge config function and helpers (e16c1c43)
  • utils: export merge configs helper as public API (2f8d78e4)

🩹 Fixes

  • restore e2e tests (9a2e45b9)
  • nx-plugin: fix lint (d6161599)
  • nx-plugin: fix test for windows (4fed38cf)
  • utils: unchanged categories table markdown content (1df3ccb6)

❤️ Thank You

  • Matěj Chalk
  • Michael @rx-angular
  • Nacho Vazquez @NachoVazquez
  • Vojtech Masek @vmasek

0.47.0 (2024-07-01)

🚀 Features

  • plugin-coverage: include decimals in coverage percentage used as audit value (afeeb8e7)
  • plugin-lighthouse: add audit details to lighthouse plugin (#684)
  • plugin-lighthouse: keep audit values as floats (2627a879)
  • utils: add options to truncateTest (f3444d70)

🩹 Fixes

  • plugin-coverage: correct jest/vitest config lookup + respect project.json overrides (561ed3e3)
  • plugin-coverage: handle absolute paths in jest/vitest coverage directories (f997f860)
  • plugin-coverage: skip lcov reporter validation if jest config uses preset (f9718bdb)
  • plugin-coverage: support non-cjs jest configs (3fc351c2)

❤️ Thank You

  • Matěj Chalk
  • Michael @rx-angular
  • Michael Hladky @BioPhoton

0.46.0 (2024-06-19)

🚀 Features

  • cli: forward plugins and categories if onlyPlugins is invalid (1a6c6fa8)
  • plugin-lighthouse: add logLevel to lighthouse runner flags (120b3160)

🩹 Fixes

  • plugin-coverage: support newer nx versions (9e416852)

❤️ Thank You

  • Matěj Chalk
  • Michael @rx-angular

0.45.1 (2024-06-17)

🚀 Features

  • models: allow non-integer weights in refs (016e011f)
  • models: allow non-integer audit values (1db88e39)
  • plugin-js-packages: support multiple package.json and auto search (df87ff9b)

🩹 Fixes

  • round down report scores to avoid misleading perfect results (#700)
  • wrap paths in quotes in case of spaces (a3c0314d)

❤️ Thank You

  • Hanna Skryl @hanna-skryl
  • Katerina Pilatova
  • Matěj Chalk

0.45.0 (2024-06-03)

This was a version bump only, there were no code changes.

0.44.5 (2024-05-30)

🩹 Fixes

  • plugin-coverage: merge multiple results for a file (#688)

❤️ Thank You

  • Katka Pilátová

0.44.3 (2024-05-29)

🩹 Fixes

  • plugin-eslint: revert to explicit config file in nx helper (ecd82642)

❤️ Thank You

  • Matěj Chalk

0.44.2 (2024-05-28)

🚀 Features

  • plugin-eslint: support implicit configs (f89037ad)

❤️ Thank You

  • Matěj Chalk

0.44.1 (2024-05-23)

This was a version bump only, there were no code changes.

0.44.0 (2024-05-23)

🚀 Features

  • core: include audit table in portal upload (2b4f3e15)

❤️ Thank You

  • Matěj Chalk

0.43.1 (2024-05-23)

🩹 Fixes

  • plugin-coverage: always include issues array, even if empty (bd7c5631)
  • plugin-js-packages: always include issues array, even if empty (748eb64a)

❤️ Thank You

  • Matěj Chalk

0.43.0 (2024-05-22)

🚀 Features

  • plugin-eslint: rename eslintConfigFromNxProjects to eslintConfigFromAllNxProjects (068b3359)
  • plugin-eslint: rename eslintConfigFromNxProject to eslintConfigFromNxProjectAndDeps (efbb72ae)
  • plugin-eslint: add eslintConfigFromNxProject helper that doesn't include nx project deps (0706bdaf)

❤️ Thank You

  • Vojtech Masek @vmasek

0.42.1 (2024-05-22)

This was a version bump only, there were no code changes.

0.42.0 (2024-05-21)

This was a version bump only, there were no code changes.

0.39.0 (2024-04-29)

🚀 Features

  • plugin-eslint: support array of config and patterns to lint separately (7b1e4585)
  • plugin-eslint: nx helpers generate array of lint targets (10dd3c6a)

🩹 Fixes

  • ci: temporarily adjust e2e job (1e494c76)

🔥 Performance

  • plugin-eslint: run eslint as separate process to prevent exceeding memory (c25b3671)

❤️ Thank You

  • Matěj Chalk
  • Michael @rx-angular

0.35.0 (2024-04-09)

This was a version bump only, there were no code changes.

Changelog

This file was generated using @jscutlery/semver.

0.29.0 (2024-03-25)

Bug Fixes

  • cli: fix missing executable permissions for index.js (0fd2eb4)
  • plugin-eslint: allow minor updates to eslint dependency (efbe028)

Features

  • utils: use auto-link commit format (GitHub/GitLab) in markdown (2f26c6c)

0.28.0 (2024-03-22)

Bug Fixes

  • core: ensure output directory exists in compareReportFiles (cf309bc)
  • utils: prevent mixed summary when some audit changed only value (20673fd)
  • utils: use unicode arrows with wider OS support (271155e)

Features

  • cli: include md format by default (65a08ea)
  • core: create report-diff.md file if specified by persist.format (8c4e1e4)

0.27.1 (2024-03-19)

0.27.0 (2024-03-19)

Bug Fixes

  • package json lock (#562) (c73f3ac)
  • plugin-eslint: eslint startline can be zero (#563) (4eefb35)
  • utils: literal asterisk in Markdown doc should be escaped (6348ba3)
  • utils: use shields.io for colorizing changed values (d0eb475)

Features

  • cli: implement compare command (314e7ba)
  • core: add history logic (#541) (10df94c)
  • core: implement categories, groups and audits comparisons (72d6c14)
  • core: implement compare reports functions (5493cc4)
  • models: create reportsDiff schema (75dc8aa)
  • plugin-js-packages: add runner config integration test, restructure runner (cae4ca8)
  • plugin-js-packages: implement plugin schema and configuration flow (e2ce3f6)
  • plugin-js-packages: implement runner for npm audit (6aa55a2)
  • plugin-js-packages: implement runner for npm outdated (7cb623b)
  • plugin-js-packages: improve output, scoring, error handling (b9f1432)
  • plugin-js-packages: use group per check, audit per dependency group (1405e7d)
  • utils: add helper functions for diffing (4e87cd5)
  • utils: handle unchanged reports diff (0cdcb9e)
  • utils: implement markdown diff formatting (5f453ef)
  • utils: improve diff md formatting - change icon, n/a cells, percentage space (27290f2)
  • utils: improve reports diff formatting (2bee85e)
  • utils: include unchanged and added categories in markdown table (4e53077)
  • utils: sort changed categories/groups/audits by most affected (74cb57e)

0.27.0 (2024-03-19)

Bug Fixes

  • package json lock (#562) (c73f3ac)
  • plugin-eslint: eslint startline can be zero (#563) (4eefb35)
  • utils: literal asterisk in Markdown doc should be escaped (6348ba3)
  • utils: use shields.io for colorizing changed values (d0eb475)

Features

  • cli: implement compare command (314e7ba)
  • core: add history logic (#541) (10df94c)
  • core: implement categories, groups and audits comparisons (72d6c14)
  • core: implement compare reports functions (5493cc4)
  • models: create reportsDiff schema (75dc8aa)
  • plugin-js-packages: add runner config integration test, restructure runner (cae4ca8)
  • plugin-js-packages: implement plugin schema and configuration flow (e2ce3f6)
  • plugin-js-packages: implement runner for npm audit (6aa55a2)
  • plugin-js-packages: implement runner for npm outdated (7cb623b)
  • plugin-js-packages: improve output, scoring, error handling (b9f1432)
  • plugin-js-packages: use group per check, audit per dependency group (1405e7d)
  • utils: add helper functions for diffing (4e87cd5)
  • utils: handle unchanged reports diff (0cdcb9e)
  • utils: implement markdown diff formatting (5f453ef)
  • utils: improve diff md formatting - change icon, n/a cells, percentage space (27290f2)
  • utils: improve reports diff formatting (2bee85e)
  • utils: include unchanged and added categories in markdown table (4e53077)
  • utils: sort changed categories/groups/audits by most affected (74cb57e)

0.26.1 (2024-03-07)

0.26.0 (2024-03-06)

Features

  • cli: include commit info in report.json (5965900)

0.25.7 (2024-03-06)

0.25.6 (2024-03-05)

Bug Fixes

  • plugin-eslint: pass arguments via config file instead of argv (dca0266)

0.25.5 (2024-03-05)

0.25.4 (2024-03-05)

0.25.3 (2024-03-05)

0.25.2 (2024-03-05)

0.25.1 (2024-02-29)

0.25.0 (2024-02-29)

Features

  • plugin-lighthouse: implement basic audit parsing (#523) (cbd044e)

0.24.0 (2024-02-29)

Features

  • plugin-lighthouse: add only filters logic for categories (#515) (3cb8fa4)

0.23.4 (2024-02-29)

Bug Fixes

  • utils: sort groups and category refs correctly in report (76a7636)

0.23.3 (2024-02-29)

Bug Fixes

  • stop CLI when a plugin fails (263537c)

0.23.2 (2024-02-28)

0.23.1 (2024-02-27)

0.23.0 (2024-02-26)

Features

0.22.8 (2024-02-23)

Bug Fixes

  • plugin-eslint: handle rules which emit column 0 (de791e1)

0.22.7 (2024-02-21)

0.22.6 (2024-02-21)

0.22.5 (2024-02-21)

0.22.4 (2024-02-20)

0.22.3 (2024-02-19)

Performance Improvements

  • utils: add benchmarks for file system walk and glob libs (#514) (50e5f96)

0.22.2 (2024-02-19)

0.22.1 (2024-02-19)

0.22.0 (2024-02-19)

Features

  • cli: add --tsconfig option (67abfb7)

0.22.0 (2024-02-19)

Features

  • cli: add --tsconfig option (67abfb7)

0.21.1 (2024-02-16)

0.21.0 (2024-02-16)

Features

  • cli: print full report url after upload (0eb7771)

0.20.2 (2024-02-16)

0.20.1 (2024-02-15)

Bug Fixes

  • cli: make onlyPlugins filter based on plugin not audit/group slug (e963c36)

0.20.0 (2024-02-15)

Bug Fixes

  • models: issue file positions must be positive integers (727926e)

Features

  • models: add missing schema exports (36d3eea)

0.19.0 (2024-02-15)

Features

  • core: convert all issue file paths after executing plugin (d82c68d)
  • utils: implement helpers for making paths relative to git root (b12df6d)

0.18.1 (2024-02-14)

0.18.0 (2024-02-14)

Features

  • plugin-coverage: allow passing results as strings (6813021)

0.17.0 (2024-02-13)

Features

  • plugin-coverage: add coverage tool run option, convert to runnerConfig (d259c14)
  • plugin-coverage: get coverage paths using nx (cd499ea)
  • plugin-coverage: provide coverage group (8cddfcd)

0.16.8 (2024-02-12)

0.16.7 (2024-02-09)

Bug Fixes

  • core: upload issue without source if file not linked (2923dbd)

0.16.6 (2024-02-09)

0.16.5 (2024-02-09)

0.16.4 (2024-02-09)

Bug Fixes

  • workflows: update and improve labeler options (146434a)

0.16.3 (2024-02-08)

0.16.2 (2024-02-08)

0.16.1 (2024-02-07)

0.16.0 (2024-02-07)

Features

  • plugin-lighthouse: add onlyAudits logic (#472) (d45eac4)

0.15.0 (2024-02-06)

Features

0.14.4 (2024-02-06)

0.14.3 (2024-02-06)

0.14.2 (2024-02-06)

0.14.1 (2024-02-05)

0.14.0 (2024-02-05)

Features

  • examples-plugins: add lighthouse to examples (#417) (8fcc465)

0.13.2 (2024-02-05)

0.13.1 (2024-02-05)

0.13.0 (2024-02-05)

Bug Fixes

  • plugin-coverage: calculate coverage for no found entities as full coverage (349c772)
  • plugin-coverage: convert new lines on Windows for parse-lcov, update docs (3195da2)

Features

  • plugin-coverage: implement lcov parsing (800e2d0)
  • plugin-coverage: implement plugin configuration (513c518)
  • plugin-coverage: set up plugin-coverage package (8b18a0f)

0.12.10 (2024-02-03)

0.12.9 (2024-02-03)

0.12.8 (2024-02-02)

0.12.7 (2024-02-01)

0.12.6 (2024-02-01)

0.12.5 (2024-02-01)

0.12.4 (2024-02-01)

0.12.3 (2024-02-01)

0.12.2 (2024-01-31)

0.12.1 (2024-01-31)

0.12.0 (2024-01-30)

Features

0.11.2 (2024-01-29)

Bug Fixes

  • core: update portal-client, fixed missing graphql dependency (c16c0c8)

0.11.1 (2024-01-27)

0.11.0 (2024-01-26)

Features

  • cli: add autoloading of the config file (#361) (aef86c9)

0.10.7 (2024-01-26)

0.10.6 (2024-01-26)

0.10.5 (2024-01-26)

Bug Fixes

  • cli: set terminal output to full width (#362) (d6270a5)

0.10.4 (2024-01-25)

0.10.3 (2024-01-25)

0.10.2 (2024-01-25)

0.10.1 (2024-01-24)

0.10.0 (2024-01-24)

Bug Fixes

  • utils: set fixed locale for date in report.md (aa4694b)

Features

  • utils: include timezone in report.md (27d267a)

0.9.0 (2024-01-24)

Features

  • core: add optional upload.timeout to config (fdc3f58)
  • core: update portal-client to version with request timeouts (173bd2f)

0.8.25 (2024-01-19)

0.8.24 (2024-01-19)

0.8.23 (2024-01-18)

0.8.22 (2024-01-16)

0.8.21 (2024-01-16)

0.8.20 (2024-01-16)

0.8.19 (2024-01-16)

0.8.18 (2024-01-15)

0.8.17 (2024-01-15)

0.8.16 (2024-01-15)

0.8.15 (2024-01-15)

0.8.14 (2024-01-12)

0.8.13 (2024-01-12)

0.8.12 (2024-01-12)

0.8.11 (2024-01-12)

Bug Fixes

  • models: fix use case for a group reference but empty audits, clean up tests (d311b95)

0.8.10 (2024-01-12)

0.8.9 (2024-01-11)

0.8.8 (2024-01-11)

Bug Fixes

  • plugin-eslint: truncate long issue messages (c39d0cc)

0.8.7 (2024-01-10)

0.8.6 (2024-01-10)

0.8.5 (2024-01-10)

0.8.4 (2024-01-10)

0.8.3 (2024-01-10)

0.8.2 (2024-01-09)

0.8.1 (2024-01-08)

0.8.0 (2024-01-08)

Features

  • core: add grouping of promise results by status (5f50e8e), closes #287 #287

0.7.0 (2024-01-08)

Features

  • core: improve upload error messages, extend icon set (2251ebd)

0.6.6 (2024-01-05)

0.6.5 (2024-01-04)

0.6.4 (2024-01-04)

0.6.3 (2024-01-04)

0.6.2 (2024-01-04)

0.6.1 (2024-01-03)

Bug Fixes

  • plugin-eslint: fix default Nx lint patterns - directory not valid for "files" in eslintrc (6865800)

0.6.0 (2024-01-03)

Features

  • plugin-eslint: set "passed" displayValue for ESLint audits (40f61a4)

0.5.7 (2024-01-03)

Bug Fixes

  • plugin-eslint: set default lint file patterns for Nx projects (9db19d0)

0.5.6 (2023-12-29)

0.5.5 (2023-12-26)

0.5.4 (2023-12-19)

Bug Fixes

0.5.3 (2023-12-19)

Bug Fixes

0.5.2 (2023-12-19)

0.5.1 (2023-12-18)

0.5.0 (2023-12-17)

Features

  • examples-plugins: add package-json plugin 📦 (#354) (e2f2abe)

0.4.5 (2023-12-15)

0.4.4 (2023-12-15)

0.4.3 (2023-12-14)

0.4.2 (2023-12-12)

Performance Improvements

  • utils: setup microbenchmark for crawlFileSystem (#355) (33d6e25)

0.4.1 (2023-12-12)

0.4.0 (2023-12-11)

Features

  • utils: add sorting of audit issues for report md (b1c5dd7), closes #313 #313

0.3.2 (2023-12-10)

0.3.1 (2023-12-04)

0.3.0 (2023-12-04)

Bug Fixes

  • plugin-eslint: truncate rule texts to pass models validations (a6aac56)

Features

  • utils: add utility function for truncating texts (bdce572)

0.2.0 (2023-12-04)

Bug Fixes

  • plugin-eslint: dynamic import for optional peer dep @nx/devkit (ab62f2f)

Features

  • plugin-eslint: add docs url (d6a6b2a)
  • plugin-eslint: provide Nx helper to combine eslint config from all projects (82fa3e1)
  • plugin-eslint: provide Nx helper to combine eslint configs from project with deps (29cd887)

0.1.1 (2023-12-02)

0.1.0 (2023-12-01)

Bug Fixes

  • cli-e2e: re-create package-lock.json (8a99ec0)
  • cli: changed persist format options to array (#153) (26c6a85), closes #95
  • cli: exclude nested kebab-case keys, update tests (741d5a5)
  • cli: parse multiple config args to last item of array (#164) (7c81f81), closes #146
  • cli: replace clui on @isaacs/cliui (#282) (465f230), closes #209
  • cli: run npm install before tests (6507c2e)
  • core: audit metadata looked up in plugin config, not expected in output (31ffd5e)
  • core: include package.json data (0fef0c3)
  • formatting (7e5e743)
  • lint config and errors (6f5f677)
  • models: add package.lock (8075613)
  • models: allow empty string as docsUrl (1c34d92)
  • models: increase character limit for issue message (e6f6fc8)
  • plugin-eslint: allow unmatched patterns (d350187)
  • plugin-eslint: ensure runner output directory exists (fca87f5)
  • plugin-eslint: ensure working directory exists before writing .eslintrc.json (3f19d6f)
  • plugin-eslint: exclude rules which are turned off (f2cc454)
  • plugin-eslint: handle implicitly relative config paths (39a7d43)
  • plugin-eslint: omit empty docsUrl in audit metadata (3127683)
  • plugin-eslint: pluralize audit display value based on count (aa35d0c)
  • refactor after core package intro (#83) (aa39d09)
  • sync package-lock.json with npm install (0fde5f3)
  • testing: fix tests for Windows (#165) (b80255b), closes #131
  • utils,cli: remove all mentions of the interactive option (#245) (be7471e), closes #120
  • utils: handle descriptions ending in code block in report.md (a9a05ad)

Features

  • add transform to persist config (#229) (ce4d975)
  • cli: add --persist.filename cli option (#187) (296df7d)
  • cli: disabled version option (#162) (9a5371c), closes #124
  • cli: initial collect command (#45) (ba048be)
  • cli: introduce the onlyPlugins option (#246) (13c9d26), closes #119
  • cli: persist login and formatting options (#47) (6241fd7)
  • cli: setup yargs for cli (#42) (37ea0a5), closes #6 #38
  • cli: use bundle-require instead of jiti (no hackfix, but also no CJS configs) (028c592)
  • configure build and tests to handle ESM and CJS configs (48cd967)
  • core: add core package (dd8ddae)
  • core: add esm plugin logic (#248) (18d4e3a)
  • core: change to execute all plugins before throwing on failed (#275) (32a6ef5), closes #159
  • models: add isBinary field to category schema (8b13039)
  • models: add report filename option (#174) (bdeab54)
  • models: setup types and parser with zod (7d5c99e)
  • models: validate plugin icons using portal-client package (f52cc75)
  • nx-plugin: add configuration generator (#294) (ee21143), closes #61
  • nx-plugin: initial setup and init command (#51) (c8dd4d9), closes #9
  • plugin-eslint: add support for inline eslint config (67571eb)
  • plugin-eslint: configure bin entry point (b34ecb2)
  • plugin-eslint: convert rule ids to slugs, add basic description to audits (971c97a)
  • plugin-eslint: create groups from rules' meta.docs.category (per plugin) (56e129c)
  • plugin-eslint: create groups from rules' meta.type (problem/suggestion/layout) (0350e49)
  • plugin-eslint: implement runner logic (0ad5445)
  • plugin-eslint: include NPM package name and version (25bda11)
  • plugin-eslint: register audit metadata based on eslintrc and file patterns (3aac581)
  • plugin-eslint: rule options used to identify audit, options in slug (hash) and description (b9f51c9)
  • plugin-eslint: validate initializer params with Zod (56e1aee)
  • support top-level await in config files (7712250)
  • support TS config files using Jiti + hackfix lighthouse import.meta usages (3b7927d)
  • utils: add audits sorting for reports (#302) (10ee12e), closes #210
  • utils: add command line args helper (#52) (9d6acec), closes #43
  • utils: add file size logging (#65) (c46046f), closes #59
  • utils: add file-system helper (#336) (001498b)
  • utils: add package utils for cli independent logic (#39) (dacaaf7), closes #32
  • utils: add scoring logic (#133) (89fecbb)
  • utils: add upload logic (#66) (3e88ffc), closes #21 #57 #85
  • utils: implement a new design for stdout (#206) (84b8c28), closes #190
  • utils: implement report.md formatting (#196) (346596d), closes #148
  • utils: implement verbose helper logic (#121) (112ebe7)
  • utils: move parts from utils into core (#81) (dd0a180), closes #78
  • utils: update git latest commit functionality (#205) (7ec4582), closes #192

Performance Improvements

  • utils: add benchmark logic and example (#137) (142943e)
  • utils: improve the performance of scoring and reporting (#212) (41d7c0b), closes #132