From efbe4ca4df53611807f4931968b00f630262fb55 Mon Sep 17 00:00:00 2001 From: "Philipp Heil (zkdev)" Date: Thu, 9 Oct 2025 11:46:10 +0200 Subject: [PATCH 01/29] wip: Add dummy test structure Signed-off-by: Philipp Heil (zkdev) --- test/test_odg_extension_test_results.py | 81 +++++++++++++++++++++++++ test_results.py | 1 + 2 files changed, 82 insertions(+) create mode 100644 test/test_odg_extension_test_results.py create mode 100644 test_results.py diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py new file mode 100644 index 00000000..de8f76de --- /dev/null +++ b/test/test_odg_extension_test_results.py @@ -0,0 +1,81 @@ +import pytest + +import ocm + +import test_results + + +@pytest.fixture +def component_descriptor() -> ocm.ComponentDescriptor: + raw = { + 'component': { + 'componentReferences': [], + 'creationTime': '2025-10-07T09:15:29Z', + 'labels': [], + 'name': 'this/is/my/component', + 'provider': 'Any', + 'repositoryContexts': [ + { + 'baseUrl': 'foo', + 'subPath': None, + 'type': 'ociRegistry' + } + ], + 'resources': [ + { + 'access': { + 'localReference': 'foo', + 'mediaType': 'application/data', 'referenceName': None, + 'type': 'localBlob/v1' + }, + 'labels': [ + { + 'name': 'gardener.cloud/purposes', + 'signing': False, + 'value': ['test'], + 'version': None + } + ], + 'name': 'test-results', + 'relation': 'local', + 'type': 'application/gzip', + 'version': '1.2710.0' + }, + { + 'access': { + 'imageReference': 'foo', + 'type': 'ociRegistry' + }, + 'name': 'job-image', + 'version': '1.2710.0', + 'type': 'ociImage', + }, + ], + 'sources': [], + 'version': '1.2710.0' + }, + 'meta': { + 'schemaVersion': 'v2', + } +} + + return ocm.ComponentDescriptor.from_dict(raw) + +def test_artefact_test_results( + component_descriptor: ocm.ComponentDescriptor, +): + import pprint + pprint.pprint(component_descriptor) + assert True + + # artefacts_requiring_tests = test_results.foo() + # artefacts_containing_tests = bar() + + # for artefact in artefacts_requiring_tests: + # if has_tests_for( + # artefact=artefact, + # test_artefacts=artefacts_containing_tests, + # ): + # print('no finding') + # else: + # print('finding') \ No newline at end of file diff --git a/test_results.py b/test_results.py new file mode 100644 index 00000000..4287ca86 --- /dev/null +++ b/test_results.py @@ -0,0 +1 @@ +# \ No newline at end of file From 0647df3d7b76ec653fb7124db95bb03a9c73bf18 Mon Sep 17 00:00:00 2001 From: I557814 Date: Mon, 1 Dec 2025 15:00:53 +0100 Subject: [PATCH 02/29] implement missing-test-result extension Co-authored-by: Heil, Philipp --- odg/findings.py | 15 +++ odg/labels.py | 26 ++++ odg/model.py | 18 +++ odg/profiles.yaml | 1 + test/test_odg_extension_test_results.py | 165 ++++++++++++++++++++---- test_results.py | 85 +++++++++++- 6 files changed, 286 insertions(+), 24 deletions(-) diff --git a/odg/findings.py b/odg/findings.py index a3d70a96..3688a59b 100644 --- a/odg/findings.py +++ b/odg/findings.py @@ -128,6 +128,15 @@ class SASTFindingSelector: sub_types: list[str] +@dataclasses.dataclass +class TestResultFindingSelector: + ''' + :param list[str] sub_types: + List of regexes to determine matching missing linter findings. + ''' + status: list[str] + + @dataclasses.dataclass class VulnerabilityFindingSelector: ''' @@ -187,6 +196,7 @@ class FindingCategorisation: | SASTFindingSelector | VulnerabilityFindingSelector | OsIdFindingSelector + | TestResultFindingSelector | None ) @@ -963,3 +973,8 @@ def categorise_finding( for status in selector.status: if re.fullmatch(status, finding_property, re.IGNORECASE): return categorisation + + elif isinstance(selector, TestResultFindingSelector): + for status in selector.status: + if re.fullmatch(status, finding_property, re.IGNORECASE): + return categorisation diff --git a/odg/labels.py b/odg/labels.py index a011a9a4..b178580f 100644 --- a/odg/labels.py +++ b/odg/labels.py @@ -40,6 +40,19 @@ class ScanningHint(LabelValue): comment: str | None +@dataclasses.dataclass(frozen=True) +class TestPolicy(Label): + name = 'gardener.cloud/test-policy' + value: tuple[str, ...] + + +@dataclasses.dataclass(frozen=True) +class TestHint(LabelValue): # do I need this? + policy: TestPolicy + path_config: PathRegexes | None + comment: str | None + + @dataclasses.dataclass(frozen=True) class BinaryIdScanLabel(Label): name = 'cloud.gardener.cnudie/dso/scanning-hints/binary_id/v1' @@ -52,12 +65,25 @@ class SourceScanLabel(Label): value: ScanningHint +@dataclasses.dataclass(frozen=True) +class TestResultLabel(Label): + # where do I get this from? + name = 'cloud.gardener/testresults' + value: TestHint # do I need this? + + @dataclasses.dataclass(frozen=True) class PurposeLabel(Label): name = 'gardener.cloud/purposes' value: tuple[str, ...] +@dataclasses.dataclass(frozen=True) +class TestScope(Label): + name = 'gardener.cloud/test-scope' + value: bool + + @dataclasses.dataclass(frozen=True) class PackageVersionHint: name: str diff --git a/odg/model.py b/odg/model.py index f403af43..43f58341 100644 --- a/odg/model.py +++ b/odg/model.py @@ -40,6 +40,7 @@ class Datatype(enum.StrEnum): OSID_FINDING = 'finding/osid' SAST_FINDING = 'finding/sast' VULNERABILITY_FINDING = 'finding/vulnerability' + TEST_RESULT = 'finding/test' # informational datatypes CRYPTO_ASSET = 'crypto_asset' @@ -59,6 +60,7 @@ def datasource(self) -> 'Datasource': Datatype.OSID_FINDING: Datasource.OSID, Datatype.SAST_FINDING: Datasource.SAST, Datatype.VULNERABILITY_FINDING: Datasource.BDBA, + Datatype.TEST_RESULT: Datasource.TEST_RESULT }[self] @@ -76,6 +78,7 @@ class Datasource(enum.StrEnum): OSID = 'osid' RESPONSIBLES = 'responsibles' SAST = 'sast' + TEST_RESULT = 'test-result' def datatypes(self) -> tuple[Datatype, ...]: return { @@ -116,6 +119,7 @@ def datatypes(self) -> tuple[Datatype, ...]: Datasource.SAST: ( Datatype.SAST_FINDING, ), + Datasource.TEST_RESULT: (Datatype.TEST_RESULT) }.get(self, tuple()) @@ -174,6 +178,10 @@ class SastStatus(enum.StrEnum): NO_LINTER = 'no-linter' +class TestStatus(enum.StrEnum): + NO_TEST = 'no-test' + + class SastSubType(enum.StrEnum): LOCAL_LINTING = 'local-linting' CENTRAL_LINTING = 'central-linting' @@ -434,6 +442,15 @@ def key(self) -> str: return _as_key(self.package_name, self.package_version, self.license.name) +@dataclasses.dataclass +class TestResultMissingFinding(Finding): + test_status: TestStatus + + @property + def key(self) -> str: + return _as_key(self.test_status) + + @dataclasses.dataclass class VulnerabilityFinding(Finding, BDBAMixin): cve: str @@ -1363,6 +1380,7 @@ def key(self) -> str: | OsIdFinding | SastFinding | VulnerabilityFinding + | TestResultMissingFinding ) InformationalModels = ( StructureInfo diff --git a/odg/profiles.yaml b/odg/profiles.yaml index 3aa8af98..f1631196 100644 --- a/odg/profiles.yaml +++ b/odg/profiles.yaml @@ -8,5 +8,6 @@ - finding/crypto - finding/osid - finding/ghas + - finding/test-result special_component_ids: - 03e237b4-434e-4e1c-b786-5ceb6cc76c1c diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index de8f76de..6888a8ac 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -1,7 +1,10 @@ +import os import pytest - +import dacite +import enum import ocm - +import odg.model +import odg.findings import test_results @@ -25,18 +28,55 @@ def component_descriptor() -> ocm.ComponentDescriptor: { 'access': { 'localReference': 'foo', - 'mediaType': 'application/data', 'referenceName': None, + 'mediaType': 'application/data', + 'referenceName': None, 'type': 'localBlob/v1' }, 'labels': [ + { + 'name': 'gardener.cloud/test-policy', + 'value': False + }, { 'name': 'gardener.cloud/purposes', 'signing': False, 'value': ['test'], 'version': None + }, + { + 'name': 'gardener.cloud/test-scope', + 'value': ['job-image-1', 'job-image-2', 'job-image-4'] } ], - 'name': 'test-results', + 'name': 'job-image-test-1', + 'relation': 'local', + 'type': 'application/gzip', + 'version': '1.2710.0' + }, + { + 'access': { + 'localReference': 'bar', + 'mediaType': 'application/data', + 'referenceName': None, + 'type': 'localBlob/v1' + }, + 'labels': [ + { + 'name': 'gardener.cloud/test-policy', + 'value': False + }, + { + 'name': 'gardener.cloud/purposes', + 'signing': False, + 'value': ['test'], + 'version': None + }, + { + 'name': 'gardener.cloud/test-scope', + 'value': ['job-image-2'] + } + ], + 'name': 'job-image-test-2', 'relation': 'local', 'type': 'application/gzip', 'version': '1.2710.0' @@ -46,9 +86,48 @@ def component_descriptor() -> ocm.ComponentDescriptor: 'imageReference': 'foo', 'type': 'ociRegistry' }, - 'name': 'job-image', + 'labels': [ + { + 'name': 'gardener.cloud/test-policy', + 'value': True + } + ], + 'name': 'job-image-1', + 'relation': 'local', 'version': '1.2710.0', - 'type': 'ociImage', + 'type': 'ociImage' + }, + { + 'access': { + 'imageReference': 'bar', + 'type': 'ociRegistry' + }, + 'labels': [ + { + 'name': 'gardener.cloud/test-policy', + 'value': True + } + ], + 'name': 'job-image-2', + 'relation': 'local', + 'version': '1.2710.0', + 'type': 'ociImage' + }, + { + 'access': { + 'imageReference': 'bar', + 'type': 'ociRegistry' + }, + 'labels': [ + { + 'name': 'gardener.cloud/test-policy', + 'value': False + } + ], + 'name': 'job-image-3', + 'relation': 'external', + 'version': '1.2710.0', + 'type': 'helmChart/v1' }, ], 'sources': [], @@ -58,24 +137,64 @@ def component_descriptor() -> ocm.ComponentDescriptor: 'schemaVersion': 'v2', } } + return dacite.from_dict( + data=raw, + data_class=ocm.ComponentDescriptor, + config=dacite.Config( + cast=[enum.Enum] + ) + ) - return ocm.ComponentDescriptor.from_dict(raw) -def test_artefact_test_results( +def test_artefact_test_results_filter( component_descriptor: ocm.ComponentDescriptor, ): - import pprint - pprint.pprint(component_descriptor) - assert True - - # artefacts_requiring_tests = test_results.foo() - # artefacts_containing_tests = bar() - - # for artefact in artefacts_requiring_tests: - # if has_tests_for( - # artefact=artefact, - # test_artefacts=artefacts_containing_tests, - # ): - # print('no finding') - # else: - # print('finding') \ No newline at end of file + + resources_req_tests = test_results.find_artefact_with_truthy_test_policy_label( + component=component_descriptor) + + test_resources = test_results.find_test_artefacts( + component=component_descriptor) + + assert len(resources_req_tests) == len(test_resources) + + # mismatching test scope + test_scope_values = component_descriptor.component.resources[0].labels[2].value + + test_scope_values.remove("job-image-1") + + test_resources = test_results.find_test_artefacts( + component=component_descriptor) + + test_coverage = test_results.iter_artefacts_for_test_coverage( + component=component_descriptor, artefact=odg.model.ComponentArtefactId, categorisation=odg.findings.FindingCategorisation) + + assert len(test_coverage) == 1 + +# no test scope + + labels = component_descriptor.component.resources[0].labels + labels = [label for label in labels if not label.name == + 'gardener.cloud/test-scope'] + + component_descriptor.component.resources[0].labels = labels + + test_resources = test_results.find_test_artefacts( + component=component_descriptor) + + test_coverage = test_results.iter_artefacts_for_test_coverage( + component=component_descriptor, artefact=odg.model.ComponentArtefactId, categorisation=odg.findings.FindingCategorisation) + + assert test_coverage == None + +# let's remove the test results + component_descriptor.component.resources = [ + resource + for resource in component_descriptor.component.resources + if not resource.name == 'job-image-test-2' and not resource.name == 'job-image-test-1' + ] + + test_resources = test_results.find_test_artefacts( + component=component_descriptor) + + assert len(resources_req_tests) != len(test_resources) diff --git a/test_results.py b/test_results.py index 4287ca86..ac234451 100644 --- a/test_results.py +++ b/test_results.py @@ -1 +1,84 @@ -# \ No newline at end of file +import datetime +import ocm +import odg.findings +import odg.model + + +def find_artefact_with_truthy_test_policy_label(component: ocm.ComponentDescriptor) -> list[ocm.Artifact] | None: + artefacts = [] + for resource in component.component.resources: + if resource.relation == 'local': # !!WE NEED TO DISCUSS THIS IN THE TEAM! + label = resource.find_label(name='gardener.cloud/test-policy') + if label and label.value: + artefacts.append(resource) + + else: + if resource.type == ocm.ArtefactType.OCI_IMAGE: + artefacts.append(resource) + else: + continue + return artefacts + + +def find_test_artefacts(component: ocm.ComponentDescriptor) -> list[ocm.Artifact]: + artefacts = [] + for resource in component.component.resources: + for label in resource.labels: + if label.name == 'gardener.cloud/purposes' and 'test' in label.value: + artefacts.append(resource) + return artefacts + + +def create_missing_test_finding( + artefact: odg.model.ComponentArtefactId, + categorisation: odg.findings.FindingCategorisation, + creation_timestamp: datetime.datetime=datetime.datetime.now( + tz=datetime.timezone.utc) +) -> odg.model.ArtefactMetadata | None: + # this function is to be discussed and is still being worked on :-) + print('Test Result Missing for', artefact, '!!!!') + return odg.model.ArtefactMetadata( + artefact=artefact, + meta=odg.model.Metadata( + datasource=odg.model.Datasource.TEST_RESULT, + type=odg.model.Datatype.TEST_RESULT, + creation_date=creation_timestamp, + last_update=creation_timestamp, + ), + data=odg.model.TestResultMissingFinding( + test_status=odg.model.TestStatus.NO_TEST, + severity=categorisation.id), + discovery_date=creation_timestamp.date(), + ) + + +def iter_artefacts_for_test_coverage(component: ocm.ComponentDescriptor, + artefact: odg.model.ComponentArtefactId, + categorisation: odg.findings.FindingCategorisation, + creation_timestamp: datetime.datetime=datetime.datetime.now( + tz=datetime.timezone.utc) + ): + artefacts_req_tests = find_artefact_with_truthy_test_policy_label( + component) + + test_artefacts = find_test_artefacts(component) + + findings = [] + artefacts_with_tests = [] + + for ta in test_artefacts: + if not ta.find_label(name='gardener.cloud/test-scope'): + # if label is absent, assume tests are scoping *all* resources within this component + return + for label in ta.labels: + if label.name == 'gardener.cloud/test-scope': + artefacts_with_tests.append(label.value) + + for artefact_requiring_tests in artefacts_req_tests: + if artefact_requiring_tests.name not in artefacts_with_tests: + findings.append( + #create_missing_test_finding() + #the below string is a placeholder to make tests work, as create_missing_test_finding() is not fully implemented yet + 'Oh no!' + ) + return findings From c927b6701eefa43d948f2919caa43719a23b19bc Mon Sep 17 00:00:00 2001 From: I557814 Date: Thu, 4 Dec 2025 09:39:20 +0100 Subject: [PATCH 03/29] implement create_missing_test_finding function --- charts/extensions/values.yaml | 7 ++++ odg/extensions_cfg.py | 8 +++++ odg/findings.py | 2 ++ odg/findings_cfg.yaml | 18 +++++++++++ odg/model.py | 10 +++--- test/test_odg_extension_test_results.py | 43 +++++++++++++++++++++++-- test_results.py | 25 ++++++++------ 7 files changed, 96 insertions(+), 17 deletions(-) diff --git a/charts/extensions/values.yaml b/charts/extensions/values.yaml index 21448395..95798bc2 100644 --- a/charts/extensions/values.yaml +++ b/charts/extensions/values.yaml @@ -88,3 +88,10 @@ sast: image: repository: null tag: null +test-results: + deployment: + annotations: [] + enabled: false + image: + repository: null + tag: null diff --git a/odg/extensions_cfg.py b/odg/extensions_cfg.py index 0465ea16..0b79f0e1 100644 --- a/odg/extensions_cfg.py +++ b/odg/extensions_cfg.py @@ -38,6 +38,7 @@ class Services(enum.StrEnum): OSID = 'osid' RESPONSIBLES = 'responsibles' SAST = 'sast' + TEST_RESULT_FINDING = 'testResult' ODG_OPERATOR = 'odg-operator' @@ -912,6 +913,13 @@ def is_supported( return True +@dataclasses.dataclass(kw_only=True) +class TestResult(BacklogItemMixins): + def is_supported(self, artefact_kind, access_type): + # do something + return super().is_supported(artefact_kind, access_type) + + @dataclasses.dataclass class ExtensionsConfiguration: access_manager: AccessManagerConfig | None diff --git a/odg/findings.py b/odg/findings.py index 3688a59b..5d8bf75e 100644 --- a/odg/findings.py +++ b/odg/findings.py @@ -634,6 +634,8 @@ def _validate(self): self._validate_malware() case odg.model.Datatype.SAST_FINDING: self._validate_sast() + case odg.model.Datatype.TEST_RESULT_FINDING: + self._validate_test_result() case odg.model.Datatype.VULNERABILITY_FINDING: self._validate_vulnerabilty() case odg.model.Datatype.INVENTORY_FINDING: diff --git a/odg/findings_cfg.yaml b/odg/findings_cfg.yaml index 726d9fa3..3bc314f6 100644 --- a/odg/findings_cfg.yaml +++ b/odg/findings_cfg.yaml @@ -46,6 +46,24 @@ malware_names: - .* +- type: finding/testresults + issues: + enable_assignees: False # should be true? + categorisations: + - id: NONE + display_name: NONE + value: 0 + allowed_processing_time: ~ + #rescoring: manual # do we need this? + - id: BLOCKER + display_name: BLOCKER + value: 16 + allowed_processing_time: 0 + #rescoring: manual # do we need this? + selector: + sub_types: + - .* + - type: finding/sast issues: enable_issues: False diff --git a/odg/model.py b/odg/model.py index 43f58341..07dd3a67 100644 --- a/odg/model.py +++ b/odg/model.py @@ -40,7 +40,7 @@ class Datatype(enum.StrEnum): OSID_FINDING = 'finding/osid' SAST_FINDING = 'finding/sast' VULNERABILITY_FINDING = 'finding/vulnerability' - TEST_RESULT = 'finding/test' + TEST_RESULT_FINDING = 'finding/testresults' # informational datatypes CRYPTO_ASSET = 'crypto_asset' @@ -60,7 +60,7 @@ def datasource(self) -> 'Datasource': Datatype.OSID_FINDING: Datasource.OSID, Datatype.SAST_FINDING: Datasource.SAST, Datatype.VULNERABILITY_FINDING: Datasource.BDBA, - Datatype.TEST_RESULT: Datasource.TEST_RESULT + Datatype.TEST_RESULT_FINDING: Datasource.TEST_RESULT_FINDING }[self] @@ -78,7 +78,7 @@ class Datasource(enum.StrEnum): OSID = 'osid' RESPONSIBLES = 'responsibles' SAST = 'sast' - TEST_RESULT = 'test-result' + TEST_RESULT_FINDING = 'test-result' def datatypes(self) -> tuple[Datatype, ...]: return { @@ -119,7 +119,9 @@ def datatypes(self) -> tuple[Datatype, ...]: Datasource.SAST: ( Datatype.SAST_FINDING, ), - Datasource.TEST_RESULT: (Datatype.TEST_RESULT) + Datasource.TEST_RESULT_FINDING: ( + Datatype.TEST_RESULT_FINDING + ) }.get(self, tuple()) diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index 6888a8ac..83b02240 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -1,4 +1,3 @@ -import os import pytest import dacite import enum @@ -146,8 +145,40 @@ def component_descriptor() -> ocm.ComponentDescriptor: ) +@pytest.fixture +def missing_test_result_finding_cfg() -> odg.findings.Finding: + selector = odg.findings.TestResultFindingSelector(status=['.*']) + + categorisations = [ + odg.findings.FindingCategorisation( + id='NONE', + display_name='test exists and has no findings', + value=0, + allowed_processing_time=0, + rescoring=None, + selector=None, + ), + odg.findings.FindingCategorisation( + id='BLOCKER', + display_name='Test result is missing', + value=16, + allowed_processing_time=0, + rescoring=None, + selector=selector, + ), + ] + + return odg.findings.Finding( + type=odg.model.Datatype.TEST_RESULT_FINDING, + categorisations=categorisations, + filter=None, + rescoring_ruleset=None + ) + + def test_artefact_test_results_filter( component_descriptor: ocm.ComponentDescriptor, + missing_test_result_finding_cfg: odg.findings.Finding ): resources_req_tests = test_results.find_artefact_with_truthy_test_policy_label( @@ -167,7 +198,10 @@ def test_artefact_test_results_filter( component=component_descriptor) test_coverage = test_results.iter_artefacts_for_test_coverage( - component=component_descriptor, artefact=odg.model.ComponentArtefactId, categorisation=odg.findings.FindingCategorisation) + test_result_finding_config=missing_test_result_finding_cfg, + component=component_descriptor, + artefact=odg.model.ComponentArtefactId, + sub_type=odg.model.TestStatus.NO_TEST) assert len(test_coverage) == 1 @@ -183,7 +217,10 @@ def test_artefact_test_results_filter( component=component_descriptor) test_coverage = test_results.iter_artefacts_for_test_coverage( - component=component_descriptor, artefact=odg.model.ComponentArtefactId, categorisation=odg.findings.FindingCategorisation) + component=component_descriptor, + artefact=odg.model.ComponentArtefactId, + test_result_finding_config=missing_test_result_finding_cfg, + sub_type=odg.model.TestStatus.NO_TEST) assert test_coverage == None diff --git a/test_results.py b/test_results.py index ac234451..16e8e1fc 100644 --- a/test_results.py +++ b/test_results.py @@ -31,17 +31,16 @@ def find_test_artefacts(component: ocm.ComponentDescriptor) -> list[ocm.Artifact def create_missing_test_finding( artefact: odg.model.ComponentArtefactId, + sub_type: odg.model.TestStatus, categorisation: odg.findings.FindingCategorisation, creation_timestamp: datetime.datetime=datetime.datetime.now( tz=datetime.timezone.utc) ) -> odg.model.ArtefactMetadata | None: - # this function is to be discussed and is still being worked on :-) - print('Test Result Missing for', artefact, '!!!!') return odg.model.ArtefactMetadata( artefact=artefact, meta=odg.model.Metadata( - datasource=odg.model.Datasource.TEST_RESULT, - type=odg.model.Datatype.TEST_RESULT, + datasource=odg.model.Datasource.TEST_RESULT_FINDING, + type=odg.model.Datatype.TEST_RESULT_FINDING, creation_date=creation_timestamp, last_update=creation_timestamp, ), @@ -53,11 +52,18 @@ def create_missing_test_finding( def iter_artefacts_for_test_coverage(component: ocm.ComponentDescriptor, + test_result_finding_config: odg.findings.Finding, + sub_type: odg.model.TestStatus, artefact: odg.model.ComponentArtefactId, - categorisation: odg.findings.FindingCategorisation, - creation_timestamp: datetime.datetime=datetime.datetime.now( - tz=datetime.timezone.utc) + creation_timestamp: datetime.datetime=datetime.datetime.now( + datetime.timezone.utc) ): + + categorisation = odg.findings.categorise_finding( + finding_cfg=test_result_finding_config, + finding_property=sub_type + ) + artefacts_req_tests = find_artefact_with_truthy_test_policy_label( component) @@ -77,8 +83,7 @@ def iter_artefacts_for_test_coverage(component: ocm.ComponentDescriptor, for artefact_requiring_tests in artefacts_req_tests: if artefact_requiring_tests.name not in artefacts_with_tests: findings.append( - #create_missing_test_finding() - #the below string is a placeholder to make tests work, as create_missing_test_finding() is not fully implemented yet - 'Oh no!' + create_missing_test_finding( + artefact, sub_type, categorisation, creation_timestamp) ) return findings From 79cb05fec157554b8ce639c617a95a7881a63b2f Mon Sep 17 00:00:00 2001 From: I557814 Date: Thu, 4 Dec 2025 09:48:49 +0100 Subject: [PATCH 04/29] add create_backlog_item_for_extension function --- artefact_enumerator.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/artefact_enumerator.py b/artefact_enumerator.py index 067a8d71..13012ca5 100644 --- a/artefact_enumerator.py +++ b/artefact_enumerator.py @@ -360,6 +360,23 @@ def _process_compliance_snapshot_of_artefact( if uncommitted_backlog_item: uncommitted_backlog_items.append(uncommitted_backlog_item) + if ( + extensions_cfg.test_results + and extensions_cfg.test_results.enabled + and extensions_cfg.test_results.is_supported(artefact_kind=artefact.artefact_kind) + ): + compliance_snapshot, uncommitted_backlog_item = _create_backlog_item_for_extension( + finding_cfgs=finding_cfgs, + finding_types=(odg.model.Datatype.TEST_RESULT_FINDING,), + artefact=artefact, + compliance_snapshot=compliance_snapshot, + service=odg.extensions_cfg.Services.TEST_RESULT_FINDING, + interval_seconds=extensions_cfg.osid.interval, + now=now, + ) + if uncommitted_backlog_item: + uncommitted_backlog_items.append(uncommitted_backlog_item) + if ( extensions_cfg.osid and extensions_cfg.osid.enabled From f7f781767bb187bf4db101b8d66b87f4d68b0364 Mon Sep 17 00:00:00 2001 From: I557814 Date: Thu, 4 Dec 2025 11:03:10 +0100 Subject: [PATCH 05/29] add validate_test_result_finding function --- odg/findings.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/odg/findings.py b/odg/findings.py index 5d8bf75e..8c561d73 100644 --- a/odg/findings.py +++ b/odg/findings.py @@ -712,6 +712,18 @@ def _validate_malware(self): e.add_note('\n'.join(violations)) raise e + def _validate_test_result(self): + violations = self._validate_categorisations( + expected_selector=TestResultFindingSelector, + ) + + if not violations: + return + + e = ModelValidationError('test result finding violations found:') + e.add_note('\n'.join(violations)) + raise e + def _validate_sast(self): violations = self._validate_categorisations( expected_selector=SASTFindingSelector, From 25c31c3d8c7e7b69c47433e980026db1f7520268 Mon Sep 17 00:00:00 2001 From: Franziska Schallhorn Date: Thu, 11 Dec 2025 15:26:42 +0100 Subject: [PATCH 06/29] Update test_results.py Co-authored-by: Philipp Heil Signed-off-by: Franziska Schallhorn --- test_results.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test_results.py b/test_results.py index 16e8e1fc..dda067ba 100644 --- a/test_results.py +++ b/test_results.py @@ -51,13 +51,13 @@ def create_missing_test_finding( ) -def iter_artefacts_for_test_coverage(component: ocm.ComponentDescriptor, +def iter_artefacts_for_test_coverage( + component: ocm.ComponentDescriptor, test_result_finding_config: odg.findings.Finding, sub_type: odg.model.TestStatus, artefact: odg.model.ComponentArtefactId, - creation_timestamp: datetime.datetime=datetime.datetime.now( - datetime.timezone.utc) - ): + creation_timestamp: datetime.datetime=datetime.datetime.now(datetime.timezone.utc) +) -> : categorisation = odg.findings.categorise_finding( finding_cfg=test_result_finding_config, From c064f34d406c6bdb843ca13b215de6ec65bc1a43 Mon Sep 17 00:00:00 2001 From: I557814 Date: Thu, 11 Dec 2025 15:32:47 +0100 Subject: [PATCH 07/29] implement small improvements as per PR --- test/test_odg_extension_test_results.py | 2 +- test_results.py | 26 ++++++++++--------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index 83b02240..5d1de3d9 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -181,7 +181,7 @@ def test_artefact_test_results_filter( missing_test_result_finding_cfg: odg.findings.Finding ): - resources_req_tests = test_results.find_artefact_with_truthy_test_policy_label( + resources_req_tests = test_results.iter_artefacts_requiring_tests( component=component_descriptor) test_resources = test_results.find_test_artefacts( diff --git a/test_results.py b/test_results.py index dda067ba..80464f84 100644 --- a/test_results.py +++ b/test_results.py @@ -4,37 +4,32 @@ import odg.model -def find_artefact_with_truthy_test_policy_label(component: ocm.ComponentDescriptor) -> list[ocm.Artifact] | None: - artefacts = [] +def iter_artefacts_requiring_tests(component: ocm.ComponentDescriptor) -> list[ocm.Artifact] | None: for resource in component.component.resources: if resource.relation == 'local': # !!WE NEED TO DISCUSS THIS IN THE TEAM! label = resource.find_label(name='gardener.cloud/test-policy') if label and label.value: - artefacts.append(resource) - + yield resource else: if resource.type == ocm.ArtefactType.OCI_IMAGE: - artefacts.append(resource) + yield resource else: continue - return artefacts def find_test_artefacts(component: ocm.ComponentDescriptor) -> list[ocm.Artifact]: - artefacts = [] for resource in component.component.resources: for label in resource.labels: if label.name == 'gardener.cloud/purposes' and 'test' in label.value: - artefacts.append(resource) - return artefacts + yield resource def create_missing_test_finding( - artefact: odg.model.ComponentArtefactId, - sub_type: odg.model.TestStatus, - categorisation: odg.findings.FindingCategorisation, - creation_timestamp: datetime.datetime=datetime.datetime.now( - tz=datetime.timezone.utc) + artefact: odg.model.ComponentArtefactId, + sub_type: odg.model.TestStatus, + categorisation: odg.findings.FindingCategorisation, + creation_timestamp: datetime.datetime=datetime.datetime.now( + tz=datetime.timezone.utc) ) -> odg.model.ArtefactMetadata | None: return odg.model.ArtefactMetadata( artefact=artefact, @@ -64,8 +59,7 @@ def iter_artefacts_for_test_coverage( finding_property=sub_type ) - artefacts_req_tests = find_artefact_with_truthy_test_policy_label( - component) + artefacts_req_tests = iter_artefacts_requiring_tests(component) test_artefacts = find_test_artefacts(component) From 83b4a6b0176bbaced4dcf6f0ff772b307a9512f3 Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Thu, 4 Dec 2025 15:27:34 +0100 Subject: [PATCH 08/29] Exit with error in BDBA scan if uploaded/scanned file seems to be empty In the past, errors in conjunction with the BDBA scan were identifiable in case the uploaded or scanned file seems to be empty (0 bytes identified). To prevent follow-up issues in that case, early-exit with an error instead if 0 bytes were identified. Signed-off-by: Jonas Brand (8R0WNI3) --- bdba/model.py | 2 ++ bdba_utils/scan.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/bdba/model.py b/bdba/model.py index 8e2cc71a..f44364f6 100644 --- a/bdba/model.py +++ b/bdba/model.py @@ -246,6 +246,8 @@ class AnalysisResult(Result): fail_reason: str | None components: list[Component] = dataclasses.field(default_factory=list) custom_data: dict[str, str] = dataclasses.field(default_factory=dict) + binary_bytes: int | None + scanned_bytes: int | None @dataclasses.dataclass diff --git a/bdba_utils/scan.py b/bdba_utils/scan.py index 1db49ea5..d1abe049 100644 --- a/bdba_utils/scan.py +++ b/bdba_utils/scan.py @@ -211,6 +211,13 @@ def process( logger.error(f'scan of {scanned_element=} failed; {scan_result=}') return + if not (scan_result.binary_bytes and scan_result.scanned_bytes): + logger.error( + f'scan of {scanned_element=} failed: uploaded or scanned file is empty ' + f'({scan_result.binary_bytes=}, {scan_result.scanned_bytes=})' + ) + return + logger.info( f'scan of {scan_result.display_name} succeeded, going to post-process results' ) From b49406e9a8e55d847076f6ddd143842fc1994233 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 11:19:02 +0000 Subject: [PATCH 09/29] Upgrade github.com/gardener/cc-utils from 1.2725.0 to 1.2728.0 --- .ocm/base-component.yaml | 2 +- ...dener_cc-utils_1.2726.0.release-notes.yaml | 24 ++++++++ ...dener_cc-utils_1.2727.0.release-notes.yaml | 24 ++++++++ ...dener_cc-utils_1.2728.0.release-notes.yaml | 55 +++++++++++++++++++ requirements.utils.txt | 2 +- 5 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml create mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml create mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml diff --git a/.ocm/base-component.yaml b/.ocm/base-component.yaml index abdf2e1f..78700726 100644 --- a/.ocm/base-component.yaml +++ b/.ocm/base-component.yaml @@ -1,7 +1,7 @@ componentReferences: - componentName: github.com/gardener/cc-utils name: cc-utils - version: 1.2725.0 + version: 1.2728.0 - componentName: ocm.software/ocm-gear/bdba-client name: bdba version: 0.7.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml new file mode 100644 index 00000000..c3a98800 --- /dev/null +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml @@ -0,0 +1,24 @@ +ocm: + component_name: github.com/gardener/cc-utils + component_version: 1.2726.0 +release_notes: +- audience: operator + author: + hostname: github.com + type: githubUser + username: LucaBernstein + category: other + contents: Release notes within one category are now grouped and sorted by audience. + mimetype: text/markdown + reference: '[#1455](https://github.com/gardener/cc-utils/pull/1455)' + type: standard +- audience: operator + author: + hostname: github.com + type: githubUser + username: voelzmo + category: other + contents: Add pr-naming-pattern option to workflow `upgrade-dependencies` + mimetype: text/markdown + reference: '[#1456](https://github.com/gardener/cc-utils/pull/1456)' + type: standard diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml new file mode 100644 index 00000000..77359dc9 --- /dev/null +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml @@ -0,0 +1,24 @@ +ocm: + component_name: github.com/gardener/cc-utils + component_version: 1.2727.0 +release_notes: +- audience: developer + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: oci-ocm-workflow now allows passing-in of static authtokens + mimetype: text/markdown + reference: '[#1462](https://github.com/gardener/cc-utils/pull/1462)' + type: standard +- audience: developer + author: + hostname: github.com + type: githubUser + username: 8R0WNI3 + category: other + contents: Dropped the `component-diff` output from equally named GitHub workflow/action + mimetype: text/markdown + reference: '[#1459](https://github.com/gardener/cc-utils/pull/1459)' + type: standard diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml new file mode 100644 index 00000000..b5ac9359 --- /dev/null +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml @@ -0,0 +1,55 @@ +ocm: + component_name: github.com/gardener/cc-utils + component_version: 1.2728.0 +release_notes: +- audience: developer + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: post-build.yaml-workflow now accepts an optional authtoken + mimetype: text/markdown + reference: '[#1471](https://github.com/gardener/cc-utils/pull/1471)' + type: standard +- audience: developer + author: + hostname: github.com + type: githubUser + username: 8R0WNI3 + category: other + contents: The OCI client will now retry requests in case a HTTP `429` error is encountered + mimetype: text/markdown + reference: '[#1476](https://github.com/gardener/cc-utils/pull/1476)' + type: standard +- audience: developer + author: + hostname: github.com + type: githubUser + username: zkdev + category: bugfix + contents: '`gardener-oci` python distribution package no longer implicitly requires + `gardener-cicd-libs` to be installed.' + mimetype: text/markdown + reference: '[#1457](https://github.com/gardener/cc-utils/pull/1457)' + type: standard +- audience: operator + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: oci-ocm-workflow optionally accepts dockerhub-(ro-)auth-token + mimetype: text/markdown + reference: '[#1474](https://github.com/gardener/cc-utils/pull/1474)' + type: standard +- audience: developer + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: update actions/checkout to v6-branch + mimetype: text/markdown + reference: '[#1472](https://github.com/gardener/cc-utils/pull/1472)' + type: standard diff --git a/requirements.utils.txt b/requirements.utils.txt index 1a4069bb..f8a545d2 100644 --- a/requirements.utils.txt +++ b/requirements.utils.txt @@ -2,7 +2,7 @@ aiohttp boto3 cachetools dacite -gardener-cicd-libs==1.2725.0 +gardener-cicd-libs==1.2728.0 github3.py kubernetes requests From e1c346eb976e4128c2d2ba6848ce25bcf9b775b7 Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Fri, 28 Nov 2025 10:36:31 +0100 Subject: [PATCH 10/29] Always re-use discovery date per default if data key matches Instead of hardcoding a list of finding types for which to re-use discovery dates, re-use them by default if the data key (i.e. their identity) matches. This behaviour may be adjusted per finding type (e.g. for vulnerabilities, only re-use if the package and CVE match). Finding types can still be configured via the findings-cfg to not honour existing discovery dates at all, e.g.: ``` - type: finding/ reuse_discovery_date: enabled: true | false max_reuse_time: 30d ``` Signed-off-by: Jonas Brand (8R0WNI3) --- metadata.py | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/metadata.py b/metadata.py index 692911f1..fbea0c48 100644 --- a/metadata.py +++ b/metadata.py @@ -21,16 +21,6 @@ import util -types_with_reusable_discovery_dates = ( - odg.model.Datatype.VULNERABILITY_FINDING, - odg.model.Datatype.LICENSE_FINDING, - odg.model.Datatype.DIKI_FINDING, - odg.model.Datatype.OSID_FINDING, - odg.model.Datatype.CRYPTO_FINDING, - odg.model.Datatype.IP_FINDING, -) - - class ArtefactMetadataQuery(aiohttp.web.View): required_features = (features.FeatureDeliveryDB,) @@ -382,10 +372,8 @@ def find_entry_and_discovery_date( if not found: for existing_entry in existing_entries: if ( - ( - metadata_entry.type not in types_with_reusable_discovery_dates - or discovery_date - ) and metadata_entry.artefact_version not in existing_artefact_versions + discovery_date + and metadata_entry.artefact_version not in existing_artefact_versions ): # there is no need to search any further -> we won't find any existing # entry with the same artefact version and we don't have to find any @@ -510,9 +498,6 @@ def reuse_discovery_date_if_possible( if last_update + reuse_discovery_date.max_reuse_time < datetime.datetime.now(): return None - if new_metadata.type not in types_with_reusable_discovery_dates: - return None - if new_metadata.type == odg.model.Datatype.VULNERABILITY_FINDING: if ( new_metadata.data.get('package_name') == old_metadata.data.get('package_name') @@ -571,11 +556,11 @@ def reuse_discovery_date_if_possible( # found the same finding in existing entry, so we must re-use its discovery date return old_metadata.discovery_date - else: - raise ValueError( - f're-usage of discovery dates is configured for "{new_metadata.type}" but there is no ' - 'special handling implemented to check when to re-use existing dates' - ) + elif new_metadata.data_key == old_metadata.data_key: + # found the same finding in existing entry, so we must re-use its discovery date + return old_metadata.discovery_date + + return None def _fill_default_values( From 46c646066f65993fb013b8b4c8b25cc19722f115 Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Fri, 28 Nov 2025 10:38:07 +0100 Subject: [PATCH 11/29] Drop (now) obsolete code paths Since the data key is used per default now, these code paths (which also (indirectly) implemented a check against the data key) became obsolete now. Signed-off-by: Jonas Brand (8R0WNI3) --- metadata.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/metadata.py b/metadata.py index fbea0c48..c587af46 100644 --- a/metadata.py +++ b/metadata.py @@ -531,16 +531,6 @@ def reuse_discovery_date_if_possible( # resource-/package-version, so we must re-use its discovery date return old_metadata.discovery_date - elif new_metadata.type == odg.model.Datatype.DIKI_FINDING: - if ( - new_metadata.data.get('provider_id') == old_metadata.data.get('provider_id') - and new_metadata.data.get('ruleset_id') == old_metadata.data.get('ruleset_id') - and new_metadata.data.get('rule_id') == old_metadata.data.get('rule_id') - ): - # found the same finding in existing entry, independent of the component-/ - # resource-/ruleset-version, so we must re-use its discovery date - return old_metadata.discovery_date - elif new_metadata.type == odg.model.Datatype.OSID_FINDING: if ( new_metadata.data.get('osid').get('VERSION_ID') @@ -551,11 +541,6 @@ def reuse_discovery_date_if_possible( # found the same version and name in existing entry, so we must re-use its discovery date return old_metadata.discovery_date - elif new_metadata.type == odg.model.Datatype.CRYPTO_FINDING: - if new_metadata.data_key == old_metadata.data_key: - # found the same finding in existing entry, so we must re-use its discovery date - return old_metadata.discovery_date - elif new_metadata.data_key == old_metadata.data_key: # found the same finding in existing entry, so we must re-use its discovery date return old_metadata.discovery_date From a84e730bfafbefa10651cb503ec1536af06b687b Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Fri, 28 Nov 2025 10:47:25 +0100 Subject: [PATCH 12/29] Update documentation for changed discovery date default behaviour Signed-off-by: Jonas Brand (8R0WNI3) --- docs/model.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/model.rst b/docs/model.rst index 3cd7078d..0cc5d4d4 100644 --- a/docs/model.rst +++ b/docs/model.rst @@ -236,10 +236,12 @@ Findings (deviations from rulesets) typically have to be processed within an allowed timeframe. Hence, the date of first discovery is stored to allow for the calculation for latest due-dates. Thereby, the initial `discovery_date` must be retained during subsequent updates. Therefore, the `discovery_date` is -part of the `ArtefactMetadata` model. To re-use the initial `discovery_date` of -a finding, and don't reset it as part of every new scan, it must be defined -when a finding is to be interpreted as equal so that the `discovery_date` must -be re-used. +part of the `ArtefactMetadata` model. By default, the initial `discovery_date` +of a finding is re-used in case the OCM identity (except its version and extra +identity) and the `key` property of the finding match. In case it is desired to +deviate from this defalt behaviour (e.g. in case the `key` contains a package +version which should not be considered for the re-use), a custom check must be +implemented as part of the upload metadata route. Considerations ^^^^^^^^^^^^^^ From f33bce34598252002ab696b97eb64da7ff34542e Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Thu, 11 Dec 2025 08:31:44 +0100 Subject: [PATCH 13/29] Resolve generator object before logging Signed-off-by: Jonas Brand (8R0WNI3) --- artefact_enumerator.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/artefact_enumerator.py b/artefact_enumerator.py index 44e83f33..251568ff 100644 --- a/artefact_enumerator.py +++ b/artefact_enumerator.py @@ -585,7 +585,8 @@ def main(): extensions_cfg = odg.extensions_cfg.ExtensionsConfiguration.from_file(extensions_cfg_path) extensions_cfg: odg.extensions_cfg.ExtensionsConfiguration - logger.info(f'{extensions_cfg.enabled_extensions()=}') + enabled_extensions = list(extensions_cfg.enabled_extensions()) + logger.info(f'{enabled_extensions=}') if not (findings_cfg_path := parsed_arguments.findings_cfg_path): findings_cfg_path = paths.findings_cfg_path() From 1390212ab7d9bcce83287ccfa11abcedd77bd14c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 14:23:30 +0000 Subject: [PATCH 14/29] Upgrade github.com/gardener/cc-utils from 1.2728.0 to 1.2729.0 --- .ocm/base-component.yaml | 2 +- ...m_gardener_cc-utils_1.2729.0.release-notes.yaml | 14 ++++++++++++++ requirements.utils.txt | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml diff --git a/.ocm/base-component.yaml b/.ocm/base-component.yaml index 78700726..0a5a5713 100644 --- a/.ocm/base-component.yaml +++ b/.ocm/base-component.yaml @@ -1,7 +1,7 @@ componentReferences: - componentName: github.com/gardener/cc-utils name: cc-utils - version: 1.2728.0 + version: 1.2729.0 - componentName: ocm.software/ocm-gear/bdba-client name: bdba version: 0.7.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml new file mode 100644 index 00000000..3538a49b --- /dev/null +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml @@ -0,0 +1,14 @@ +ocm: + component_name: github.com/gardener/cc-utils + component_version: 1.2729.0 +release_notes: +- audience: operator + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: CTT now features a CLI + mimetype: text/markdown + reference: '[#1477](https://github.com/gardener/cc-utils/pull/1477)' + type: standard diff --git a/requirements.utils.txt b/requirements.utils.txt index f8a545d2..79e9ae82 100644 --- a/requirements.utils.txt +++ b/requirements.utils.txt @@ -2,7 +2,7 @@ aiohttp boto3 cachetools dacite -gardener-cicd-libs==1.2728.0 +gardener-cicd-libs==1.2729.0 github3.py kubernetes requests From f5c4a3ff4a4fec973d89cbe29138705190831665 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 07:35:02 +0000 Subject: [PATCH 15/29] release 0.1253.0 --- ...dener_cc-utils_1.2726.0.release-notes.yaml | 1 + ...dener_cc-utils_1.2727.0.release-notes.yaml | 1 + ...dener_cc-utils_1.2728.0.release-notes.yaml | 1 + ...dener_cc-utils_1.2729.0.release-notes.yaml | 1 + VERSION | 2 +- extension-definitions.yaml | 84 +++++++++---------- 6 files changed, 47 insertions(+), 43 deletions(-) diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml index c3a98800..bae4730a 100644 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml @@ -1,3 +1,4 @@ +reference_version: 0.1253.0 ocm: component_name: github.com/gardener/cc-utils component_version: 1.2726.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml index 77359dc9..dc9e33d5 100644 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml @@ -1,3 +1,4 @@ +reference_version: 0.1253.0 ocm: component_name: github.com/gardener/cc-utils component_version: 1.2727.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml index b5ac9359..e00a8c32 100644 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml @@ -1,3 +1,4 @@ +reference_version: 0.1253.0 ocm: component_name: github.com/gardener/cc-utils component_version: 1.2728.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml index 3538a49b..6942574e 100644 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml @@ -1,3 +1,4 @@ +reference_version: 0.1253.0 ocm: component_name: github.com/gardener/cc-utils component_version: 1.2729.0 diff --git a/VERSION b/VERSION index d0b79bc3..491d9b76 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1253.0-dev +0.1253.0 diff --git a/extension-definitions.yaml b/extension-definitions.yaml index 026d188b..3de374d6 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0-dev" + version: "0.1253.0" artefact: name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" mappings: - name: extensions - version: "0.1253.0-dev" + version: "0.1253.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From b1dd41baab907dae750ed4407e028dabfc5e0b9b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 07:41:19 +0000 Subject: [PATCH 16/29] next version: 0.1254.0-dev --- ...dener_cc-utils_1.2726.0.release-notes.yaml | 25 ------ ...dener_cc-utils_1.2727.0.release-notes.yaml | 25 ------ ...dener_cc-utils_1.2728.0.release-notes.yaml | 56 ------------- ...dener_cc-utils_1.2729.0.release-notes.yaml | 15 ---- VERSION | 2 +- extension-definitions.yaml | 84 +++++++++---------- 6 files changed, 43 insertions(+), 164 deletions(-) delete mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml delete mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml delete mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml delete mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml deleted file mode 100644 index bae4730a..00000000 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2726.0.release-notes.yaml +++ /dev/null @@ -1,25 +0,0 @@ -reference_version: 0.1253.0 -ocm: - component_name: github.com/gardener/cc-utils - component_version: 1.2726.0 -release_notes: -- audience: operator - author: - hostname: github.com - type: githubUser - username: LucaBernstein - category: other - contents: Release notes within one category are now grouped and sorted by audience. - mimetype: text/markdown - reference: '[#1455](https://github.com/gardener/cc-utils/pull/1455)' - type: standard -- audience: operator - author: - hostname: github.com - type: githubUser - username: voelzmo - category: other - contents: Add pr-naming-pattern option to workflow `upgrade-dependencies` - mimetype: text/markdown - reference: '[#1456](https://github.com/gardener/cc-utils/pull/1456)' - type: standard diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml deleted file mode 100644 index dc9e33d5..00000000 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2727.0.release-notes.yaml +++ /dev/null @@ -1,25 +0,0 @@ -reference_version: 0.1253.0 -ocm: - component_name: github.com/gardener/cc-utils - component_version: 1.2727.0 -release_notes: -- audience: developer - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: oci-ocm-workflow now allows passing-in of static authtokens - mimetype: text/markdown - reference: '[#1462](https://github.com/gardener/cc-utils/pull/1462)' - type: standard -- audience: developer - author: - hostname: github.com - type: githubUser - username: 8R0WNI3 - category: other - contents: Dropped the `component-diff` output from equally named GitHub workflow/action - mimetype: text/markdown - reference: '[#1459](https://github.com/gardener/cc-utils/pull/1459)' - type: standard diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml deleted file mode 100644 index e00a8c32..00000000 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2728.0.release-notes.yaml +++ /dev/null @@ -1,56 +0,0 @@ -reference_version: 0.1253.0 -ocm: - component_name: github.com/gardener/cc-utils - component_version: 1.2728.0 -release_notes: -- audience: developer - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: post-build.yaml-workflow now accepts an optional authtoken - mimetype: text/markdown - reference: '[#1471](https://github.com/gardener/cc-utils/pull/1471)' - type: standard -- audience: developer - author: - hostname: github.com - type: githubUser - username: 8R0WNI3 - category: other - contents: The OCI client will now retry requests in case a HTTP `429` error is encountered - mimetype: text/markdown - reference: '[#1476](https://github.com/gardener/cc-utils/pull/1476)' - type: standard -- audience: developer - author: - hostname: github.com - type: githubUser - username: zkdev - category: bugfix - contents: '`gardener-oci` python distribution package no longer implicitly requires - `gardener-cicd-libs` to be installed.' - mimetype: text/markdown - reference: '[#1457](https://github.com/gardener/cc-utils/pull/1457)' - type: standard -- audience: operator - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: oci-ocm-workflow optionally accepts dockerhub-(ro-)auth-token - mimetype: text/markdown - reference: '[#1474](https://github.com/gardener/cc-utils/pull/1474)' - type: standard -- audience: developer - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: update actions/checkout to v6-branch - mimetype: text/markdown - reference: '[#1472](https://github.com/gardener/cc-utils/pull/1472)' - type: standard diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml deleted file mode 100644 index 6942574e..00000000 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2729.0.release-notes.yaml +++ /dev/null @@ -1,15 +0,0 @@ -reference_version: 0.1253.0 -ocm: - component_name: github.com/gardener/cc-utils - component_version: 1.2729.0 -release_notes: -- audience: operator - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: CTT now features a CLI - mimetype: text/markdown - reference: '[#1477](https://github.com/gardener/cc-utils/pull/1477)' - type: standard diff --git a/VERSION b/VERSION index 491d9b76..319844f5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1253.0 +0.1254.0-dev diff --git a/extension-definitions.yaml b/extension-definitions.yaml index 3de374d6..b16238ac 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1253.0" + version: "0.1254.0-dev" artefact: name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" mappings: - name: extensions - version: "0.1253.0" + version: "0.1254.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From bbc14a6187c396d865bef7fdcc3a7b6530c8115e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:03:43 +0000 Subject: [PATCH 17/29] release 0.8.0 --- BDBA_VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BDBA_VERSION b/BDBA_VERSION index f8d71478..a3df0a69 100644 --- a/BDBA_VERSION +++ b/BDBA_VERSION @@ -1 +1 @@ -0.8.0-dev +0.8.0 From aadbcac61cc203185fdd1cc3d3bfb6c01de0ecd3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:05:57 +0000 Subject: [PATCH 18/29] next version: 0.9.0-dev --- BDBA_VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BDBA_VERSION b/BDBA_VERSION index a3df0a69..c70836ca 100644 --- a/BDBA_VERSION +++ b/BDBA_VERSION @@ -1 +1 @@ -0.8.0 +0.9.0-dev From 52be69c869f8517524855dcf5846d75f5fdea6e2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:07:57 +0000 Subject: [PATCH 19/29] Upgrade ocm.software/ocm-gear/bdba-client from 0.7.0 to 0.8.0 --- .ocm/base-component.yaml | 2 +- requirements.extensions.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ocm/base-component.yaml b/.ocm/base-component.yaml index 0a5a5713..f2b6e221 100644 --- a/.ocm/base-component.yaml +++ b/.ocm/base-component.yaml @@ -4,7 +4,7 @@ componentReferences: version: 1.2729.0 - componentName: ocm.software/ocm-gear/bdba-client name: bdba - version: 0.7.0 + version: 0.8.0 - componentName: ocm.software/ocm-gear/freshclam name: freshclam version: 1.12.0 diff --git a/requirements.extensions.txt b/requirements.extensions.txt index 24f0ff43..629cfedb 100644 --- a/requirements.extensions.txt +++ b/requirements.extensions.txt @@ -1,3 +1,3 @@ -bdba==0.7.0 +bdba==0.8.0 cyclonedx-python-lib jsonpath-ng From f69fe825d8f3333e57aadef318b42c89506f8513 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:14:38 +0000 Subject: [PATCH 20/29] release 0.1254.0 --- VERSION | 2 +- extension-definitions.yaml | 84 +++++++++++++++++++------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/VERSION b/VERSION index 319844f5..f579542d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1254.0-dev +0.1254.0 diff --git a/extension-definitions.yaml b/extension-definitions.yaml index b16238ac..4636734f 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0-dev" + version: "0.1254.0" artefact: name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" mappings: - name: extensions - version: "0.1254.0-dev" + version: "0.1254.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From d54d35f2b1c686c882e8d62777247e4e91323036 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:21:31 +0000 Subject: [PATCH 21/29] next version: 0.1255.0-dev --- VERSION | 2 +- extension-definitions.yaml | 84 +++++++++++++++++++------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/VERSION b/VERSION index f579542d..398ec73f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1254.0 +0.1255.0-dev diff --git a/extension-definitions.yaml b/extension-definitions.yaml index 4636734f..fe2de5e0 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1254.0" + version: "0.1255.0-dev" artefact: name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" mappings: - name: extensions - version: "0.1254.0" + version: "0.1255.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From 8e923297dca2ebfd431c1a3f6dad3a868c39474d Mon Sep 17 00:00:00 2001 From: "Jonas Brand (8R0WNI3)" Date: Thu, 11 Dec 2025 15:07:03 +0100 Subject: [PATCH 22/29] fix: Add default value to `binary_bytes` and `scanned_bytes` Signed-off-by: Jonas Brand (8R0WNI3) --- bdba/model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bdba/model.py b/bdba/model.py index f44364f6..867a9cb3 100644 --- a/bdba/model.py +++ b/bdba/model.py @@ -246,8 +246,8 @@ class AnalysisResult(Result): fail_reason: str | None components: list[Component] = dataclasses.field(default_factory=list) custom_data: dict[str, str] = dataclasses.field(default_factory=dict) - binary_bytes: int | None - scanned_bytes: int | None + binary_bytes: int | None = None + scanned_bytes: int | None = None @dataclasses.dataclass From 487b5a8c51664972f41199204c9b9b5d7a33f78a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 14:23:08 +0000 Subject: [PATCH 23/29] Upgrade github.com/gardener/cc-utils from 1.2729.0 to 1.2730.0 --- .ocm/base-component.yaml | 2 +- ..._gardener_cc-utils_1.2730.0.release-notes.yaml | 15 +++++++++++++++ requirements.utils.txt | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml diff --git a/.ocm/base-component.yaml b/.ocm/base-component.yaml index f2b6e221..9bb640fb 100644 --- a/.ocm/base-component.yaml +++ b/.ocm/base-component.yaml @@ -1,7 +1,7 @@ componentReferences: - componentName: github.com/gardener/cc-utils name: cc-utils - version: 1.2729.0 + version: 1.2730.0 - componentName: ocm.software/ocm-gear/bdba-client name: bdba version: 0.8.0 diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml new file mode 100644 index 00000000..db878247 --- /dev/null +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml @@ -0,0 +1,15 @@ +ocm: + component_name: github.com/gardener/cc-utils + component_version: 1.2730.0 +release_notes: +- audience: operator + author: + hostname: github.com + type: githubUser + username: ccwienk + category: other + contents: CTT (fka CNUDIE Transport-Tool) is now built as a separate package, into + a dedicated OCI-Image + mimetype: text/markdown + reference: '[#1478](https://github.com/gardener/cc-utils/pull/1478)' + type: standard diff --git a/requirements.utils.txt b/requirements.utils.txt index 79e9ae82..927f13fb 100644 --- a/requirements.utils.txt +++ b/requirements.utils.txt @@ -2,7 +2,7 @@ aiohttp boto3 cachetools dacite -gardener-cicd-libs==1.2729.0 +gardener-cicd-libs==1.2730.0 github3.py kubernetes requests From fb7a7103963999f6c0dcf52698c001ba9912cd16 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 14:27:56 +0000 Subject: [PATCH 24/29] release 0.1255.0 --- ...dener_cc-utils_1.2730.0.release-notes.yaml | 1 + VERSION | 2 +- extension-definitions.yaml | 84 +++++++++---------- 3 files changed, 44 insertions(+), 43 deletions(-) diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml index db878247..5257a13e 100644 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml +++ b/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml @@ -1,3 +1,4 @@ +reference_version: 0.1255.0 ocm: component_name: github.com/gardener/cc-utils component_version: 1.2730.0 diff --git a/VERSION b/VERSION index 398ec73f..fa7e7cd5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1255.0-dev +0.1255.0 diff --git a/extension-definitions.yaml b/extension-definitions.yaml index fe2de5e0..144f0abe 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0-dev" + version: "0.1255.0" artefact: name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" mappings: - name: extensions - version: "0.1255.0-dev" + version: "0.1255.0" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From 0ed770fa12684606a7fce27d9a3ae22611a26647 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 14:34:41 +0000 Subject: [PATCH 25/29] next version: 0.1256.0-dev --- ...dener_cc-utils_1.2730.0.release-notes.yaml | 16 ---- VERSION | 2 +- extension-definitions.yaml | 84 +++++++++---------- 3 files changed, 43 insertions(+), 59 deletions(-) delete mode 100644 .ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml diff --git a/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml b/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml deleted file mode 100644 index 5257a13e..00000000 --- a/.ocm/release-notes/github.com_gardener_cc-utils_1.2730.0.release-notes.yaml +++ /dev/null @@ -1,16 +0,0 @@ -reference_version: 0.1255.0 -ocm: - component_name: github.com/gardener/cc-utils - component_version: 1.2730.0 -release_notes: -- audience: operator - author: - hostname: github.com - type: githubUser - username: ccwienk - category: other - contents: CTT (fka CNUDIE Transport-Tool) is now built as a separate package, into - a dedicated OCI-Image - mimetype: text/markdown - reference: '[#1478](https://github.com/gardener/cc-utils/pull/1478)' - type: standard diff --git a/VERSION b/VERSION index fa7e7cd5..bee16995 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1255.0 +0.1256.0-dev diff --git a/extension-definitions.yaml b/extension-definitions.yaml index 144f0abe..6c5364e5 100644 --- a/extension-definitions.yaml +++ b/extension-definitions.yaml @@ -3,13 +3,13 @@ installation: ocm_references: - helm_chart_name: delivery-service name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: delivery-service @@ -87,13 +87,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -119,13 +119,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -144,13 +144,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -170,13 +170,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -196,13 +196,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -222,13 +222,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -254,13 +254,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -286,13 +286,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -317,13 +317,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -349,13 +349,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -381,13 +381,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -413,13 +413,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions @@ -439,13 +439,13 @@ installation: ocm_references: - helm_chart_name: extensions name: ocm.software/ocm-gear/delivery-service - version: "0.1255.0" + version: "0.1256.0-dev" artefact: name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" mappings: - name: extensions - version: "0.1255.0" + version: "0.1256.0-dev" artefact_type: helmchart-imagemap value_templates: - helm_chart_name: extensions From 639aa7ed1bffbf20fc4a8e1a764236d461d2717e Mon Sep 17 00:00:00 2001 From: I557814 Date: Tue, 16 Dec 2025 09:35:59 +0100 Subject: [PATCH 26/29] add changes --- odg/model.py | 16 +++++++++------- odg/profiles.yaml | 6 +++++- test/test_odg_extension_test_results.py | 1 + test_results.py | 7 ++++--- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/odg/model.py b/odg/model.py index 5f98335e..65f60218 100644 --- a/odg/model.py +++ b/odg/model.py @@ -126,9 +126,7 @@ def datatypes(self) -> tuple[Datatype, ...]: Datasource.SAST: ( Datatype.SAST_FINDING, ), - Datasource.TEST_RESULT_FINDING: ( - Datatype.TEST_RESULT_FINDING - ) + Datasource.TEST_RESULT: (Datatype.TEST_RESULT) }.get(self, tuple()) @@ -180,7 +178,8 @@ class UserIdentity: ''' Collection of identities that refer to the same user ''' - identifiers: list[EmailAddress | GithubUser | MetaOrigin | PersonalName | UserIdentifierBase] + identifiers: list[EmailAddress | GithubUser | + MetaOrigin | PersonalName | UserIdentifierBase] class SastStatus(enum.StrEnum): @@ -1272,7 +1271,8 @@ class KyvernoRuleResult: skip: int = 0 error: int = 0 warn: int = 0 - violations: typing.List[KyvernoViolation] = dataclasses.field(default_factory=list) + violations: typing.List[KyvernoViolation] = dataclasses.field( + default_factory=list) @dataclasses.dataclass @@ -1294,7 +1294,8 @@ class KyvernoReportSummary: dataclasses.field(default_factory=dict) # namespace -> NamespaceSummary ) policy_results: dict[str, dict[str, dict[str, KyvernoRuleResult]]] = ( - dataclasses.field(default_factory=dict) # namespace -> policy -> rule -> RuleResult + # namespace -> policy -> rule -> RuleResult + dataclasses.field(default_factory=dict) ) @@ -1475,7 +1476,8 @@ class ArtefactMetadata: artefact: ComponentArtefactId meta: Metadata data: FindingModels | InformationalModels | MetaModels - discovery_date: datetime.date | None = None # required for finding specific SLA tracking + # required for finding specific SLA tracking + discovery_date: datetime.date | None = None allowed_processing_time: str | None = None @staticmethod diff --git a/odg/profiles.yaml b/odg/profiles.yaml index d97f14f8..7e9389dd 100644 --- a/odg/profiles.yaml +++ b/odg/profiles.yaml @@ -13,6 +13,10 @@ - finding/ghas - finding/test-result - finding/sast - - finding/vulnerability + - finding/diki + - finding/crypto + - finding/osid + - finding/ghas + - finding/test-result special_component_ids: - 03e237b4-434e-4e1c-b786-5ceb6cc76c1c diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index 5d1de3d9..e6986c29 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -1,3 +1,4 @@ +import os import pytest import dacite import enum diff --git a/test_results.py b/test_results.py index 80464f84..a89dcbd3 100644 --- a/test_results.py +++ b/test_results.py @@ -51,8 +51,9 @@ def iter_artefacts_for_test_coverage( test_result_finding_config: odg.findings.Finding, sub_type: odg.model.TestStatus, artefact: odg.model.ComponentArtefactId, - creation_timestamp: datetime.datetime=datetime.datetime.now(datetime.timezone.utc) -) -> : + creation_timestamp: datetime.datetime=datetime.datetime.now( + datetime.timezone.utc) +) -> odg.model.ComponentArtefactId | odg.findings.Finding: categorisation = odg.findings.categorise_finding( finding_cfg=test_result_finding_config, @@ -69,7 +70,7 @@ def iter_artefacts_for_test_coverage( for ta in test_artefacts: if not ta.find_label(name='gardener.cloud/test-scope'): # if label is absent, assume tests are scoping *all* resources within this component - return + return [] for label in ta.labels: if label.name == 'gardener.cloud/test-scope': artefacts_with_tests.append(label.value) From 92b445ebfd1cedb2931ccc918954aca985a9adf5 Mon Sep 17 00:00:00 2001 From: I557814 Date: Thu, 4 Dec 2025 09:39:20 +0100 Subject: [PATCH 27/29] implement create_missing_test_finding function --- odg/model.py | 4 +++- test/test_odg_extension_test_results.py | 1 - test_results.py | 12 +++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/odg/model.py b/odg/model.py index 65f60218..51ac9961 100644 --- a/odg/model.py +++ b/odg/model.py @@ -126,7 +126,9 @@ def datatypes(self) -> tuple[Datatype, ...]: Datasource.SAST: ( Datatype.SAST_FINDING, ), - Datasource.TEST_RESULT: (Datatype.TEST_RESULT) + Datasource.TEST_RESULT_FINDING: ( + Datatype.TEST_RESULT_FINDING + ) }.get(self, tuple()) diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index e6986c29..5d1de3d9 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -1,4 +1,3 @@ -import os import pytest import dacite import enum diff --git a/test_results.py b/test_results.py index a89dcbd3..253950b3 100644 --- a/test_results.py +++ b/test_results.py @@ -25,15 +25,17 @@ def find_test_artefacts(component: ocm.ComponentDescriptor) -> list[ocm.Artifact def create_missing_test_finding( - artefact: odg.model.ComponentArtefactId, - sub_type: odg.model.TestStatus, - categorisation: odg.findings.FindingCategorisation, - creation_timestamp: datetime.datetime=datetime.datetime.now( - tz=datetime.timezone.utc) + artefact: odg.model.ComponentArtefactId, + sub_type: odg.model.TestStatus, + categorisation: odg.findings.FindingCategorisation, + creation_timestamp: datetime.datetime=datetime.datetime.now( + tz=datetime.timezone.utc) ) -> odg.model.ArtefactMetadata | None: return odg.model.ArtefactMetadata( artefact=artefact, meta=odg.model.Metadata( + datasource=odg.model.Datasource.TEST_RESULT_FINDING, + type=odg.model.Datatype.TEST_RESULT_FINDING, datasource=odg.model.Datasource.TEST_RESULT_FINDING, type=odg.model.Datatype.TEST_RESULT_FINDING, creation_date=creation_timestamp, From 3e4440c34a7b5763605a3144a972095e9f749061 Mon Sep 17 00:00:00 2001 From: I557814 Date: Tue, 16 Dec 2025 09:06:44 +0100 Subject: [PATCH 28/29] add changes according to PR comments --- .../missing_test_result_finding.yaml | 17 ++ ...ing_test_results_component_descriptor.yaml | 86 ++++++++ test/test_odg_extension_test_results.py | 201 ++++-------------- 3 files changed, 145 insertions(+), 159 deletions(-) create mode 100644 test/resources/missing_test_result_finding.yaml create mode 100644 test/resources/missing_test_results_component_descriptor.yaml diff --git a/test/resources/missing_test_result_finding.yaml b/test/resources/missing_test_result_finding.yaml new file mode 100644 index 00000000..2447c00d --- /dev/null +++ b/test/resources/missing_test_result_finding.yaml @@ -0,0 +1,17 @@ +categorisations: + - id: NONE + display_name: test exists and has no findings + value: 0 + allowed_processing_time: 0 + rescoring: null + selector: null + + - id: BLOCKER + display_name: Test result is missing + value: 16 + allowed_processing_time: 0 + rescoring: null + selector: + type: finding/testresults + status: + - ".*" \ No newline at end of file diff --git a/test/resources/missing_test_results_component_descriptor.yaml b/test/resources/missing_test_results_component_descriptor.yaml new file mode 100644 index 00000000..816d3291 --- /dev/null +++ b/test/resources/missing_test_results_component_descriptor.yaml @@ -0,0 +1,86 @@ +component: + name: ThisIsMyComponent + version: v1.2710.0 + repositoryContexts: + - baseUrl: foo + subPath: None + type: ociRegistry + provider: Any + sources: [] + componentReferences: [] + resources: + - access: + localReference: foo + mediaType: application/data + referenceName: None + type: localBlob/v1s + labels: + - name: gardener.cloud/test-policy + value: false + - name: gardener.cloud/purposes + signing: false + value: + - test + version: None + - name: gardener.cloud/test-scope + value: + - job-image-1 + - job-image-2 + name: job-image-test-1 + relation: local + type: application/gzip + version: v1.2710.0 + - access: + localReference: bar + mediaType: application/data + referenceName: None + type: localBlob/v1 + labels: + - name: gardener.cloud/test-policy + value: false + - name: gardener.cloud/purposes + signing: false + value: + - test + version: None + - name: gardener.cloud/test-scope + value: + - job-image-2 + name: job-image-test-2 + relation: local + type: application/gzip + version: v1.2710.0 + - access: + localReference: foo + type: ociRegistry + labels: + - name: gardener.cloud/test-policy + value: true + name: job-image-1 + relation: local + type: ociImage + version: v1.2710.0 + - access: + localReference: bar + type: ociRegistry + labels: + - name: gardener.cloud/test-policy + value: true + name: job-image-2 + relation: local + type: ociImage + version: v1.2710.0 + - access: + localReference: bar + type: ociRegistry + labels: + - name: gardener.cloud/test-policy + value: false + name: job-image-3 + relation: local + type: helmChart/v1 + version: v1.2710.0 + labels: [] +meta: + schemaVersion: v2 + diff --git a/test/test_odg_extension_test_results.py b/test/test_odg_extension_test_results.py index 5d1de3d9..3124eb3a 100644 --- a/test/test_odg_extension_test_results.py +++ b/test/test_odg_extension_test_results.py @@ -5,174 +5,57 @@ import odg.model import odg.findings import test_results +import yaml +from pathlib import Path @pytest.fixture def component_descriptor() -> ocm.ComponentDescriptor: - raw = { - 'component': { - 'componentReferences': [], - 'creationTime': '2025-10-07T09:15:29Z', - 'labels': [], - 'name': 'this/is/my/component', - 'provider': 'Any', - 'repositoryContexts': [ - { - 'baseUrl': 'foo', - 'subPath': None, - 'type': 'ociRegistry' - } - ], - 'resources': [ - { - 'access': { - 'localReference': 'foo', - 'mediaType': 'application/data', - 'referenceName': None, - 'type': 'localBlob/v1' - }, - 'labels': [ - { - 'name': 'gardener.cloud/test-policy', - 'value': False - }, - { - 'name': 'gardener.cloud/purposes', - 'signing': False, - 'value': ['test'], - 'version': None - }, - { - 'name': 'gardener.cloud/test-scope', - 'value': ['job-image-1', 'job-image-2', 'job-image-4'] - } - ], - 'name': 'job-image-test-1', - 'relation': 'local', - 'type': 'application/gzip', - 'version': '1.2710.0' - }, - { - 'access': { - 'localReference': 'bar', - 'mediaType': 'application/data', - 'referenceName': None, - 'type': 'localBlob/v1' - }, - 'labels': [ - { - 'name': 'gardener.cloud/test-policy', - 'value': False - }, - { - 'name': 'gardener.cloud/purposes', - 'signing': False, - 'value': ['test'], - 'version': None - }, - { - 'name': 'gardener.cloud/test-scope', - 'value': ['job-image-2'] - } - ], - 'name': 'job-image-test-2', - 'relation': 'local', - 'type': 'application/gzip', - 'version': '1.2710.0' - }, - { - 'access': { - 'imageReference': 'foo', - 'type': 'ociRegistry' - }, - 'labels': [ - { - 'name': 'gardener.cloud/test-policy', - 'value': True - } - ], - 'name': 'job-image-1', - 'relation': 'local', - 'version': '1.2710.0', - 'type': 'ociImage' - }, - { - 'access': { - 'imageReference': 'bar', - 'type': 'ociRegistry' - }, - 'labels': [ - { - 'name': 'gardener.cloud/test-policy', - 'value': True - } - ], - 'name': 'job-image-2', - 'relation': 'local', - 'version': '1.2710.0', - 'type': 'ociImage' - }, - { - 'access': { - 'imageReference': 'bar', - 'type': 'ociRegistry' - }, - 'labels': [ - { - 'name': 'gardener.cloud/test-policy', - 'value': False - } - ], - 'name': 'job-image-3', - 'relation': 'external', - 'version': '1.2710.0', - 'type': 'helmChart/v1' - }, - ], - 'sources': [], - 'version': '1.2710.0' - }, - 'meta': { - 'schemaVersion': 'v2', - } -} + yaml_path = Path(__file__).parent / "resources" / \ + "missing_test_results_component_descriptor.yaml" + + raw = yaml.safe_load(yaml_path.read_text()) + return dacite.from_dict( data=raw, data_class=ocm.ComponentDescriptor, - config=dacite.Config( - cast=[enum.Enum] - ) + config=dacite.Config(cast=[enum.Enum]) ) @pytest.fixture def missing_test_result_finding_cfg() -> odg.findings.Finding: - selector = odg.findings.TestResultFindingSelector(status=['.*']) - - categorisations = [ - odg.findings.FindingCategorisation( - id='NONE', - display_name='test exists and has no findings', - value=0, - allowed_processing_time=0, - rescoring=None, - selector=None, - ), - odg.findings.FindingCategorisation( - id='BLOCKER', - display_name='Test result is missing', - value=16, - allowed_processing_time=0, - rescoring=None, - selector=selector, - ), - ] + yaml_path_finding = Path(__file__).parent / \ + "resources" / "missing_test_result_finding.yaml" + + raw = yaml.safe_load(yaml_path_finding.read_text()) + + categorisations = [] + + for cat in raw["categorisations"]: + selector = None + + if cat["selector"] is not None: + selector = odg.findings.TestResultFindingSelector( + status=cat["selector"]["status"] + ) + + categorisations.append( + odg.findings.FindingCategorisation( + id=cat["id"], + display_name=cat["display_name"], + value=cat["value"], + allowed_processing_time=cat["allowed_processing_time"], + rescoring=cat["rescoring"], + selector=selector + ) + ) return odg.findings.Finding( type=odg.model.Datatype.TEST_RESULT_FINDING, - categorisations=categorisations, filter=None, - rescoring_ruleset=None + rescoring_ruleset=None, + categorisations=categorisations ) @@ -181,11 +64,11 @@ def test_artefact_test_results_filter( missing_test_result_finding_cfg: odg.findings.Finding ): - resources_req_tests = test_results.iter_artefacts_requiring_tests( - component=component_descriptor) + resources_req_tests = list(test_results.iter_artefacts_requiring_tests( + component=component_descriptor)) - test_resources = test_results.find_test_artefacts( - component=component_descriptor) + test_resources = list(test_results.find_test_artefacts( + component=component_descriptor)) assert len(resources_req_tests) == len(test_resources) @@ -222,7 +105,7 @@ def test_artefact_test_results_filter( test_result_finding_config=missing_test_result_finding_cfg, sub_type=odg.model.TestStatus.NO_TEST) - assert test_coverage == None + assert len(test_coverage) == 0 # let's remove the test results component_descriptor.component.resources = [ @@ -231,7 +114,7 @@ def test_artefact_test_results_filter( if not resource.name == 'job-image-test-2' and not resource.name == 'job-image-test-1' ] - test_resources = test_results.find_test_artefacts( - component=component_descriptor) + test_resources = list(test_results.find_test_artefacts( + component=component_descriptor)) assert len(resources_req_tests) != len(test_resources) From 1ed57c74c8408a7bea8bb48a1681f1630394d230 Mon Sep 17 00:00:00 2001 From: I557814 Date: Tue, 16 Dec 2025 10:07:14 +0100 Subject: [PATCH 29/29] move labels and value to module consts --- test_results.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test_results.py b/test_results.py index 253950b3..2aafec72 100644 --- a/test_results.py +++ b/test_results.py @@ -17,10 +17,14 @@ def iter_artefacts_requiring_tests(component: ocm.ComponentDescriptor) -> list[o continue +PURPOSE_LABEL_NAME = 'gardener.cloud/purposes' +PURPOSE_LABEL_VALUE = 'test' + + def find_test_artefacts(component: ocm.ComponentDescriptor) -> list[ocm.Artifact]: for resource in component.component.resources: for label in resource.labels: - if label.name == 'gardener.cloud/purposes' and 'test' in label.value: + if label.name == PURPOSE_LABEL_NAME and PURPOSE_LABEL_VALUEs in label.value: yield resource