capycli 2.8.1__tar.gz → 2.9.0.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {capycli-2.8.1 → capycli-2.9.0.dev1}/PKG-INFO +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/__init__.py +6 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/bom_convert.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/bom_validate.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/check_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/check_bom_item_status.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/check_granularity.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/create_components.py +11 -2
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/diff_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/download_sources.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/filter_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/findsources.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/map_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/merge_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/show_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/javascript.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/maven_list.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/maven_pom.py +1 -1
- capycli-2.9.0.dev1/capycli/dependencies/nuget.py +714 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/python.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/options.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/mapping/mapping_to_html.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/mapping/mapping_to_xlsx.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/moverview/moverview_to_html.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/moverview/moverview_to_xlsx.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/check_prerequisites.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/create_bom.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/create_project.py +16 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/create_readme.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/find_project.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/get_license_info.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/show_ecc.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/show_licenses.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/show_project.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/show_vulnerabilities.py +1 -1
- {capycli-2.8.1 → capycli-2.9.0.dev1}/pyproject.toml +1 -1
- capycli-2.8.1/capycli/dependencies/nuget.py +0 -185
- {capycli-2.8.1 → capycli-2.9.0.dev1}/LICENSES/CC0-1.0.txt +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/LICENSES/MIT.txt +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/License.md +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/Readme.md +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/__main__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/csv.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/handle_bom.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/html.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/legacy.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/legacy_cx.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/bom/plaintext.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/capycli_bom_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/comparable_version.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/component_cache.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/dependencies_base.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/file_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/github_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/html_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/json_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/map_result.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/print.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/purl_service.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/purl_store.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/purl_utils.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/script_base.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/common/script_support.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/data/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/data/granularity_list.csv +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/dependencies/handle_dependencies.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/application.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/argument_parser.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/cli.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/exceptions.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/main/result_codes.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/mapping/handle_mapping.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/moverview/handle_moverview.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/__init__.py +0 -0
- {capycli-2.8.1 → capycli-2.9.0.dev1}/capycli/project/handle_project.py +0 -0
|
@@ -63,6 +63,12 @@ def get_app_version() -> str:
|
|
|
63
63
|
return version
|
|
64
64
|
|
|
65
65
|
|
|
66
|
+
def get_app_signature() -> str:
|
|
67
|
+
"""Get the signature of this application."""
|
|
68
|
+
version = get_app_version()
|
|
69
|
+
return f"{APP_NAME}, {version}"
|
|
70
|
+
|
|
71
|
+
|
|
66
72
|
# There is nothing lower than logging.DEBUG (10) in the logging library,
|
|
67
73
|
# but we want an extra level to avoid being too verbose when using -vv.
|
|
68
74
|
_EXTRA_VERBOSE = 5
|
|
@@ -163,7 +163,7 @@ class BomConvert(capycli.common.script_base.ScriptBase):
|
|
|
163
163
|
|
|
164
164
|
def run(self, args: Any) -> None:
|
|
165
165
|
"""Main method()"""
|
|
166
|
-
print("\n" + capycli.
|
|
166
|
+
print("\n" + capycli.get_app_signature() + " - Convert SBOM formats\n")
|
|
167
167
|
|
|
168
168
|
if args.help:
|
|
169
169
|
self.display_help()
|
|
@@ -61,7 +61,7 @@ class BomValidate(capycli.common.script_base.ScriptBase):
|
|
|
61
61
|
|
|
62
62
|
def run(self, args: Any) -> None:
|
|
63
63
|
"""Main method()"""
|
|
64
|
-
print("\n" + capycli.
|
|
64
|
+
print("\n" + capycli.get_app_signature() + " - Validate a CaPyCLI/CycloneDX SBOM\n")
|
|
65
65
|
|
|
66
66
|
if args.help:
|
|
67
67
|
self.display_help()
|
|
@@ -158,7 +158,7 @@ class CheckBom(capycli.common.script_base.ScriptBase):
|
|
|
158
158
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
159
159
|
|
|
160
160
|
print_text(
|
|
161
|
-
"\n" + capycli.
|
|
161
|
+
"\n" + capycli.get_app_signature() +
|
|
162
162
|
" - Check that all releases in the SBOM exist on target SW360 instance.\n")
|
|
163
163
|
|
|
164
164
|
if args.help:
|
|
@@ -176,7 +176,7 @@ class CheckBomItemStatus(capycli.common.script_base.ScriptBase):
|
|
|
176
176
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
177
177
|
|
|
178
178
|
print_text(
|
|
179
|
-
"\n" + capycli.
|
|
179
|
+
"\n" + capycli.get_app_signature()
|
|
180
180
|
+ " - check the status of the items on SW360\n")
|
|
181
181
|
|
|
182
182
|
if args.help:
|
|
@@ -224,7 +224,7 @@ class CheckGranularity(capycli.common.script_base.ScriptBase):
|
|
|
224
224
|
LOG = capycli.get_logger(__name__)
|
|
225
225
|
|
|
226
226
|
print_text(
|
|
227
|
-
"\n" + capycli.
|
|
227
|
+
"\n" + capycli.get_app_signature() +
|
|
228
228
|
" - Check the granularity of all releases in the SBOM.\n")
|
|
229
229
|
|
|
230
230
|
if args.help:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -------------------------------------------------------------------------------
|
|
2
|
-
# Copyright (c) 2019-
|
|
2
|
+
# Copyright (c) 2019-2025 Siemens
|
|
3
3
|
# All Rights Reserved.
|
|
4
4
|
# Author: thomas.graf@siemens.com
|
|
5
5
|
#
|
|
@@ -259,6 +259,10 @@ class BomCreateComponents(capycli.common.script_base.ScriptBase):
|
|
|
259
259
|
# ensure that we have the only correct external-id name: package-url
|
|
260
260
|
data["externalIds"]["package-url"] = cx_comp.purl.to_string()
|
|
261
261
|
|
|
262
|
+
# add information that this release was created by CaPyCli
|
|
263
|
+
data["additionalData"] = {}
|
|
264
|
+
data["additionalData"]["createdWith"] = capycli.get_app_signature()
|
|
265
|
+
|
|
262
266
|
# use project site as fallback for source code download url
|
|
263
267
|
website = CycloneDxSupport.get_ext_ref_website(cx_comp)
|
|
264
268
|
repo = CycloneDxSupport.get_ext_ref_repository(cx_comp)
|
|
@@ -318,6 +322,11 @@ class BomCreateComponents(capycli.common.script_base.ScriptBase):
|
|
|
318
322
|
if cx_comp.purl:
|
|
319
323
|
purl = PurlUtils.component_purl_from_release_purl(cx_comp.purl)
|
|
320
324
|
data["externalIds"] = {"package-url": purl}
|
|
325
|
+
|
|
326
|
+
# add information that this component was created by CaPyCli
|
|
327
|
+
data["additionalData"] = {}
|
|
328
|
+
data["additionalData"]["createdWith"] = capycli.get_app_signature()
|
|
329
|
+
|
|
321
330
|
return data
|
|
322
331
|
|
|
323
332
|
def create_release(self, cx_comp: Component, component_id: str) -> Optional[Dict[str, Any]]:
|
|
@@ -733,7 +742,7 @@ class BomCreateComponents(capycli.common.script_base.ScriptBase):
|
|
|
733
742
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
734
743
|
|
|
735
744
|
print_text(
|
|
736
|
-
"\n" + capycli.
|
|
745
|
+
"\n" + capycli.get_app_signature() +
|
|
737
746
|
" - Create new components and releases on SW360\n")
|
|
738
747
|
|
|
739
748
|
if args.help:
|
|
@@ -202,7 +202,7 @@ class DiffBom(capycli.common.script_base.ScriptBase):
|
|
|
202
202
|
LOG = capycli.get_logger(__name__)
|
|
203
203
|
|
|
204
204
|
print_text(
|
|
205
|
-
"\n" + capycli.
|
|
205
|
+
"\n" + capycli.get_app_signature() +
|
|
206
206
|
" - Compare two SBOM files.\n")
|
|
207
207
|
|
|
208
208
|
if args.help:
|
|
@@ -158,7 +158,7 @@ class BomDownloadSources(capycli.common.script_base.ScriptBase):
|
|
|
158
158
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
159
159
|
|
|
160
160
|
print_text(
|
|
161
|
-
"\n" + capycli.
|
|
161
|
+
"\n" + capycli.get_app_signature() +
|
|
162
162
|
" - Download source files from the URL specified in the SBOM\n")
|
|
163
163
|
|
|
164
164
|
if args.help:
|
|
@@ -271,7 +271,7 @@ class FilterBom(capycli.common.script_base.ScriptBase):
|
|
|
271
271
|
global LOG
|
|
272
272
|
LOG = capycli.get_logger(__name__)
|
|
273
273
|
|
|
274
|
-
print_text("\n" + capycli.
|
|
274
|
+
print_text("\n" + capycli.get_app_signature() + " - Apply a filter file to a SBOM\n")
|
|
275
275
|
|
|
276
276
|
if args.help:
|
|
277
277
|
print("Usage: CaPyCli bom filter [-h] [-v] -i INPUTFILE -o OUTPUTFILE -filterfile FILTERFILE")
|
|
@@ -694,7 +694,7 @@ class FindSources(capycli.common.script_base.ScriptBase):
|
|
|
694
694
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
695
695
|
|
|
696
696
|
print_text(
|
|
697
|
-
"\n" + capycli.
|
|
697
|
+
"\n" + capycli.get_app_signature() +
|
|
698
698
|
" - Go through the list of SBOM items and try to determine the source code.\n")
|
|
699
699
|
|
|
700
700
|
if args.help:
|
|
@@ -832,7 +832,7 @@ class MapBom(capycli.common.script_base.ScriptBase):
|
|
|
832
832
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
833
833
|
|
|
834
834
|
print_text(
|
|
835
|
-
"\n" + capycli.
|
|
835
|
+
"\n" + capycli.get_app_signature() +
|
|
836
836
|
" - Map a given SBOM to data on SW360\n")
|
|
837
837
|
|
|
838
838
|
if args.help:
|
|
@@ -122,7 +122,7 @@ class MergeBom(capycli.common.script_base.ScriptBase):
|
|
|
122
122
|
LOG = capycli.get_logger(__name__)
|
|
123
123
|
|
|
124
124
|
print_text(
|
|
125
|
-
"\n" + capycli.
|
|
125
|
+
"\n" + capycli.get_app_signature() +
|
|
126
126
|
" - Merge two SBOM files.\n")
|
|
127
127
|
|
|
128
128
|
if args.help:
|
|
@@ -98,7 +98,7 @@ class ShowBom(capycli.common.script_base.ScriptBase):
|
|
|
98
98
|
global LOG
|
|
99
99
|
LOG = capycli.get_logger(__name__)
|
|
100
100
|
|
|
101
|
-
print_text("\n" + capycli.
|
|
101
|
+
print_text("\n" + capycli.get_app_signature() + " - Print SBOM contents to stdout\n")
|
|
102
102
|
|
|
103
103
|
if args.help:
|
|
104
104
|
print("usage: capycli bom show [-h] -i bomfile")
|
|
@@ -279,7 +279,7 @@ class GetJavascriptDependencies(capycli.common.dependencies_base.DependenciesBas
|
|
|
279
279
|
logging.getLogger("urllib3.connectionpool").setLevel(logging.WARNING)
|
|
280
280
|
|
|
281
281
|
print_text(
|
|
282
|
-
"\n" + capycli.
|
|
282
|
+
"\n" + capycli.get_app_signature() +
|
|
283
283
|
" - Determine Javascript components/dependencies\n")
|
|
284
284
|
|
|
285
285
|
if args.help:
|
|
@@ -310,7 +310,7 @@ class GetJavaMavenTreeDependencies(capycli.common.dependencies_base.Dependencies
|
|
|
310
310
|
LOG = capycli.get_logger(__name__)
|
|
311
311
|
|
|
312
312
|
print_text(
|
|
313
|
-
"\n" + capycli.
|
|
313
|
+
"\n" + capycli.get_app_signature() +
|
|
314
314
|
" - Determine Java components/dependencies\n")
|
|
315
315
|
|
|
316
316
|
if args.help:
|
|
@@ -117,7 +117,7 @@ class GetJavaMavenPomDependencies(capycli.common.script_base.ScriptBase):
|
|
|
117
117
|
LOG = capycli.get_logger(__name__)
|
|
118
118
|
|
|
119
119
|
print_text(
|
|
120
|
-
"\n" + capycli.
|
|
120
|
+
"\n" + capycli.get_app_signature() +
|
|
121
121
|
" - Determine Java components/dependencies\n")
|
|
122
122
|
|
|
123
123
|
if args.help:
|