Type object
File match .pmbot.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/pmbot-yml/latest.json
Source https://raw.githubusercontent.com/pmbot-io/config/master/pmbot.yml.schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Properties

version string required
Values: "1"
packageManagers PackageManagerUpdateConfig[] required

List of updates to perform

minItems=1

Actions to execute after each package manager update

Default:
[]

Definitions

AutoMergeActionCommitMessageTemplateContext object
slug required

Update slug. For example, "npm", or, "npm-0" when there are multiple pmUpdates with packageManager npm.

AutoMergeActionConfig object
squash boolean

Whether to squash commits of the update branch

Default: true
commitMessage string

Commit message

This handlebars template is passed the following context:

{
    "slug": "npm-0"
}
Default: "chore: update {{slug}} dependencies"
removeUpdateBranch boolean

Whether to remove the update branch

Default: true
TitleTemplateContext object
slug required

Update slug. For example, "npm", or, "npm-0" when there are multiple pmUpdates with packageManager npm.

status required

Package manager update status

statusEmoji required

A status emoji corresponding to the package manager update status

CreateIssueActionConfig object
token string required

An authentication token. For Gitlab, this should be a personal access token. For Github, it should be a Github personal access token.

minLength=1
title string

Issue title

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
additionalText string

Additional text to embed in the issue description

assignees string[]

Usernames to assign to the issue created. Note that Gitlab CE only allows one assignee.

Default:
[]
closeOpen boolean

Close open issues that were created by Pmbot. This option prevents multiple issues open simultaneously when you don't have the time to look at them.

Default: true
CreateMergeRequestActionConfig object
token string required

An authentication token. For Gitlab, this should be a personal access token. For Github, it should be a Github personal access token.

minLength=1
title string

Merge request title

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
additionalText string

Additional text to embed in the merge request description

assignees string[]

Usernames to assign to the issue created. Note that Gitlab CE only allows one assignee.

Default:
[]
closeOpen boolean

Close open merge requests that were created by Pmbot. This option prevents multiple merge requests open simultaneously when you don't have the time to merge them.

Default: true
squash boolean

[GITLAB only] Whether commits of the merge request source branch should be squashed

Default: true
deleteSourceBranch boolean

[GITLAB only] Whether the merge request source branch should be deleted

Default: true
maintainerCanModify boolean

[GITHUB only] Whether maintainers can modify the created pull request

Default: true
MessageConfig object
from string required

Sender's email. Be aware that some providers (e.g. OBVH) will silently ignore sending the email when the sender address does not match the username.

minLength=1
to string required

Recipient address(es)

minLength=1
subject string

Email subject

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
EmailActionConfig object
transportOptions required

Nodemailer transport options

messageConfig object required
3 nested properties
from string required

Sender's email. Be aware that some providers (e.g. OBVH) will silently ignore sending the email when the sender address does not match the username.

minLength=1
to string required

Recipient address(es)

minLength=1
subject string

Email subject

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
additionalText string

Additional text to embed in the email body

MattermostActionConfig object
url string required
minLength=1
channels string[]

Channels where to send the message. Obsolete parameter when you have enabled Lock to this channel for the incoming webhook.

title string

Message title

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
additionalText string

Additional text to embed in the message body

SlackActionConfig object
url string required

Slack webhook URL.

To get this URL:

  1. Create a custom Slack App. Fill in the form as follows:
    • App Name: Pmbot
    • Development Slack Workspace: Workspace where you want Pmbot to be integrated to
  2. Click "Create App". You are redirected to your app's page.
  3. Under menu section Features, select Incoming Webhooks, then toggle on Activate Incoming Webhooks. A new section named Webhook URLs for Your Workspace appears.
  4. Under section Webhook URLs for Your Workspace, click Add New Webhook To Workspace, then select the channel to which you want messages to be sent, for example #pmbot.
  5. Once added, copy the webhook URL and configure this action with it
minLength=1
title string

Slack message title

This handlebars template is passed the following context:

{
    "slug": "myPm",
    "status": "myStatus",
    "statusEmoji": "✅"
}
Default: "Automated update of {{slug}} dependencies {{statusEmoji}}"
additionalText string

Additional text to embed in the slack message body

WebhookHeader object
name string required

Header name

minLength=1
value string required

Header value

minLength=1
WebhookActionConfig object
url string required

Url to call

minLength=1
extraData

Data that will be appended to the webhook payload in property "extraData"

headers WebhookHeader[]

Additional headers to append to the HTTP request

BumpRule object
pattern string required

A Javascript regular expression.

bump string required
Values: "major" "minor" "patch"
GenericBumpConfig object
defaultBumpRule string

Default rule for bumping dependencies. Used unless a specific rule is configured.

Values: "major" "minor" "patch"
bumpRules BumpRule[]

Bump rules for specific dependencies. The first rule to match is used. When no custom rule is found here, we fallback the default rule.

Default:
[]
GoPmaConfig object
bumpConfig

Bump configuration. Patterns are matched against package names.

MavenPmaConfig object
bumpConfig

Bump configuration. Patterns are matched against dependency names formed as ":" (e.g. "javax.xml.bind:jaxb-api").

settingsPath

Path to a maven settings.xml file which contains credentials for private repositories.

PmbotPluginDeclaration object
name string required
minLength=1
config
ActionPluginDeclaration object
name string required
minLength=1
on string[]

When to trigger this action

Default:
[]
config
CiConfig object
enabled boolean

When false, all updates are made at once and we do not wait for CI feedback.

Default: true
DependencyUpdateCommitMessageTemplateContext object
dependency string required

Name of the dependency

versionBefore string required

Version of the dependency before it was updated

versionAfter string required

Version of the dependency after it was updated

PackageManagerUpdateConfig object
packageManager object required
2 nested properties
name string required
minLength=1
config
ci object
1 nested properties
enabled boolean

When false, all updates are made at once and we do not wait for CI feedback.

Default: true
branchPrefix string

Prefix of the update branch

Default: "update/"
commitMessage string

Commit message template

This handlebars template is passed the following context:

{
    "dependency": "chalk",
    "versionBefore": "1.0.0",
    "versionAfter": "1.0.1"
}
Default: "chore: update {{dependency}} from {{versionBefore}} to {{versionAfter}}"
maxLength=128
ignore string[]

List of dependencies to ignore. Each item should be a Javascript regular expression.

Default:
[]

Actions to execute after the update

Default:
[]
keepUpdateBranchOnFailure boolean

When true, the update branch will not be deleted when the package manager update status is failure.