26
26
-H "X-GitHub-Api-Version: 2022-11-28" \
27
27
https://api.github.com/repos/${{ github.repository }}/dependency-graph/sbom \
28
28
-o "${FILE_PREFIX}-sbom.json"
29
+ continue-on-error : true
29
30
30
31
- name : Verify SBOM JSON File
31
32
run : |
33
+ if [ ! -f "${FILE_PREFIX}-sbom.json" ]; then
34
+ echo "SBOM JSON file not found!"
35
+ exit 1
36
+ fi
32
37
ls -l "${FILE_PREFIX}-sbom.json"
33
38
34
39
- name : Preview SBOM JSON Content
47
52
( .externalRefs[]? | .referenceLocator ),
48
53
"None", "None", "None"
49
54
] | @csv' "${FILE_PREFIX}-sbom.json" >> "${FILE_PREFIX}-sbom.csv"
55
+ continue-on-error : true
50
56
51
57
- name : Preview SBOM CSV Content
52
58
run : |
@@ -57,28 +63,18 @@ jobs:
57
63
TEMP_CSV="${FILE_PREFIX}-sbom-temp.csv"
58
64
echo "name,SPDXID,versionInfo,downloadLocation,externalRefs,license,source_code_url,vendor" > "$TEMP_CSV"
59
65
tail -n +2 "${FILE_PREFIX}-sbom.csv" | while IFS=, read -r name SPDXID versionInfo downloadLocation externalRefs license source_code_url vendor; do
60
- # Debug each row
61
- echo "Processing: $name, $SPDXID, $versionInfo, $downloadLocation, $externalRefs, $license, $source_code_url, $vendor"
62
66
if [[ "$externalRefs" == *"pkg:gem"* ]]; then
63
- echo "Processing RubyGem: $name"
64
67
gem_name=$(echo "$name" | tr -d '"')
65
68
version=$(echo "$versionInfo" | tr -d '"')
66
- # Check if the version contains a version constraint (e.g., ~>, >=, <=)
67
69
if [[ "$versionInfo" =~ [\~\>\<\=\ ] ]]; then
68
- echo "Skipping call to rubygems.org for version constraint: $versionInfo"
69
- continue # Skip processing for this gem versionInfo
70
+ continue
70
71
else
71
- # Proceed with making the call to rubygems.org
72
- echo "Making call to rubygems.org for fixed version: $versionInfo"
73
- # Your logic to call rubygems.org
72
+ api_url="https://rubygems.org/api/v2/rubygems/${gem_name}/versions/${version}.json"
73
+ response=$(curl -s "$api_url")
74
+ new_license=$(echo "$response" | jq -r '.licenses[0] // "None"')
75
+ new_source_code_url=$(echo "$response" | jq -r '.source_code_uri // "None"')
76
+ new_vendor=$(echo "$response" | jq -r '.authors // "None"')
74
77
fi
75
- api_url="https://rubygems.org/api/v2/rubygems/${gem_name}/versions/${version}.json"
76
- response=$(curl -s "$api_url")
77
- echo "Response: $response"
78
- new_license=$(echo "$response" | jq -r '.licenses[0] // "None"')
79
- echo "License: $new_license"
80
- new_source_code_url=$(echo "$response" | jq -r '.source_code_uri // "None"')
81
- new_vendor=$(echo "$response" | jq -r '.authors // "None"')
82
78
else
83
79
new_license="None"
84
80
new_source_code_url="None"
90
86
91
87
- name : Verify SBOM CSV File
92
88
run : |
89
+ if [ ! -f "${FILE_PREFIX}-sbom.csv" ]; then
90
+ echo "SBOM CSV file not found!"
91
+ exit 1
92
+ fi
93
93
ls -l "${FILE_PREFIX}-sbom.csv"
94
94
95
95
- name : Upload SBOM JSON as Artifact
0 commit comments