Skip to content

Latest commit

 

History

History
1329 lines (1173 loc) · 65.8 KB

models-reference.md

File metadata and controls

1329 lines (1173 loc) · 65.8 KB

Code PushUp models reference

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:

All properties are optional.

AuditDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
scores (*) Score comparison Object with properties:
  • before: number (≥0, ≤1) - Value between 0 and 1 (source commit)
  • after: number (≥0, ≤1) - 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: string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128) - Unique plugin slug within core config
  • title: string (max length: 256) - Descriptive name
  • docsUrl: string (url) (optional) or '' - Plugin documentation site
values (*) Audit value comparison Object with properties:
  • before: number (≥0) - Raw numeric value (source commit)
  • after: number (≥0) - Raw numeric value (target commit)
  • diff: number (int) - 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 string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string
value (*) Raw numeric value number (≥0)
score (*) Value between 0 and 1 number (≥0, ≤1)
details Detailed information AuditDetails

(*) Required.

AuditOutputs

Array of AuditOutput items.

AuditReport

Object containing the following properties:

Property Description Type
slug (*) Reference to audit string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Link to documentation (rationale) string (url) (optional) or ''
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string
value (*) Raw numeric value number (≥0)
score (*) Value between 0 and 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) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
plugin (*) Plugin which defines it Object with properties:
  • slug: string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128) - Unique plugin slug within core config
  • title: string (max length: 256) - Descriptive name
  • docsUrl: string (url) (optional) or '' - Plugin documentation site
score (*) Value between 0 and 1 number (≥0, ≤1)
value (*) Raw numeric value number (≥0)
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) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Link to documentation (rationale) string (url) (optional) or ''

(*) Required.

CategoryConfig

Object containing the following properties:

Property Description Type
slug (*) Human-readable unique ID, e.g. "performance" string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
refs (*) Array of at least 1 CategoryRef items
title (*) Category Title string (max length: 256)
description Category description string (max length: 65536)
docsUrl Category docs URL string (url) (optional) or ''
isBinary Is this a binary category (i.e. only a perfect score considered a "pass")? boolean

(*) Required.

CategoryDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
scores (*) Score comparison Object with properties:
  • before: number (≥0, ≤1) - Value between 0 and 1 (source commit)
  • after: number (≥0, ≤1) - 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) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
weight (*) Weight used to calculate score number (≥0)
type (*) Discriminant for reference kind, affects where slug is looked up 'audit' | 'group'
plugin (*) Plugin slug (plugin should contain referenced audit or group) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)

(*) Required.

CategoryResult

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
score (*) Value between 0 and 1 number (≥0, ≤1)

(*) 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 (nullable)
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 items
persist PersistConfig
upload UploadConfig
categories Array of CategoryConfig items

(*) Required.

Format

Enum string, one of the following possible values:

  • 'json'
  • 'md'

GroupDiff

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
scores (*) Score comparison Object with properties:
  • before: number (≥0, ≤1) - Value between 0 and 1 (source commit)
  • after: number (≥0, ≤1) - 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: string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128) - Unique plugin slug within core config
  • title: string (max length: 256) - Descriptive name
  • docsUrl: string (url) (optional) or '' - 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') string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
weight (*) Weight used to calculate score number (≥0)

(*) Required.

GroupResult

Object containing the following properties:

Property Description Type
slug (*) Unique ID (human-readable, URL-safe) string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
plugin (*) Plugin which defines it Object with properties:
  • slug: string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128) - Unique plugin slug within core config
  • title: string (max length: 256) - Descriptive name
  • docsUrl: string (url) (optional) or '' - Plugin documentation site
score (*) Value between 0 and 1 number (≥0, ≤1)

(*) Required.

Group

Object containing the following properties:

Property Description Type
slug (*) Human-readable unique ID, e.g. "performance" string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
refs (*) Array of at least 1 GroupRef items
title (*) Descriptive name for the group string (max length: 256)
description Description of the group (markdown) string (max length: 65536)
docsUrl Group documentation site string (url) (optional) or ''

