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
Name | Type | Description |
---|---|---|
deps_keys | string [] | 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
Name | Type | Description |
---|---|---|
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
Name | Type |
---|---|
push | Object |
push.default_branch | string |
push.try_load_ssh_keys | boolean |
Defined in
packages/pvm-types/lib/config-schema.ts:377
github
• github: Object
Type declaration
Name | Type | Description |
---|---|---|
api_url? | string | Optional 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
Name | Type | Description |
---|---|---|
api_prefix | string | Gitlab api path |
api_url? | string | Separete url used as gitlab api endpoint |
authorization_type | "bearer" | "private-token" | Gitlab authorization type |
default_url | string | Gitlab url. Used to api requests, and repo entities links if url or api_url are not set. |
url? | string | Forced 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
Name | Type | Description |
---|---|---|
url? | string | jira 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
Name | Type | Description |
---|---|---|
analyze_update | boolean | Enable various checks of repo packages. In particular check sync of versions between packages. Mark-pr will print warnings in case of problems detected. |
attach_changelog | boolean | Attach changelog to pull request |
packages_as_labels | boolean | Add package names as labes to pull request |
packages_graph | boolean | Attach package deps graph to pull request |
packages_table | boolean | Output table of packages with following info: package name, package version, release type, update reason |
renderer | ChangelogRenderer | Changelog render settings |
Defined in
packages/pvm-types/lib/config-schema.ts:391
notifications
• notifications: Object
How to deal with messages.
Type declaration
Name | Type | Description |
---|---|---|
client_configs | Record <string , Partial <MessengerClientConfig >> | Default message values, each for specific messenger client. Its priority is higher than clients_common_config. |
clients | MessengerClientLoadConfig [] | Messenger client load configs |
clients_common_config | Partial <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 |
target | string | 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
Name | Type | Description |
---|---|---|
indent? | number | Ident for package.json write deprecated |
Defined in
packages/pvm-types/lib/config-schema.ts:561
pkgset
• pkgset: Object
Type declaration
Name | Type | Description |
---|---|---|
affected_files | { if_changed : string [] ; then_affected : PkgFlexGlobs }[] | - |
ignore_files | string [] | 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
Name | Type |
---|---|
local_plugins | string [] |
options | Record <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
Name | Type | Description |
---|---|---|
cli_args? | string | Additional cli args string. Passed "as is" to npm publish command |
disabled_for | string [] | Do not perform publish for packages that matches specified locators. |
email? | string | Used 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_for | string [] | Patterns list for published packages. If not empty then only those packages, that match locators, are going to publish |
include_monorepo_root | boolean | Allow 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? | string | Subdirectory to publish. This value is appended to each publish path after "path_mapping" options have been applied |
process_npm_token? | boolean | Use NPM_TOKEN environment variable for result auth npm config calculation |
registry? | string | Registry 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
Name | Type | Description |
---|---|---|
ensure_branch_up_to_date | boolean | Before pushing changes, check for upstream branch is still actual |
tag_only | boolean | Do not commit any worktree changes via vcs |
Defined in
packages/pvm-types/lib/config-schema.ts:243
release_list
• release_list: Object
Type declaration
Name | Type | Description |
---|---|---|
enabled | boolean | Enable storing releases meta-info in specified storage (right now only git repository is supported) |
limit | ArtifactLimitDef | How to limit entries count in release list |
path | string | Path to release list artifact file |
storage | StorageDef | Storage 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
Name | Type | Description |
---|---|---|
annotation_lookup_depth | number | How deep to look for the version in the release tags annotations, if no version for the package can be found |
for_packages | Object | - |
for_packages.as_release | boolean | Add as release in source code platform. Otherwise only as git tag. |
for_packages.enabled | boolean | If enabled add tag for each package in {pkg.name}-v{semver} format |
for_packages.strip_namespace | boolean | Strip namespaces from package name |
generic_tag | Object | To 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_format | string | Date follows after prefix, delimited by '-' symbol |
generic_tag.prefix | string | Release tag prefix |
generic_tag.suffixes? | string | string [] | deprecated |
release_tag_package | string | If 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). |
suffixes | string | 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
Name | Type | Description |
---|---|---|
failed_vcs_push | string | If vcs push failed then render error message for slack with this template |
pkg-update-deps | string | Release notes template |
release-commit | string | Release commit template |
Defined in
packages/pvm-types/lib/config-schema.ts:453
templating
• templating: Object
Type declaration
Name | Type | Description |
---|---|---|
filters | Object | - |
filters.cutList | Object | - |
filters.cutList.maxLen | number | Max list length, passed to cutList template filter |
setup_script? | string | Path 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_names | boolean | Use shot package names ("short" means without namespace part) |
vars | Object | - |
vars.releaseLink? | string | - |
Defined in
packages/pvm-types/lib/config-schema.ts:426
update
• update: Object
Type declaration
Name | Type | Description |
---|---|---|
autolint | boolean | Lint and fix packages package.json files before update and commit them |
commit_via_platform | boolean | Perform commits via vcs platform api (gitlab, github etc.) |
default_release_type | "patch" | "minor" | "major" | Type of version change according to semver |
dependants_release_type | SemverReleaseType | "as-dep" | How to increment version of dependant packages. 'as-dep' means use same version as in changed dependency. |
graph | Object | Updated packages graph settings |
graph.strip_namespace | boolean | - |
graph.title | string | - |
hints_file | string | File which can configure release process per merge-request |
include_root | boolean | "auto" | Include root pkg depending on file changes |
include_uncommited | boolean | Include uncommited files into changed packages calculation |
no_release_ref | string | false | Git ref for changed calculations when no previous release exists. Or false if pvm should calculate it by itself. |
push_remote | string | Git 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_version | boolean | Downgrade 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_vcs | boolean | Retry operation via platform if vcs operation failed |
update_dependants | boolean | { 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_files | boolean | Use 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
Name | Type | Description |
---|---|---|
builtin_type | "auto" | "git" | "fs" | Version system type |
Defined in
packages/pvm-types/lib/config-schema.ts:371
versioning
• versioning: Object
Type declaration
Name | Type | Description |
---|---|---|
independent_packages | string [] | 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_file | string | Where from and where to save versions if source equals file . |
unified | boolean | 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/or independent_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 the v` prefix. |
unified_versions_for | PkgFlexGlobs [] | 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. |