Method: Inspec::Metadata#valid

Defined in:
lib/inspec/metadata.rb

#validObject

return all warn and errors



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/inspec/metadata.rb', line 70

def valid # rubocop:disable Metrics/AbcSize
  errors = []
  warnings = []

  %w{name version}.each do |field|
    next unless params[field.to_sym].nil?
    errors.push("Missing profile #{field} in #{ref}")
  end

  if %r{[\/\\]} =~ params[:name]
    errors.push("The profile name (#{params[:name]}) contains a slash" \
                  ' which is not permitted. Please remove all slashes from `inspec.yml`.')
  end

  # if version is set, ensure it is correct
  if !params[:version].nil? && !valid_version?(params[:version])
    errors.push('Version needs to be in SemVer format')
  end

  %w{title summary maintainer copyright license}.each do |field|
    next unless params[field.to_sym].nil?
    warnings.push("Missing profile #{field} in #{ref}")
  end

  # if version is set, ensure it is in SPDX format
  if !params[:license].nil? && !Spdx.valid_license?(params[:license])
    warnings.push("License '#{params[:license]}' needs to be in SPDX format. See https://spdx.org/licenses/.")
  end

  [errors, warnings]
end