10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/gitlab/ci/parsers/terraform/tfplan.rb', line 10
def parse!(json_data, terraform_reports, artifact:)
job_details = job_details(artifact.job)
job_id = job_details['job_id']
plan_data = Gitlab::Json.parse(json_data)
if has_required_keys?(plan_data)
terraform_reports.add_plan(job_id, valid_tfplan(plan_data, job_details))
else
terraform_reports.add_plan(job_id, invalid_tfplan(:missing_json_keys, job_details))
end
rescue JSON::ParserError
terraform_reports.add_plan(job_id, invalid_tfplan(:invalid_json_format, job_details))
rescue StandardError
details = job_details || {}
plan_name = job_id || 'failed_tf_plan'
terraform_reports.add_plan(plan_name, invalid_tfplan(:unknown_error, details))
end
|