Skip to content

Latest commit

 

History

History
1631 lines (1369 loc) · 78.6 KB

File metadata and controls

1631 lines (1369 loc) · 78.6 KB

Code PushUp models reference

ArtifactGenerationCommand

Union of the following possible types:

  • string (min length: 1)
  • Object with properties:
    • command (*): string (min length: 1) - Generate artifact files
    • args: Array<string>

AuditDetails

Detailed information

Object containing the following properties:

Property Description Type
issues List of findings Array of Issue items
table Table of related findings Object with properties: or Object with properties:
trees Findings in tree structure Array of Tree items

All properties are optional.

AuditDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
scores (*) Score comparison Object with properties:
  • before (*): Score - Value between 0 and 1 (source commit)
  • after (*): Score - Value between 0 and 1 (target commit)
  • diff (*): number (≥-1, ≤1) - Score change (scores.after - scores.before)
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - Unique plugin slug within core config
  • title (*): string (max length: 256) - Descriptive name
  • docsUrl: '' or string (url) (optional) - Plugin documentation site
values (*) Audit value comparison Object with properties:
  • before (*): NonnegativeNumber - Raw numeric value (source commit)
  • after (*): NonnegativeNumber - Raw numeric value (target commit)
  • diff (*): number - Value change (values.after - values.before)
displayValues (*) Audit displayValue comparison Object with properties:
  • before: string - Formatted value (e.g. '0.9 s', '2.1 MB') (source commit)
  • after: string - Formatted value (e.g. '0.9 s', '2.1 MB') (target commit)

(*) Required.

AuditOutput

Audit information

Object containing the following properties:

Property Description Type
slug (*) Reference to audit Slug
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string
value (*) Raw numeric value NonnegativeNumber
score (*) Value between 0 and 1 Score
scoreTarget Pass/fail score threshold (0-1) number (≥0, ≤1)
details Detailed information AuditDetails

(*) Required.

AuditOutputs

List of JSON formatted audit output emitted by the runner process of a plugin

Array of AuditOutput items.

AuditReport

Object containing the following properties:

Property Description Type
slug (*) Reference to audit Slug
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Link to documentation (rationale) '' or string (url) (optional)
isSkipped Indicates whether the audit is skipped boolean
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string
value (*) Raw numeric value NonnegativeNumber
score (*) Value between 0 and 1 Score
scoreTarget Pass/fail score threshold (0-1) number (≥0, ≤1)
details Detailed information AuditDetails

(*) Required.

AuditResult

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - Unique plugin slug within core config
  • title (*): string (max length: 256) - Descriptive name
  • docsUrl: '' or string (url) (optional) - Plugin documentation site
score (*) Value between 0 and 1 Score
value (*) Raw numeric value NonnegativeNumber
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string

(*) Required.

Audit

Object containing the following properties:

Property Description Type
slug (*) ID (unique within plugin) Slug
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Link to documentation (rationale) '' or string (url) (optional)
isSkipped Indicates whether the audit is skipped boolean

(*) Required.

BasicTreeNode

Object containing the following properties:

Property Description Type
name (*) Text label for node string (min length: 1)
values Additional values for node Record<string, number | string>
children Direct descendants of this node (omit if leaf) Array of BasicTreeNode items

(*) Required.

BasicTree

Generic tree

Object containing the following properties:

Property Description Type
title Heading string
type Discriminant 'basic'
root (*) Root node BasicTreeNode

(*) Required.

CacheConfigObject

Cache configuration object for read and/or write operations

Object containing the following properties:

Property Description Type Default
read Whether to read from cache if available boolean false
write Whether to write results to cache boolean false

All properties are optional.

CacheConfig

Cache configuration for read and write operations

Union of the following possible types:

Default value is false.

CacheConfigShorthand

Cache configuration shorthand for both, read and write operations

Boolean.

CategoryConfig

Object containing the following properties:

Property Description Type
slug (*) Human-readable unique ID, e.g. "performance" Slug
refs (*) Array of at least 1 CategoryRef item
title (*) Category Title string (max length: 256)
description Category description string (max length: 65536)
docsUrl Category docs URL '' or string (url) (optional)
isSkipped boolean
scoreTarget Pass/fail score threshold (0-1) number (≥0, ≤1)

(*) Required.

CategoryDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
scores (*) Score comparison Object with properties:
  • before (*): Score - Value between 0 and 1 (source commit)
  • after (*): Score - Value between 0 and 1 (target commit)
  • diff (*): number (≥-1, ≤1) - Score change (scores.after - scores.before)

(*) Required.

CategoryRef

Object containing the following properties:

Property Description Type
slug (*) Slug of an audit or group (depending on type) Slug
weight (*) Weight used to calculate score NonnegativeNumber
type (*) Discriminant for reference kind, affects where slug is looked up 'audit' | 'group'
plugin (*) Plugin slug (plugin should contain referenced audit or group) Slug

