Skip to main content

Interface: Config

@pvm/types.Config

Configuration schema.

Properties

changelog

• changelog: Changelog & { for_packages: Omit<Changelog, "path" | "storage"> & { output_dir: string } }

Changelog generator settings

Defined in

packages/pvm-types/lib/config-schema.ts:357


core

• core: Object

Type declaration

NameTypeDescription
deps_keysstring[]Dependency lists that should be updated and used when package version updates

Defined in

packages/pvm-types/lib/config-schema.ts:219


dangerously_opts

• dangerously_opts: Object

Options that need more attention in terms of the consequences of their activation.

Type declaration

NameTypeDescription
always_changed_workspaces?string[]A glob mask array that defines the packets that the system will interpret as always modified. The mask will be applied to the path of the packages (workspaces). This setting will affect the following places: - getPackages method in '@pvm/pvm' (except 'released' and 'updated' types) - getUpdateState method in '@pvm/update', which affects pvm-update or pvm-release commands

Defined in

packages/pvm-types/lib/config-schema.ts:547


git

• git: Object

Type declaration

NameType
pushObject
push.default_branchstring
push.try_load_ssh_keysboolean

Defined in

packages/pvm-types/lib/config-schema.ts:377


github

• github: Object

Type declaration

NameTypeDescription
api_url?stringOptional url of github server
auth_strategy?"authApp" | "authToken" | "authAction"Supported github authorization strategies. See https://github.com/octokit/authentication-strategies.js/ for more info. default env.CI ? 'authAction' : 'authToken'

Defined in

packages/pvm-types/lib/config-schema.ts:498


gitlab

• gitlab: Object

Type declaration

NameTypeDescription
api_prefixstringGitlab api path
api_url?stringSeparete url used as gitlab api endpoint
authorization_type"bearer" | "private-token"Gitlab authorization type
default_urlstringGitlab url. Used to api requests, and repo entities links if url or api_url are not set.
url?stringForced url endpoint. If not specified then additional calculation will be performed.

Defined in

packages/pvm-types/lib/config-schema.ts:476


include

• Optional include: string[]

External configuration paths

Defined in

packages/pvm-types/lib/config-schema.ts:560


jira

• jira: Object

Type declaration

NameTypeDescription
url?stringjira url. If set, then jira-task ids will be transformed into links.

Defined in

packages/pvm-types/lib/config-schema.ts:470


mark_pr

• mark_pr: Object

Type declaration

NameTypeDescription
analyze_updatebooleanEnable various checks of repo packages. In particular check sync of versions between packages. Mark-pr will print warnings in case of problems detected.
attach_changelogbooleanAttach changelog to pull request
packages_as_labelsbooleanAdd package names as labes to pull request
packages_graphbooleanAttach package deps graph to pull request
packages_tablebooleanOutput table of packages with following info: package name, package version, release type, update reason
rendererChangelogRendererChangelog render settings

Defined in

packages/pvm-types/lib/config-schema.ts:391


notifications

• notifications: Object

How to deal with messages.

Type declaration

NameTypeDescription
client_configsRecord<string, Partial<MessengerClientConfig>>Default message values, each for specific messenger client. Its priority is higher than clients_common_config.
clientsMessengerClientLoadConfig[]Messenger client load configs
clients_common_configPartial<MessengerClientConfig>Common config which applied to all messenger clients. For example channel name is same in several messengers and you dont want to duplicate it
targetstring | string[]Which clients use to send messages:
all - all provided and ready to use clients.
first_available - find first ready client (order determined by order of clients in notifications.clients config) and use it.
MessengerName or list of names - try to send message through specified clients.

In all cases ready client means all necessary env variables or configuration values are provided. If message not sent to messenger you expect to - look at log output

Defined in

packages/pvm-types/lib/config-schema.ts:519


packages

• Optional packages: Object

Type declaration

NameTypeDescription
indent?numberIdent for package.json write deprecated

