Puppet Class: psick::ci::danger

Defined in:
manifests/ci/danger.pp

Overview

This class installs and configures danger, used to automatically add comments to Merge/Push Requests during CI pipelines Danger homepage: danger.systems/

Parameters:

  • ensure (String) (defaults to: 'present')

    Define if to install (present), remote (absent) danger gems

  • use_gitlab (Boolean) (defaults to: false)

    If GitLab (and the relevant danger gem) is used

  • install_system_gems (Boolean) (defaults to: false)

    If to install danger gems on the system

  • install_puppet_gems (Boolean) (defaults to: true)

    If to install danger gems via puppet gem

  • plugins (Array) (defaults to: [ ])
  • manage (Boolean) (defaults to: $::psick::manage)
  • noop_manage (Boolean) (defaults to: $::psick::noop_manage)
  • noop_value (Boolean) (defaults to: $::psick::noop_value)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'manifests/ci/danger.pp', line 10

class psick::ci::danger (
  String $ensure               = 'present',
  Array $plugins               = [ ],
  Boolean $use_gitlab          = false,
  Boolean $install_system_gems = false,
  Boolean $install_puppet_gems = true,

  Boolean          $manage               = $::psick::manage,
  Boolean          $noop_manage          = $::psick::noop_manage,
  Boolean          $noop_value           = $::psick::noop_value,
) {

  if $manage {
    if $noop_manage {
      noop($noop_value)
    }

    include ::psick::ruby

    $all_gems = $use_gitlab ? {
      true  => ['danger-gitlab'] + $plugins,
      false => ['danger'] + $plugins,
    }

    $all_gems.each | $gem | {
      if $install_system_gems {
        package { $gem:
          ensure   => $ensure,
          provider => 'gem',
          require  => Class['psick::ruby'],
        }
      }
      if $install_puppet_gems {
        package { "puppet_${gem}":
          ensure   => $ensure,
          name     => $gem,
          provider => 'puppet_gem',
          require  => Class['psick::ruby'],
        }
      }
    }
  }
}