(*) Required.

CategoryResult

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
score (*) Value between 0 and 1 Score

(*) Required.

Commit

Git commit

Object containing the following properties:

Property Description Type
hash (*) Commit SHA (full) string (regex: /^[\da-f]{40}$/)
message (*) Commit message string
date (*) Date and time when commit was authored Date
author (*) Commit author name string

(*) Required.

CoreConfig

Object containing the following properties:

Property Description Type
plugins (*) List of plugins to be used (official, community-provided, or custom) Array of at least 1 PluginConfig item
persist PersistConfig
upload UploadConfig
categories Categorization of individual audits Array of CategoryConfig items

(*) Required.

CoverageTreeMissingLOC

Uncovered line of code, optionally referring to a named function/class/etc.

Object containing the following properties:

Property Description Type
startLine (*) Start line PositiveInt
startColumn Start column PositiveInt
endLine End line PositiveInt
endColumn End column PositiveInt
name Identifier of function/class/etc. string
kind E.g. "function", "class" string

(*) Required.

CoverageTreeNode

Object containing the following properties:

Property Description Type
name (*) File or folder name string (min length: 1)
values (*) Coverage metrics for file/folder Object with properties:
  • coverage (*): number (≥0, ≤1) - Coverage ratio
  • missing: Array of CoverageTreeMissingLOC items - Uncovered lines of code
children Files and folders contained in this folder (omit if file) Array of CoverageTreeNode items

(*) Required.

CoverageTree

Coverage for files and folders

Object containing the following properties:

Property Description Type
title Heading string
type (*) Discriminant 'coverage'
root (*) Root folder CoverageTreeNode

(*) Required.

FileIssue

Issue with a file source location

Object containing the following properties:

Property Description Type
message (*) Descriptive error message string (max length: 1024)
severity (*) Severity level IssueSeverity
source (*) Source file location SourceFileLocation

(*) Required.

FileName

