Skip to content

Latest commit

 

History

History
1562 lines (1328 loc) · 68 KB

File metadata and controls

1562 lines (1328 loc) · 68 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 string (url) (optional) or ''
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: 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 - 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 number (≥0)
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) string (url) (optional) or ''
isSkipped Indicates whether the audit is skipped boolean
displayValue Formatted value (e.g. '0.9 s', '2.1 MB') string
value (*) Raw numeric value number (≥0)
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 string (url) (optional) or ''
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - 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 Score
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) Slug
title (*) Descriptive name string (max length: 256)
description Description (markdown) string (max length: 65536)
docsUrl Link to documentation (rationale) string (url) (optional) or ''
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: 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 items
title (*) Category Title string (max length: 256)
description Category description string (max length: 65536)
docsUrl Category docs URL string (url) (optional) or ''
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 string (url) (optional) or ''
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 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) 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 string (url) (optional) or ''
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 items
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 number (int, >0)
startColumn Start column number (int, >0)
endLine End line number (int, >0)
endColumn End column number (int, >0)
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.

FileName

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

FilePath

String which 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 which 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 string (url) (optional) or ''
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: 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') Slug
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) Slug
title (*) Descriptive name string (max length: 256)
docsUrl Documentation site string (url) (optional) or ''
plugin (*) Plugin which defines it Object with properties:
  • slug (*): Slug - 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 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 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 ''
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 file location SourceFileLocation

(*) Required.

IssueSeverity

Severity level

Enum, one of the following possible values:

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

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'

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 items

(*) 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 string (url) (optional) or ''
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 items
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 record 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 string (url) (optional) or ''
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 string (url) (optional) or ''
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 items
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)

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 items
categories Array of CategoryConfig items
commit (*) Git commit for which report was collected Commit (nullable)
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:
  • outputDir (*): string (min length: 1)
  • filename (*): string (regex: /^(?!.*[ \\/:*?"<>|]).+$/, min length: 1)
  • format (*): Array of Format items
  • skipReports (*): boolean

(*) 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

Returns:

Score

Value between 0 and 1

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

Slug

Unique ID (human-readable, URL-safe)

String which 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:
  • startLine (*): number (int, >0) - Start line
  • startColumn: number (int, >0) - Start column
  • endLine: number (int, >0) - End line
  • endColumn: number (int, >0) - End column

(*) 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: null

TableColumnObject

Object containing the following properties:

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

(*) Required.

TableColumnPrimitive

Cell alignment

Enum, one of the following possible values:

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

TableRowObject

Object row

Object record 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.