feat: add `cyclonedx.model.dependency.Dependency.provides`
@uzairchhapra arbeitet bereits daran.
Seit 05.11.2024.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne bei cyclonedx.model.dependency.Dependency und dem Einstiegspunkt Bom.from_json(data=data); untersuche, wie Dependency-Felder deserialisiert werden. Füge Unterstützung für das im CycloneDX 1.6-Beispiel gezeigte Feld provides hinzu, führe anschließend das Reproduktionsskript aus und bestätige, dass Bom.from_json den gemeldeten ValueError nicht mehr auslöst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Library Version: 7.6.1
Description:
Steps to Reproduce:
- Use the example JSON provided in the CycloneDX bom-examples repository.
- Run the following script:
import json
from cyclonedx.model.bom import Bom
# source: https://github.com/CycloneDX/bom-examples/blob/c0436d86cd60693f01d19fe1aacfd01e70e17036/CBOM/Example-With-Dependencies/bom.json
sample = '''{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
"version": 1,
"metadata": {
"component": {
"type": "application",
"bom-ref": "acme-application",
"name": "Acme Application",
"version": "1.0"
}
},
"components": [
{
"type": "cryptographic-asset",
"bom-ref": "aes128gcm",
"name": "AES",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"primitive": "ae",
"parameterSetIdentifier": "128",
"executionEnvironment": "software-plain-ram",
"implementationPlatform": "x86_64",
"certificationLevel": [ "none" ],
"mode": "gcm",
"cryptoFunctions": ["keygen", "encrypt", "decrypt", "tag"],
"classicalSecurityLevel": 128,
"nistQuantumSecurityLevel": 1
},
"oid": "2.16.840.1.101.3.4.1.6"
}
},
{
"type": "library",
"bom-ref": "crypto-library",
"name": "Crypto library",
"version": "1.0.0"
},
{
"type": "library",
"bom-ref": "some-library",
"name": "Some library",
"version": "1.0.0"
}
],
"dependencies": [
{
"ref": "acme-application",
"dependsOn": ["crypto-library"]
},
{
"ref": "crypto-library",
"provides": ["aes128gcm"],
"dependsOn": ["some-library"]
}
]
}'''
data = json.loads(sample)
Bom.from_json(data=data)
Observed Behavior:
The code fails with the following exception:
Traceback (most recent call last):
...
ValueError: Unexpected key provides/provides in data being serialized to cyclonedx.model.dependency.Dependency
Environment:
- Python version:
3.10 - Operating System:
macOS - Library version:
7.6.1
Let me know if this works!
- Vorherrschende Sprache
- Python
- Sterne
- 117
- Forks
- 67
- Ø Merge
- 8 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CycloneDX/cyclonedx-python-lib
-
[PERF] Quadratic (O(N^2)) serialization time for large BOMs — `Bom.validate()` → `register_dependency()` linear scanEvtl. vergeben @inspired-geek hat das vor 118 Tagen übernommen. Offenperformance
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 36/100
CycloneDX/cyclonedx-python-lib#1006 · 2 Kommentare ·
-
tests: test all model enumsEvtl. wieder frei @jkowalleck hat das vor 133 Tagen übernommen, und es ist kein Pull Request offen. OffenQA
CycloneDX/cyclonedx-python-lib#991 · 1 zugewiesene Person ·
-
feat(deps)!: make all de/serialization libraries optionalEvtl. wieder frei @Simoh23999 hat das vor 81 Tagen übernommen, und es ist kein Pull Request offen. Offenbreaking change dependencies
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
CycloneDX/cyclonedx-python-lib#979 · 2 Kommentare ·
-
feat: Add support for Component signatureEvtl. vergeben @wiebe-vandendriessche hat das vor 132 Tagen übernommen. Offenenhancement help wanted schema 1.4
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
CycloneDX/cyclonedx-python-lib#978 · 4 Kommentare ·
-
chore: have coverage uploaded consitentlyEvtl. wieder frei @jkowalleck hat das vor 180 Tagen übernommen, und es ist kein Pull Request offen. Offenchore
CycloneDX/cyclonedx-python-lib#966 · 1 zugewiesene Person ·
Alle Issues in CycloneDX/cyclonedx-python-lib
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
mohitmishra786/readprism#322 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
API-key credentials accept a blank key: empty via the API, spaces-only via the builder's Add API key dialogEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
Significant-Gravitas/AutoGPT#15727 ·
Maintainer antworten meist innerhalb von 1 Tag