String that matches the regular expression /^(?!.*[ \\/:*?"<>|]).+$/ and has a minimum length of 1.

FilePath

String that has a minimum length of 1.

Format

Enum, one of the following possible values:

  • 'json'
  • 'md'

GlobPath

Schema for a glob pattern (supports wildcards like *, **, {}, !, etc.)

String that has a minimum length of 1 and matches the regular expression /^!?[^<>"|]+$/.

GroupDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
scores (*) Score comparison Object with properties:
  • before (*): Score - Value between 0 and 1 (source commit)
  • after (*): Score - Value between 0 and 1 (target commit)
  • diff (*): number (≥-1, ≤1) - Score change (scores.after - scores.before)
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - Unique plugin slug within core config
  • title (*): string (max length: 256) - Descriptive name
  • docsUrl: '' or string (url) (optional) - Plugin documentation site

(*) Required.

GroupRef

Weighted reference to a group

Object containing the following properties:

Property Description Type
slug (*) Reference slug to a group within this plugin (e.g. 'max-lines') Slug
weight (*) Weight used to calculate score NonnegativeNumber

(*) Required.

GroupResult

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site '' or string (url) (optional)
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - Unique plugin slug within core config
  • title (*): string (max length: 256) - Descriptive name
  • docsUrl: '' or string (url) (optional) - Plugin documentation site
score (*) Value between 0 and 1 Score

(*) Required.

Group

Object containing the following properties:

Property Description Type
slug (*) Human-readable unique ID, e.g. "performance" Slug
refs (*) Array of at least 1 GroupRef item
title (*) Descriptive name for the group string (max length: 256)
description Description of the group (markdown) string (max length: 65536)
docsUrl Group documentation site '' or string (url) (optional)
isSkipped Indicates whether the group is skipped boolean

(*) Required.

Issue

Issue information

Object containing the following properties:

Property Description Type
message (*) Descriptive error message string (max length: 1024)
severity (*) Severity level IssueSeverity
source Source location of an issue (file path or URL) IssueSource

(*) Required.

IssueSeverity

Severity level

Enum, one of the following possible values:

  • 'info'
  • 'warning'
  • 'error'

IssueSource

Source location of an issue (file path or URL)

Union of the following possible types:

MaterialIcon

Icon from VSCode Material Icons extension

Enum, one of the following possible values:

Expand for full list of 858 values
  • 'git'
  • 'yaml'
  • 'xml'
  • 'matlab'
  • 'settings'
  • 'shaderlab'
  • 'diff'
  • 'json'
  • 'blink'
  • 'java'
  • 'razor'
  • 'python'
  • 'mojo'
  • 'javascript'
  • 'typescript'
  • 'scala'
  • 'handlebars'
  • 'perl'
  • 'haxe'
  • 'puppet'
  • 'elixir'
  • 'livescript'
  • 'erlang'
  • 'twig'
  • 'julia'
  • 'elm'
  • 'purescript'
  • 'stylus'
  • 'nunjucks'
  • 'pug'
  • 'robot'
  • 'sass'
  • 'less'
  • 'css'
  • 'visualstudio'
  • 'angular'
  • 'graphql'
  • 'solidity'
  • 'autoit'
  • 'haml'
  • 'yang'
  • 'terraform'
  • 'applescript'
  • 'cake'
  • 'cucumber'
  • 'nim'
  • 'apiblueprint'
  • 'riot'
  • 'postcss'
  • 'coldfusion'
  • 'haskell'
  • 'dhall'
  • 'cabal'
  • 'nix'
  • 'ruby'
  • 'slim'
  • 'php'
  • 'php_elephant'
  • 'php_elephant_pink'
  • 'hack'
  • 'react'
  • 'mjml'
  • 'processing'
  • 'hcl'
  • 'go'
  • 'go_gopher'
  • 'nodejs_alt'
  • 'django'
  • 'html'
  • 'godot'
  • 'godot-assets'
  • 'vim'
  • 'silverstripe'
  • 'prolog'
  • 'pawn'
  • 'reason'
  • 'sml'
  • 'tex'
  • 'salesforce'
  • 'sas'
  • 'docker'
  • 'table'
  • 'csharp'
  • 'console'
  • 'c'
  • 'cpp'
  • 'objective-c'
  • 'objective-cpp'
  • 'coffee'
  • 'fsharp'
  • 'editorconfig'
  • 'clojure'
  • 'groovy'
  • 'markdown'
  • 'jinja'
  • 'proto'
  • 'python-misc'
  • 'vue'
  • 'lua'
  • 'lib'
  • 'log'
  • 'jupyter'
  • 'document'
  • 'pdf'
  • 'powershell'
  • 'r'
  • 'rust'
  • 'database'
  • 'kusto'
  • 'lock'
  • 'svg'
  • 'swift'
  • 'react_ts'
  • 'search'
  • 'minecraft'
  • 'rescript'
  • 'otne'
  • 'twine'
  • 'grain'
  • 'lolcode'
  • 'idris'
  • 'chess'
  • 'gemini'
  • 'vlang'
  • 'wolframlanguage'
  • 'shader'
  • 'tree'
  • 'svelte'
  • 'dart'
  • 'cadence'
  • 'stylable'
  • 'hjson'
  • 'huff'
  • 'concourse'
  • 'blink_light'
  • 'jinja_light'
  • 'playwright'
  • 'sublime'
  • 'image'
  • 'routing'
  • 'typescript-def'
  • 'markojs'
  • 'astro'
  • 'vscode'
  • 'qsharp'
  • 'zip'
  • 'vala'
  • 'zig'
  • 'exe'
  • 'hex'
  • 'jar'
  • 'javaclass'
  • 'h'
  • 'hpp'
  • 'rc'
  • 'go-mod'
  • 'url'
  • 'gradle'
  • 'word'
  • 'certificate'
  • 'key'
  • 'font'
  • 'dll'
  • 'gemfile'
  • 'rubocop'
  • 'rubocop_light'
  • 'rspec'
  • 'arduino'
  • 'powerpoint'
  • 'video'
  • 'virtual'
  • 'vedic'
  • 'email'
  • 'audio'
  • 'raml'
  • 'xaml'
  • 'kotlin'
  • 'dart_generated'
  • 'actionscript'
  • 'mxml'
  • 'autohotkey'
  • 'flash'
  • 'swc'
  • 'cmake'
  • 'assembly'
  • 'semgrep'
  • 'vue-config'
  • 'nuxt'
  • 'ocaml'
  • 'odin'
  • 'javascript-map'
  • 'css-map'
  • 'test-ts'
  • 'test-jsx'
  • 'test-js'
  • 'angular-component'
  • 'angular-guard'
  • 'angular-service'
  • 'angular-pipe'
  • 'angular-directive'
  • 'angular-resolver'
  • 'smarty'
  • 'bucklescript'
  • 'merlin'
  • 'verilog'
  • 'mathematica'
  • 'vercel'
  • 'vercel_light'
  • 'verdaccio'
  • 'payload'
  • 'payload_light'
  • 'next'
  • 'next_light'
  • 'remix'
  • 'remix_light'
  • 'laravel'
  • 'vfl'
  • 'kl'
  • 'posthtml'
  • 'todo'
  • 'http'
  • 'restql'
  • 'kivy'
  • 'graphcool'
  • 'sbt'
  • 'webpack'
  • 'ionic'
  • 'gulp'
  • 'nodejs'
  • 'npm'
  • 'yarn'
  • 'android'
  • 'tune'
  • 'turborepo'
  • 'turborepo_light'
  • 'babel'
  • 'blitz'
  • 'contributing'
  • 'readme'
  • 'changelog'
  • 'architecture'
  • 'credits'
  • 'authors'
  • 'flow'
  • 'favicon'
  • 'karma'
  • 'bithound'
  • 'svgo'
  • 'appveyor'
  • 'travis'
  • 'codecov'
  • 'sonarcloud'
  • 'protractor'
  • 'fusebox'
  • 'heroku'
  • 'gitlab'
  • 'bower'
  • 'eslint'
  • 'conduct'
  • 'watchman'
  • 'aurelia'
  • 'auto'
  • 'auto_light'
  • 'mocha'
  • 'jenkins'
  • 'firebase'
  • 'figma'
  • 'rollup'
  • 'huff_light'
  • 'hardhat'
  • 'stylelint'
  • 'stylelint_light'
  • 'code-climate'
  • 'code-climate_light'
  • 'prettier'
  • 'renovate'
  • 'apollo'
  • 'nodemon'
  • 'webhint'
  • 'browserlist'
  • 'browserlist_light'
  • 'crystal'
  • 'crystal_light'
  • 'snyk'
  • 'drone'
  • 'drone_light'
  • 'cuda'
  • 'dotjs'
  • 'ejs'
  • 'sequelize'
  • 'gatsby'
  • 'wakatime'
  • 'wakatime_light'
  • 'circleci'
  • 'circleci_light'
  • 'cloudfoundry'
  • 'grunt'
  • 'jest'
  • 'storybook'
  • 'wepy'
  • 'fastlane'
  • 'hcl_light'
  • 'helm'
  • 'san'
  • 'quokka'
  • 'wallaby'
  • 'stencil'
  • 'red'
  • 'makefile'
  • 'foxpro'
  • 'i18n'
  • 'webassembly'
  • 'semantic-release'
  • 'semantic-release_light'
  • 'bitbucket'
  • 'd'
  • 'mdx'
  • 'mdsvex'
  • 'ballerina'
  • 'racket'
  • 'bazel'
  • 'mint'
  • 'velocity'
  • 'azure-pipelines'
  • 'azure'
  • 'vagrant'
  • 'prisma'
  • 'abc'
  • 'asciidoc'
  • 'istanbul'
  • 'edge'
  • 'scheme'
  • 'lisp'
  • 'tailwindcss'
  • '3d'
  • 'buildkite'
  • 'netlify'
  • 'netlify_light'
  • 'nest'
  • 'moon'
  • 'moonscript'
  • 'percy'
  • 'gitpod'
  • 'advpl_prw'
  • 'advpl_ptm'
  • 'advpl_tlpp'
  • 'advpl_include'
  • 'codeowners'
  • 'gcp'
  • 'disc'
  • 'fortran'
  • 'tcl'
  • 'liquid'
  • 'husky'
  • 'coconut'
  • 'tilt'
  • 'capacitor'
  • 'sketch'
  • 'adonis'
  • 'forth'
  • 'uml'
  • 'uml_light'
  • 'meson'
  • 'commitlint'
  • 'buck'
  • 'nx'
  • 'opam'
  • 'dune'
  • 'imba'
  • 'drawio'
  • 'pascal'
  • 'roadmap'
  • 'nuget'
  • 'command'
  • 'stryker'
  • 'denizenscript'
  • 'modernizr'
  • 'slug'
  • 'stitches'
  • 'stitches_light'
  • 'nginx'
  • 'replit'
  • 'rescript-interface'
  • 'snowpack'
  • 'snowpack_light'
  • 'brainfuck'
  • 'bicep'
  • 'cobol'
  • 'quasar'
  • 'dependabot'
  • 'pipeline'
  • 'vite'
  • 'vitest'
  • 'opa'
  • 'lerna'
  • 'windicss'
  • 'textlint'
  • 'lilypond'
  • 'chess_light'
  • 'sentry'
  • 'phpunit'
  • 'php-cs-fixer'
  • 'robots'
  • 'tsconfig'
  • 'tauri'
  • 'jsconfig'
  • 'maven'
  • 'ada'
  • 'serverless'
  • 'supabase'
  • 'ember'
  • 'horusec'
  • 'poetry'
  • 'pdm'
  • 'coala'
  • 'parcel'
  • 'dinophp'
  • 'teal'
  • 'template'
  • 'astyle'
  • 'lighthouse'
  • 'svgr'
  • 'rome'
  • 'cypress'
  • 'siyuan'
  • 'ndst'
  • 'plop'
  • 'tobi'
  • 'tobimake'
  • 'gleam'
  • 'pnpm'
  • 'pnpm_light'
  • 'gridsome'
  • 'steadybit'
  • 'capnp'
  • 'caddy'
  • 'openapi'
  • 'openapi_light'
  • 'swagger'
  • 'bun'
  • 'bun_light'
  • 'antlr'
  • 'pinejs'
  • 'nano-staged'
  • 'nano-staged_light'
  • 'knip'
  • 'taskfile'
  • 'craco'
  • 'gamemaker'
  • 'tldraw'
  • 'tldraw_light'
  • 'mercurial'
  • 'deno'
  • 'deno_light'
  • 'plastic'
  • 'typst'
  • 'unocss'
  • 'ifanr-cloud'
  • 'mermaid'
  • 'syncpack'
  • 'werf'
  • 'roblox'
  • 'panda'
  • 'biome'
  • 'esbuild'
  • 'spwn'
  • 'templ'
  • 'chrome'
  • 'stan'
  • 'abap'
  • 'lottie'
  • 'puppeteer'
  • 'apps-script'
  • 'pkl'
  • 'kubernetes'
  • 'file'
  • 'folder-robot'
  • 'folder-robot-open'
  • 'folder-src'
  • 'folder-src-open'
  • 'folder-dist'
  • 'folder-dist-open'
  • 'folder-css'
  • 'folder-css-open'
  • 'folder-sass'
  • 'folder-sass-open'
  • 'folder-television'
  • 'folder-television-open'
  • 'folder-desktop'
  • 'folder-desktop-open'
  • 'folder-console'
  • 'folder-console-open'
  • 'folder-images'
  • 'folder-images-open'
  • 'folder-scripts'
  • 'folder-scripts-open'
  • 'folder-node'
  • 'folder-node-open'
  • 'folder-javascript'
  • 'folder-javascript-open'
  • 'folder-json'
  • 'folder-json-open'
  • 'folder-font'
  • 'folder-font-open'
  • 'folder-bower'
  • 'folder-bower-open'
  • 'folder-test'
  • 'folder-test-open'
  • 'folder-jinja'
  • 'folder-jinja-open'
  • 'folder-jinja_light'
  • 'folder-jinja-open_light'
  • 'folder-markdown'
  • 'folder-markdown-open'
  • 'folder-pdm'
  • 'folder-pdm-open'
  • 'folder-php'
  • 'folder-php-open'
  • 'folder-phpmailer'
  • 'folder-phpmailer-open'
  • 'folder-sublime'
  • 'folder-sublime-open'
  • 'folder-docs'
  • 'folder-docs-open'
  • 'folder-git'
  • 'folder-git-open'
  • 'folder-github'
  • 'folder-github-open'
  • 'folder-gitlab'
  • 'folder-gitlab-open'
  • 'folder-vscode'
  • 'folder-vscode-open'
  • 'folder-views'
  • 'folder-views-open'
  • 'folder-vue'
  • 'folder-vue-open'
  • 'folder-vuepress'
  • 'folder-vuepress-open'
  • 'folder-expo'
  • 'folder-expo-open'
  • 'folder-config'
  • 'folder-config-open'
  • 'folder-i18n'
  • 'folder-i18n-open'
  • 'folder-components'
  • 'folder-components-open'
  • 'folder-verdaccio'
  • 'folder-verdaccio-open'
  • 'folder-aurelia'
  • 'folder-aurelia-open'
  • 'folder-resource'
  • 'folder-resource-open'
  • 'folder-lib'
  • 'folder-lib-open'
  • 'folder-theme'
  • 'folder-theme-open'
  • 'folder-webpack'
  • 'folder-webpack-open'
  • 'folder-global'
  • 'folder-global-open'
  • 'folder-public'
  • 'folder-public-open'
  • 'folder-include'
  • 'folder-include-open'
  • 'folder-docker'
  • 'folder-docker-open'
  • 'folder-database'
  • 'folder-database-open'
  • 'folder-log'
  • 'folder-log-open'
  • 'folder-target'
  • 'folder-target-open'
  • 'folder-temp'
  • 'folder-temp-open'
  • 'folder-aws'
  • 'folder-aws-open'
  • 'folder-audio'
  • 'folder-audio-open'
  • 'folder-video'
  • 'folder-video-open'
  • 'folder-kubernetes'
  • 'folder-kubernetes-open'
  • 'folder-import'
  • 'folder-import-open'
  • 'folder-export'
  • 'folder-export-open'
  • 'folder-wakatime'
  • 'folder-wakatime-open'
  • 'folder-circleci'
  • 'folder-circleci-open'
  • 'folder-wordpress'
  • 'folder-wordpress-open'
  • 'folder-gradle'
  • 'folder-gradle-open'
  • 'folder-coverage'
  • 'folder-coverage-open'
  • 'folder-class'
  • 'folder-class-open'
  • 'folder-other'
  • 'folder-other-open'
  • 'folder-lua'
  • 'folder-lua-open'
  • 'folder-typescript'
  • 'folder-typescript-open'
  • 'folder-graphql'
  • 'folder-graphql-open'
  • 'folder-routes'
  • 'folder-routes-open'
  • 'folder-ci'
  • 'folder-ci-open'
  • 'folder-benchmark'
  • 'folder-benchmark-open'
  • 'folder-messages'
  • 'folder-messages-open'
  • 'folder-less'
  • 'folder-less-open'
  • 'folder-gulp'
  • 'folder-gulp-open'
  • 'folder-python'
  • 'folder-python-open'
  • 'folder-mojo'
  • 'folder-mojo-open'
  • 'folder-moon'
  • 'folder-moon-open'
  • 'folder-debug'
  • 'folder-debug-open'
  • 'folder-fastlane'
  • 'folder-fastlane-open'
  • 'folder-plugin'
  • 'folder-plugin-open'
  • 'folder-middleware'
  • 'folder-middleware-open'
  • 'folder-controller'
  • 'folder-controller-open'
  • 'folder-ansible'
  • 'folder-ansible-open'
  • 'folder-server'
  • 'folder-server-open'
  • 'folder-client'
  • 'folder-client-open'
  • 'folder-tasks'
  • 'folder-tasks-open'
  • 'folder-android'
  • 'folder-android-open'
  • 'folder-ios'
  • 'folder-ios-open'
  • 'folder-upload'
  • 'folder-upload-open'
  • 'folder-download'
  • 'folder-download-open'
  • 'folder-tools'
  • 'folder-tools-open'
  • 'folder-helper'
  • 'folder-helper-open'
  • 'folder-serverless'
  • 'folder-serverless-open'
  • 'folder-api'
  • 'folder-api-open'
  • 'folder-app'
  • 'folder-app-open'
  • 'folder-apollo'
  • 'folder-apollo-open'
  • 'folder-archive'
  • 'folder-archive-open'
  • 'folder-batch'
  • 'folder-batch-open'
  • 'folder-buildkite'
  • 'folder-buildkite-open'
  • 'folder-cluster'
  • 'folder-cluster-open'
  • 'folder-command'
  • 'folder-command-open'
  • 'folder-constant'
  • 'folder-constant-open'
  • 'folder-container'
  • 'folder-container-open'
  • 'folder-content'
  • 'folder-content-open'
  • 'folder-context'
  • 'folder-context-open'
  • 'folder-core'
  • 'folder-core-open'
  • 'folder-delta'
  • 'folder-delta-open'
  • 'folder-dump'
  • 'folder-dump-open'
  • 'folder-examples'
  • 'folder-examples-open'
  • 'folder-environment'
  • 'folder-environment-open'
  • 'folder-functions'
  • 'folder-functions-open'
  • 'folder-generator'
  • 'folder-generator-open'
  • 'folder-hook'
  • 'folder-hook-open'
  • 'folder-job'
  • 'folder-job-open'
  • 'folder-keys'
  • 'folder-keys-open'
  • 'folder-layout'
  • 'folder-layout-open'
  • 'folder-mail'
  • 'folder-mail-open'
  • 'folder-mappings'
  • 'folder-mappings-open'
  • 'folder-meta'
  • 'folder-meta-open'
  • 'folder-changesets'
  • 'folder-changesets-open'
  • 'folder-packages'
  • 'folder-packages-open'
  • 'folder-shared'
  • 'folder-shared-open'
  • 'folder-shader'
  • 'folder-shader-open'
  • 'folder-stack'
  • 'folder-stack-open'
  • 'folder-template'
  • 'folder-template-open'
  • 'folder-utils'
  • 'folder-utils-open'
  • 'folder-supabase'
  • 'folder-supabase-open'
  • 'folder-private'
  • 'folder-private-open'
  • 'folder-linux'
  • 'folder-linux-open'
  • 'folder-windows'
  • 'folder-windows-open'
  • 'folder-macos'
  • 'folder-macos-open'
  • 'folder-error'
  • 'folder-error-open'
  • 'folder-event'
  • 'folder-event-open'
  • 'folder-secure'
  • 'folder-secure-open'
  • 'folder-custom'
  • 'folder-custom-open'
  • 'folder-mock'
  • 'folder-mock-open'
  • 'folder-syntax'
  • 'folder-syntax-open'
  • 'folder-vm'
  • 'folder-vm-open'
  • 'folder-stylus'
  • 'folder-stylus-open'
  • 'folder-flow'
  • 'folder-flow-open'
  • 'folder-rules'
  • 'folder-rules-open'
  • 'folder-review'
  • 'folder-review-open'
  • 'folder-animation'
  • 'folder-animation-open'
  • 'folder-guard'
  • 'folder-guard-open'
  • 'folder-prisma'
  • 'folder-prisma-open'
  • 'folder-pipe'
  • 'folder-pipe-open'
  • 'folder-svg'
  • 'folder-svg-open'
  • 'folder-terraform'
  • 'folder-terraform-open'
  • 'folder-mobile'
  • 'folder-mobile-open'
  • 'folder-stencil'
  • 'folder-stencil-open'
  • 'folder-firebase'
  • 'folder-firebase-open'
  • 'folder-svelte'
  • 'folder-svelte-open'
  • 'folder-update'
  • 'folder-update-open'
  • 'folder-intellij'
  • 'folder-intellij-open'
  • 'folder-intellij_light'
  • 'folder-intellij-open_light'
  • 'folder-azure-pipelines'
  • 'folder-azure-pipelines-open'
  • 'folder-mjml'
  • 'folder-mjml-open'
  • 'folder-admin'
  • 'folder-admin-open'
  • 'folder-scala'
  • 'folder-scala-open'
  • 'folder-connection'
  • 'folder-connection-open'
  • 'folder-quasar'
  • 'folder-quasar-open'
  • 'folder-next'
  • 'folder-next-open'
  • 'folder-cobol'
  • 'folder-cobol-open'
  • 'folder-yarn'
  • 'folder-yarn-open'
  • 'folder-husky'
  • 'folder-husky-open'
  • 'folder-storybook'
  • 'folder-storybook-open'
  • 'folder-base'
  • 'folder-base-open'
  • 'folder-cart'
  • 'folder-cart-open'
  • 'folder-home'
  • 'folder-home-open'
  • 'folder-project'
  • 'folder-project-open'
  • 'folder-interface'
  • 'folder-interface-open'
  • 'folder-netlify'
  • 'folder-netlify-open'
  • 'folder-enum'
  • 'folder-enum-open'
  • 'folder-contract'
  • 'folder-contract-open'
  • 'folder-queue'
  • 'folder-queue-open'
  • 'folder-vercel'
  • 'folder-vercel-open'
  • 'folder-cypress'
  • 'folder-cypress-open'
  • 'folder-decorators'
  • 'folder-decorators-open'
  • 'folder-java'
  • 'folder-java-open'
  • 'folder-resolver'
  • 'folder-resolver-open'
  • 'folder-angular'
  • 'folder-angular-open'
  • 'folder-unity'
  • 'folder-unity-open'
  • 'folder-pdf'
  • 'folder-pdf-open'
  • 'folder-proto'
  • 'folder-proto-open'
  • 'folder-plastic'
  • 'folder-plastic-open'
  • 'folder-gamemaker'
  • 'folder-gamemaker-open'
  • 'folder-mercurial'
  • 'folder-mercurial-open'
  • 'folder-godot'
  • 'folder-godot-open'
  • 'folder-lottie'
  • 'folder-lottie-open'
  • 'folder-taskfile'
  • 'folder-taskfile-open'
  • 'folder-cloudflare'
  • 'folder-cloudflare-open'
  • 'folder-seeders'
  • 'folder-seeders-open'
  • 'folder'
  • 'folder-open'
  • 'folder-root'
  • 'folder-root-open'

NonnegativeNumber

Number that is greater than or equal to 0.

PersistConfig

Object containing the following properties:

Property Description Type
outputDir Artifacts folder FilePath
filename Artifacts file name (without extension) FileName
format Array of Format items
skipReports boolean

All properties are optional.

PluginArtifactOptions

Object containing the following properties:

Property Description Type
generateArtifactsCommand ArtifactGenerationCommand
artifactsPaths (*) File paths or glob patterns for artifact files GlobPath or Array of at least 1 GlobPath item

(*) Required.

PluginConfig

Object containing the following properties:

Property Description Type
packageName NPM package name string
version NPM version of the package string
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Plugin documentation site '' or string (url) (optional)
isSkipped boolean
slug (*) Unique plugin slug within core config Slug
icon (*) Icon from VSCode Material Icons extension MaterialIcon
runner (*) RunnerConfig or RunnerFunction
audits (*) List of audits maintained in a plugin Array of at least 1 Audit item
groups List of groups Array of Group items
scoreTargets Score targets that trigger a perfect score. Number for all audits or record { slug: target } for specific audits PluginScoreTargets
context Plugin-specific context data for helpers PluginContext

(*) Required.

PluginContext

Plugin-specific context data for helpers

Object with dynamic keys:

  • keys of type string
  • values of type unknown

Optional.

PluginMeta

Object containing the following properties:

Property Description Type
packageName NPM package name string
version NPM version of the package string
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Plugin documentation site '' or string (url) (optional)
isSkipped boolean
slug (*) Unique plugin slug within core config Slug
icon (*) Icon from VSCode Material Icons extension MaterialIcon

(*) Required.

PluginReport

Object containing the following properties:

Property Description Type
packageName NPM package name string
version NPM version of the package string
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Plugin documentation site '' or string (url) (optional)
isSkipped boolean
slug (*) Unique plugin slug within core config Slug
icon (*) Icon from VSCode Material Icons extension MaterialIcon
date (*) Start date and time of plugin run string
duration (*) Duration of the plugin run in ms number
audits (*) Array of at least 1 AuditReport item
groups Array of Group items

(*) Required.

PluginScoreTargets

Score targets that trigger a perfect score. Number for all audits or record { slug: target } for specific audits

Union of the following possible types:

  • number (≥0, ≤1) (optional)
  • Object with dynamic keys of type string and values of type number (≥0, ≤1)

Optional.

PluginUrls

URL(s) to analyze. Single URL, array of URLs, or record of URLs with custom weights

Union of the following possible types:

  • string (url)
  • Array of items of type string (url)
  • Object with dynamic keys of type string (url) and values of type NonnegativeNumber

PositiveInt

Number that is a safe integer (i.e. between Number.MIN_SAFE_INTEGER and Number.MAX_SAFE_INTEGER) and is greater than 0.

Report

Collect output data

Object containing the following properties:

Property Description Type
packageName (*) NPM package name string
version (*) NPM version of the CLI string
date (*) Start date and time of the collect run string
duration (*) Duration of the collect run in ms number
plugins (*) Array of at least 1 PluginReport item
categories Array of CategoryConfig items
commit (*) Git commit for which report was collected Commit
label Label (e.g. project name) string

(*) Required.

ReportsDiff

Object containing the following properties:

Property Description Type
commits (*) Commits identifying compared reports Object with properties:
  • before (*): Commit - Git commit (source commit)
  • after (*): Commit - Git commit (target commit)
(nullable)
portalUrl Link to comparison page in Code PushUp portal string (url)
label Label (e.g. project name) string
categories (*) Changes affecting categories Object with properties:
groups (*) Changes affecting groups Object with properties:
audits (*) Changes affecting audits Object with properties:
packageName (*) NPM package name string
version (*) NPM version of the CLI (when compare was run) string
date (*) Start date and time of the compare run string
duration (*) Duration of the compare run in ms number

(*) Required.

RunnerArgs

Arguments passed to runner

Object containing the following properties:

Property Description Type
persist (*) Persist config with defaults applied Object with properties:

(*) Required.

RunnerConfig

How to execute runner using shell script

Object containing the following properties:

Property Description Type
command (*) Shell command to execute string
args Command arguments Array<string>
outputFile (*) Runner output path FilePath
outputTransform Function:
configFile Runner config path FilePath

(*) Required.

RunnerFilesPaths

Object containing the following properties:

Property Description Type
runnerConfigPath (*) Runner config path FilePath
runnerOutputPath (*) Runner output path FilePath

(*) Required.

RunnerFunction

Callback function for async runner execution in JS/TS

Function.

Parameters:

  1. RunnerArgs

Return value:

Score

Value between 0 and 1

Number that is greater than or equal to 0 and is less than or equal to 1.

Slug

Unique ID (human-readable, URL-safe)

String that matches the regular expression /^[a-z\d]+(?:-[a-z\d]+)*$/ and has a maximum length of 128.

SourceFileLocation

Source file location

Object containing the following properties:

Property Description Type
file (*) Relative path to source file in Git repo FilePath
position Location in file Object with properties:

(*) Required.

SourceUrlLocation

Location of a DOM element in a web page

Object containing the following properties:

Property Description Type
url (*) URL of the web page where the issue was found string (url)
snippet HTML snippet of the element string
selector CSS selector to locate the element string

(*) Required.

TableAlignment

Cell alignment

Enum, one of the following possible values:

  • 'left'
  • 'center'
  • 'right'

TableCellValue

Union of the following possible types:

  • string
  • number
  • boolean
  • null

Default value is null.

TableColumnObject

Object containing the following properties:

Property Description Type
key (*) string
label string
align Cell alignment TableAlignment

(*) Required.

TableRowObject

Object row

Object with dynamic keys:

TableRowPrimitive

Primitive row

Array of TableCellValue items.

Tree

Union of the following possible types:

UploadConfig

Object containing the following properties:

Property Description Type
server (*) URL of deployed portal API string (url)
apiKey (*) API key with write access to portal (use process.env for security) string
organization (*) Organization slug from Code PushUp portal Slug
project (*) Project slug from Code PushUp portal Slug
timeout Request timeout in minutes (default is 5) number (>0, int)

(*) Required.

UrlIssue

Issue with a URL source location

Object containing the following properties:

Property Description Type
message (*) Descriptive error message string (max length: 1024)
severity (*) Severity level IssueSeverity
source (*) Location of a DOM element in a web page SourceUrlLocation

(*) Required.

Weight

Coefficient for the given score (use weight 0 if only for display)

Number that is greater than or equal to 0.