1+ @wip
12Feature : Create an CycloneDX sbom
23
34 *Dfetch* can generate a software Bill-of-Materials (SBOM).
@@ -19,78 +20,75 @@ Feature: Create an CycloneDX sbom
1920 url: https://github.com/cpputest/cpputest
2021 tag: v3.4
2122 src: 'include/CppUTest'
22-
2323 """
2424 And all projects are updated
2525 When I run "dfetch report -t sbom"
2626 Then the 'report.json' file contains
2727 """
28- {
29- "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
30- "bomFormat": "CycloneDX",
31- "specVersion": "1.6",
32- "serialNumber": "urn:uuid:3ce78767-c202-4beb-935e-67f539cf3a58",
33- "version": 1,
34- "dependencies": [
28+ {
29+ "components": [
3530 {
36- "ref": "BomRef.7805091949677974.3172811758515278"
37- }
38- ],
39- "metadata": {
40- "timestamp": "2025-10-03T20:56:03.645362+00:00",
41- "tools": [
42- {
43- "vendor": "dfetch-org",
44- "name": "dfetch",
45- "version": "0.10.0"
46- },
47- {
48- "vendor": "CycloneDX",
49- "name": "cyclonedx-python-lib",
50- "version": "11.1.0",
51- "externalReferences": [
52- {
53- "url": "https://pypi.org/project/cyclonedx-python-lib/",
54- "type": "distribution"
55- },
56- {
57- "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme",
58- "type": "website"
59- },
31+ "bom-ref": "cpputest-v3.4",
32+ "evidence": {
33+ "identity": [
6034 {
61- "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions",
62- "type": "build-system"
35+ "concludedValue": "cpputest",
36+ "field": "name",
37+ "methods": [
38+ {
39+ "confidence": 0.4,
40+ "technique": "manifest-analysis",
41+ "value": "Name as used for project in dfetch.yaml"
42+ }
43+ ],
44+ "tools": [
45+ "dfetch-0.10.0"
46+ ]
6347 },
6448 {
65- "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE",
66- "type": "license"
49+ "concludedValue": "pkg:github/cpputest/cpputest@v3.4#include/CppUTest",
50+ "field": "purl",
51+ "methods": [
52+ {
53+ "confidence": 0.4,
54+ "technique": "manifest-analysis",
55+ "value": "Determined from https://github.com/cpputest/cpputest as used for the project cpputest in dfetch.yaml"
56+ }
57+ ],
58+ "tools": [
59+ "dfetch-0.10.0"
60+ ]
6761 },
6862 {
69- "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md",
70- "type": "release-notes"
71- },
72- {
73- "url": "https://cyclonedx-python-library.readthedocs.io/",
74- "type": "documentation"
75- },
63+ "concludedValue": "v3.4",
64+ "field": "version",
65+ "methods": [
66+ {
67+ "confidence": 0.4,
68+ "technique": "manifest-analysis",
69+ "value": "Version as used for project in dfetch.yaml"
70+ }
71+ ],
72+ "tools": [
73+ "dfetch-0.10.0"
74+ ]
75+ }
76+ ],
77+ "licenses": [
7678 {
77- "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues",
78- "type": "issue-tracker"
79- },
79+ "license": {
80+ "id": "BSD-3-Clause"
81+ }
82+ }
83+ ],
84+ "occurrences": [
8085 {
81- "url": "https://github.com/CycloneDX/cyclonedx-python-lib",
82- "type": "vcs"
86+ "line": 5,
87+ "location": "dfetch.yaml",
88+ "offset": 13
8389 }
8490 ]
85- }
86- ]
87- },
88- "components": [
89- {
90- "type": "library",
91- "bom-ref": "BomRef.7805091949677974.3172811758515278",
92- "name": "cpputest",
93- "version": "v3.4",
91+ },
9492 "externalReferences": [
9593 {
9694 "type": "vcs",
@@ -99,11 +97,133 @@ Feature: Create an CycloneDX sbom
9997 ],
10098 "licenses": [
10199 {
102- "expression": "BSD 3-Clause \"New\" or \"Revised\" License"
100+ "license": {
101+ "id": "BSD-3-Clause"
102+ }
103103 }
104104 ],
105- "purl": "pkg:github/cpputest/cpputest@v3.4#include/CppUTest"
105+ "name": "cpputest",
106+ "purl": "pkg:github/cpputest/cpputest@v3.4#include/CppUTest",
107+ "type": "library",
108+ "version": "v3.4"
109+ }
110+ ],
111+ "dependencies": [
112+ {
113+ "ref": "cpputest-v3.4"
106114 }
107- ]
115+ ],
116+ "metadata": {
117+ "timestamp": "2025-10-10T18:28:32.074803+00:00",
118+ "tools": {
119+ "components": [
120+ {
121+ "bom-ref": "dfetch-0.10.0",
122+ "externalReferences": [
123+ {
124+ "type": "build-system",
125+ "url": "https://github.com/dfetch-org/dfetch/actions"
126+ },
127+ {
128+ "type": "distribution",
129+ "url": "https://pypi.org/project/dfetch/"
130+ },
131+ {
132+ "type": "documentation",
133+ "url": "https://dfetch.readthedocs.io/"
134+ },
135+ {
136+ "type": "issue-tracker",
137+ "url": "https://github.com/dfetch-org/dfetch/issues"
138+ },
139+ {
140+ "type": "license",
141+ "url": "https://github.com/dfetch-org/dfetch/blob/main/LICENSE"
142+ },
143+ {
144+ "type": "release-notes",
145+ "url": "https://github.com/dfetch-org/dfetch/blob/main/CHANGELOG.rst"
146+ },
147+ {
148+ "type": "vcs",
149+ "url": "https://github.com/dfetch-org/dfetch"
150+ },
151+ {
152+ "type": "website",
153+ "url": "https://dfetch-org.github.io/"
154+ }
155+ ],
156+ "licenses": [
157+ {
158+ "license": {
159+ "acknowledgement": "declared",
160+ "id": "MIT"
161+ }
162+ }
163+ ],
164+ "name": "dfetch",
165+ "supplier": {
166+ "name": "dfetch-org"
167+ },
168+ "type": "application",
169+ "version": "0.10.0"
170+ },
171+ {
172+ "description": "Python library for CycloneDX",
173+ "externalReferences": [
174+ {
175+ "type": "build-system",
176+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib/actions"
177+ },
178+ {
179+ "type": "distribution",
180+ "url": "https://pypi.org/project/cyclonedx-python-lib/"
181+ },
182+ {
183+ "type": "documentation",
184+ "url": "https://cyclonedx-python-library.readthedocs.io/"
185+ },
186+ {
187+ "type": "issue-tracker",
188+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib/issues"
189+ },
190+ {
191+ "type": "license",
192+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/LICENSE"
193+ },
194+ {
195+ "type": "release-notes",
196+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/CHANGELOG.md"
197+ },
198+ {
199+ "type": "vcs",
200+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib"
201+ },
202+ {
203+ "type": "website",
204+ "url": "https://github.com/CycloneDX/cyclonedx-python-lib/#readme"
205+ }
206+ ],
207+ "group": "CycloneDX",
208+ "licenses": [
209+ {
210+ "license": {
211+ "acknowledgement": "declared",
212+ "id": "Apache-2.0"
213+ }
214+ }
215+ ],
216+ "name": "cyclonedx-python-lib",
217+ "type": "library",
218+ "version": "11.1.0"
219+ }
220+ ]
221+ }
222+ },
223+ "serialNumber": "urn:uuid:7621038e-3047-4862-99e7-d637ee9458a9",
224+ "version": 1,
225+ "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
226+ "bomFormat": "CycloneDX",
227+ "specVersion": "1.6"
108228 }
109229 """
0 commit comments