Defined in

packages/pvm-types/lib/config-schema.ts:561


pkgset

• pkgset: Object

Type declaration

NameTypeDescription
affected_files{ if_changed: string[] ; then_affected: PkgFlexGlobs }[]-
ignore_filesstring[]Exclude files from changed files list. Affects calculation of package sets

Defined in

packages/pvm-types/lib/config-schema.ts:225


plugins

• plugins: Object

deprecated please use plugins_v2

Type declaration

NameType
local_pluginsstring[]
optionsRecord<string, Record<string, string>>

Defined in

packages/pvm-types/lib/config-schema.ts:421


plugins_v2

• plugins_v2: PluginConfig[]

Defined in

packages/pvm-types/lib/config-schema.ts:425


publish

• publish: Object

Type declaration

NameTypeDescription
cli_args?stringAdditional cli args string. Passed "as is" to npm publish command
disabled_forstring[]Do not perform publish for packages that matches specified locators.
email?stringUsed only if your npm version less than v6.7.0 and you don't have email in npm conf files,\nas npm of these versions fails to publish without email in settings" format email
enabled_only_forstring[]Patterns list for published packages. If not empty then only those packages, that match locators, are going to publish
include_monorepo_rootbooleanAllow to publish monorepo root. By default this is impossible
path_mapping?Record<string, string>By default publish path for each package and package path itself is same thing.\nBut you can replace the beginning of each package path to another string via providing this argument.\nExample: 'src/components' => 'lib/components'"
path_subdir?stringSubdirectory to publish. This value is appended to each publish path after "path_mapping" options have been applied
process_npm_token?booleanUse NPM_TOKEN environment variable for result auth npm config calculation
registry?stringRegistry for publishing if not specified in publishConfig.registry field of package.json

Defined in

packages/pvm-types/lib/config-schema.ts:179


release

• release: Object

Type declaration

NameTypeDescription
ensure_branch_up_to_datebooleanBefore pushing changes, check for upstream branch is still actual
tag_onlybooleanDo not commit any worktree changes via vcs

Defined in

packages/pvm-types/lib/config-schema.ts:243


release_list

• release_list: Object

Type declaration

NameTypeDescription
enabledbooleanEnable storing releases meta-info in specified storage (right now only git repository is supported)
limitArtifactLimitDefHow to limit entries count in release list
pathstringPath to release list artifact file
storageStorageDefStorage settings

Defined in

packages/pvm-types/lib/config-schema.ts:336


slack_notification

• Optional slack_notification: Record<string, string>

See https://api.slack.com/methods/chat.postMessage#arguments

deprecated Use @notifications.clients_common_config instead

Defined in

packages/pvm-types/lib/config-schema.ts:515


tagging

• tagging: Object

Type declaration

NameTypeDescription
annotation_lookup_depthnumberHow deep to look for the version in the release tags annotations, if no version for the package can be found
for_packagesObject-
for_packages.as_releasebooleanAdd as release in source code platform. Otherwise only as git tag.
for_packages.enabledbooleanIf enabled add tag for each package in {pkg.name}-v{semver} format
for_packages.strip_namespacebooleanStrip namespaces from package name
generic_tagObjectTo be used only if all conditions are met: 1. Value versioning.unified = false. 2. Value tagging.release_tag_package is not set. 3. Repository can have packages of different versions according to pvm settings.
generic_tag.date_formatstringDate follows after prefix, delimited by '-' symbol
generic_tag.prefixstringRelease tag prefix
generic_tag.suffixes?string | string[]deprecated
release_tag_packagestringIf you don't use the versioning.unified = true setting, this option will cause the version of given package to be used as release tags prefixed with v. The package must exist, otherwise a runtime exception will be thrown. If versioning.unified = true is used, the setting will be ignored in favor of the version of the main package group (see the description of the versioning.unified setting).
suffixesstring | string[]Suffixes for release tags, could be name of package which exports list of strings or it could be explicit list of strings

