renovate/lib/modules/manager/puppet
RahulGautamSingh 2a07e91be6
refactor: convert ProgrammingLanguage to union type (#18748)
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2022-11-05 08:49:57 +00:00
..
__fixtures__ feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
common.spec.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
common.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
extract.spec.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
extract.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
index.ts refactor: convert ProgrammingLanguage to union type (#18748) 2022-11-05 08:49:57 +00:00
puppetfile-parser.spec.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
puppetfile-parser.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
readme.md feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00
types.ts feat: add librarian-puppet support (#14789) 2022-07-17 05:27:35 +03:00

simply keeps Puppetfiles updated

How It Works

  1. Renovate searches in each repository for any Puppetfile files
  2. Existing dependencies are extracted from the relevant sections of the file
  3. Renovate resolves the dependency on the provided forges (or uses https://forgeapi.puppetlabs.com as default)
  4. A PR is created with Puppetfile updated in the same commit
  5. If the source repository has either a "changelog" file or uses GitHub releases, then Release Notes for each version will be embedded in the generated PR

supported Puppetfile formats

the manager extracts the deps from one Puppetfile

the Puppetfile supports at the moment different ways to configure forges

  1. no forge defined

    mod 'puppetlabs/apt', '8.3.0'
    mod 'puppetlabs/apache', '7.0.0'
    
  2. one forge defined: forge "https://forgeapi.puppetlabs.com"

    forge "https://forgeapi.puppetlabs.com"
    
    mod 'puppetlabs/apt', '8.3.0'
    mod 'puppetlabs/apache', '7.0.0'
    mod 'puppetlabs/concat', '7.1.1'
    
  3. multiple forges defined

    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'
    
  4. github based version

    # tag based
    mod 'example/standalone_jar',
       :git => 'git@gitlab.example.de:puppet/example-standalone_jar',
       :tag => '0.9.0'
    
  5. git based version

    # tag based
    mod 'stdlib',
     :git => 'git@gitlab.com:example/project_stdlib.git',
     :tag => '5.0.0'
    

possible improvements

further git-support

usually you can add the versions to a forge and use the already provided way of updating

# branch based
mod 'example/samba',
    :git    => 'https://github.com/example/puppet-samba',
    :branch => 'stable_version'
# ref based
mod 'example/samba',
    :git => 'https://github.com/example/puppet-samba',
    :ref => 'stable_version'