(*) 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 file location Object with properties:
  • file: string (min length: 1) - Relative path to source file in Git repo
  • position: Object with properties:
    • startLine: number (int, >0) - Start line
    • startColumn: number (int, >0) - Start column
    • endLine: number (int, >0) - End line
    • endColumn: number (int, >0) - End column
    - Location in file

(*) Required.

IssueSeverity

Severity level

Enum string, one of the following possible values:

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

MaterialIcon

Icon from VSCode Material Icons extension

Enum string, one of the following possible values:

Expand for full list of 839 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'
  • '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'
  • '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'
  • 'nrwl'
  • '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'
  • 'caddy'
  • 'bun'
  • 'bun_light'
  • 'antlr'
  • 'pinejs'
  • 'nano-staged'
  • 'nano-staged_light'
  • 'taskfile'
  • 'craco'
  • 'gamemaker'
  • 'tldraw'
  • 'tldraw_light'
  • 'mercurial'
  • 'deno'
  • 'deno_light'
  • 'plastic'
  • 'typst'
  • 'unocss'
  • 'ifanr-cloud'
  • 'mermaid'
  • '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-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'
  • 'folder-open'
  • 'folder-root'
  • 'folder-root-open'

OnProgress

Function.

Parameters:

  1. unknown (optional & nullable)

Returns:

  • void (optional)

PersistConfig

Object containing the following properties:

Property Description Type
outputDir Artifacts folder string (min length: 1)
filename Artifacts file name (without extension) string (regex: /^(?!.*[ \\/:*?"<>|]).+$/, min length: 1)
format Array of Format items

All properties are optional.

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 string (url) (optional) or ''
slug (*) Unique plugin slug within core config string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
icon (*) Icon from VSCode Material Icons extension MaterialIcon
runner (*) RunnerConfig or RunnerFunction
audits (*) Array of at least 1 Audit items
groups Array of Group items

(*) Required.

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 string (url) (optional) or ''
slug (*) Unique plugin slug within core config string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
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 string (url) (optional) or ''
slug (*) Unique plugin slug within core config string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
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 items
groups Array of Group items

(*) Required.

Report

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
categories (*) Array of CategoryConfig items
plugins (*) Array of at least 1 PluginReport items
commit (*) Git commit for which report was collected Object with properties:
  • hash: string (regex: /^[\da-f]{40}$/) - Commit SHA (full)
  • message: string - Commit message
  • date: Date (nullable) - Date and time when commit was authored
  • author: string - Commit author name
(nullable)

(*) Required.

ReportsDiff

Object containing the following properties:

Property Description Type
commits (*) Commits identifying compared reports Object with properties:
  • before: Object with properties:
    • hash: string (regex: /^[\da-f]{40}$/) - Commit SHA (full)
    • message: string - Commit message
    • date: Date (nullable) - Date and time when commit was authored
    • author: string - Commit author name
    - Git commit (source commit)
  • after: Object with properties:
    • hash: string (regex: /^[\da-f]{40}$/) - Commit SHA (full)
    • message: string - Commit message
    • date: Date (nullable) - Date and time when commit was authored
    • author: string - Commit author name
    - 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.

RunnerConfig

How to execute runner

Object containing the following properties:

Property Description Type
command (*) Shell command to execute string
args Array<string>
outputFile (*) Output path string (min length: 1)
outputTransform Function:

(*) Required.

RunnerFunction

Function.

Parameters:

  1. OnProgress (optional)

Returns:

TableAlignment

Cell alignment

Enum string, one of the following possible values:

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

TableCellValue

Union of the following possible types:

  • string
  • number
  • boolean
  • null (nullable) (optional & nullable)

Default value: null

TableColumnObject

Object containing the following properties:

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

(*) Required.

TableColumnPrimitive

Cell alignment

Enum string, one of the following possible values:

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

TableRowObject

Object row

Object record with dynamic keys:

  • keys of type string
  • values of type TableCellValue (optional & nullable)

TableRowPrimitive

Primitive row

Array of TableCellValue (_optional & nullable) items._

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 string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
project (*) Project slug from Code PushUp portal string (regex: /^[a-z\d]+(?:-[a-z\d]+)*$/, max length: 128)
timeout Request timeout in minutes (default is 5) number (>0, int)

(*) Required.