Defined in

packages/pvm-types/lib/config-schema.ts:126


templates

• templates: Object

Templates See https://mozilla.github.io/nunjucks/templating.html for template engine docs See packages/pvm-template/lib/env.ts for extra filters and variables

Type declaration

NameTypeDescription
failed_vcs_pushstringIf vcs push failed then render error message for slack with this template
pkg-update-depsstringRelease notes template
release-commitstringRelease commit template

Defined in

packages/pvm-types/lib/config-schema.ts:453


templating

• templating: Object

Type declaration

NameTypeDescription
filtersObject-
filters.cutListObject-
filters.cutList.maxLennumberMax list length, passed to cutList template filter
setup_script?stringPath to script that can add templates extra variables, filters etc. (See https://mozilla.github.io/nunjucks/templating.html and nunjucks.Environment for more)
use_short_namesbooleanUse shot package names ("short" means without namespace part)
varsObject-
vars.releaseLink?string-

Defined in

packages/pvm-types/lib/config-schema.ts:426


update

• update: Object

Type declaration

NameTypeDescription
autolintbooleanLint and fix packages package.json files before update and commit them
commit_via_platformbooleanPerform commits via vcs platform api (gitlab, github etc.)
default_release_type"patch" | "minor" | "major"Type of version change according to semver
dependants_release_typeSemverReleaseType | "as-dep"How to increment version of dependant packages. 'as-dep' means use same version as in changed dependency.
graphObjectUpdated packages graph settings
graph.strip_namespaceboolean-
graph.titlestring-
hints_filestringFile which can configure release process per merge-request
include_rootboolean | "auto"Include root pkg depending on file changes
include_uncommitedbooleanInclude uncommited files into changed packages calculation
no_release_refstring | falseGit ref for changed calculations when no previous release exists. Or false if pvm should calculate it by itself.
push_remotestringGit remote path that is used in git push. Calculated automatically if not specified.
release_type_overrides{ files_match: string[] ; type: "none" | SemverReleaseType }[]Override calculated release type example { type: 'none', files_match: ['\/*\/', '*\/.md'] }
respect_zero_major_versionbooleanDowngrade semver release type by one level if major part in package version is zero. Major to minor, and minor to patch.
retry_via_platform_if_failed_via_vcsbooleanRetry operation via platform if vcs operation failed
update_dependantsboolean | { match: string ; release_type: "none" | SemverReleaseType | "as-dep" }[]Update dependant packages of changed. If provided list of objects with match property where match is universal selector then only for those who match these selectors will dependants be updated
workspace_release_filesbooleanUse special release files, that are force semver release type of package. If disabled, than these files are ignored.

Defined in

packages/pvm-types/lib/config-schema.ts:253


vcs

• vcs: Object

Version control system settings

Type declaration

NameTypeDescription
builtin_type"auto" | "git" | "fs"Version system type

Defined in

packages/pvm-types/lib/config-schema.ts:371


versioning

• versioning: Object

Type declaration

NameTypeDescription
independent_packagesstring[]Packages who always use independent versioning regardless of unified_versions_for or unified settings.
source"package" | "tag" | "file"Where do the versions come from. Also affects the way the versions are saved. See versioning section in documentation for more info.
source_filestringWhere from and where to save versions if source equals file.
unifiedboolean | string[]unified = true or unified = [<pkg-selector list>] will create the "main" group of packages, by default including all packages, within which all packages will have the same version. If there are options unified_versions_forand/orindependent_packagesthen these will create additional groups, packages from which will be excluded from the main group. This will also cause the release tags to be equal to the version of the main group of packages with thev` prefix.
unified_versions_forPkgFlexGlobs[]List of groups, each group is a list of globs or just one glob string for workspace paths, where each of group have own unified versioning. If you want unified versioning for whole repository, choose ['*'] value or better set unified setting to true.

Defined in

packages/pvm-types/lib/config-schema.ts:99