renovate/lib/modules/manager/puppet/readme.md

76 lines
1.8 KiB
Markdown

Renovate can update Puppetfiles.
### How it works
Renovate:
1. Searches each repository for any `Puppetfile` files
1. Extracts dependencies from the relevant sections of the `Puppetfile`
1. Resolves the dependency on the default forge: `https://forgeapi.puppetlabs.com`, or on a user-defined forge
1. Creates a PR that updates the `Puppetfile`
Finally, if the source repository has a "changelog" file _or_ uses GitHub releases, then Renovate puts the changelogs for each version in its PR.
### Supported Puppetfile formats
The `puppet` manager extracts the dependencies from one Puppetfile.
You can define a forge in your `puppetfile` in these ways:
- No forge
- One forge
- Multiple forges
- GitHub-based forge
- Git-based forge
For example:
```ruby title="No forge"
mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
```
```ruby title="One forge"
forge "https://forgeapi.puppetlabs.com"
mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
mod 'puppetlabs/concat', '7.1.1'
```
```ruby title="Multiple forges"
forge "https://forgeapi.puppetlabs.com"
mod 'puppetlabs/apt', '8.3.0'
mod 'puppetlabs/apache', '7.0.0'
mod 'puppetlabs/concat', '7.1.1'
# Private forge
forge "https://forgeapi.example.com"
mod 'example/infra', '3.3.0'
```
```ruby title="GitHub-based forge, tag based"
mod 'example/standalone_jar',
:git => 'git@gitlab.example.de:puppet/example-standalone_jar',
:tag => '0.9.0'
```
```ruby title="Git-based forge, tag based"
mod 'stdlib',
:git => 'git@gitlab.com:example/project_stdlib.git',
:tag => '5.0.0'
```
```ruby title="Git-based forge, branch based"
mod 'example/samba',
:git => 'https://github.com/example/puppet-samba',
:branch => 'stable_version'
```
```ruby title="Git-based forge, ref based"
mod 'example/samba',
:git => 'https://github.com/example/puppet-samba',
:ref => 'stable_version'
```