Skip to content

Commit 4cb93f3

Browse files
committed
Add coordinates
1 parent 5db9eef commit 4cb93f3

File tree

6 files changed

+26
-9
lines changed

6 files changed

+26
-9
lines changed

exasol/toolbox/tools/security.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def from_pip_audit(report: str) -> Iterable[Issue]:
186186
cve=sorted(cves)[0],
187187
cwe="None" if not cwes else ", ".join(cwes),
188188
description=vulnerability["description"],
189-
coordinates=f"{vulnerability['name']}:{vulnerability['version']}",
189+
coordinates=vulnerability["coordinates"],
190190
references=tuple(links),
191191
)
192192

exasol/toolbox/util/dependencies/audit.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def security_issue_entry(self) -> dict[str, str | list[str]]:
6363
"version": str(self.version),
6464
"refs": [self.id] + self.aliases,
6565
"description": self.description,
66+
"coordinates": self.coordinates,
6667
}
6768

6869

exasol/toolbox/util/dependencies/shared_models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,23 @@ def normalize_package_name(package_name: str) -> NormalizedPackageStr:
3030
return NormalizedPackageStr(package_name.lower().replace("_", "-"))
3131

3232

33+
def create_coordinates(package_name: str, version: str | Version) -> str:
34+
"""
35+
Create a naming convention for combining a package name and its version
36+
"""
37+
return f"{package_name}:{version}"
38+
39+
3340
class Package(BaseModel):
3441
model_config = ConfigDict(frozen=True, arbitrary_types_allowed=True)
3542

3643
name: str
3744
version: VERSION_TYPE
3845

46+
@property
47+
def coordinates(self):
48+
return create_coordinates(package_name=self.name, version=self.version)
49+
3950
@property
4051
def normalized_name(self) -> NormalizedPackageStr:
4152
return normalize_package_name(self.name)

exasol/toolbox/util/dependencies/track_changes.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from __future__ import annotations
22

3-
from typing import Optional
4-
53
from packaging.version import Version
64
from pydantic import (
75
BaseModel,
@@ -11,6 +9,7 @@
119
from exasol.toolbox.util.dependencies.shared_models import (
1210
NormalizedPackageStr,
1311
Package,
12+
create_coordinates,
1413
)
1514

1615

@@ -24,7 +23,8 @@ class AddedDependency(DependencyChange):
2423
version: Version
2524

2625
def __str__(self) -> str:
27-
return f"* Added dependency `{self.name}:{self.version}`"
26+
coordinates = create_coordinates(self.name, self.version)
27+
return f"* Added dependency `{coordinates}`"
2828

2929
@classmethod
3030
def from_package(cls, package: Package) -> AddedDependency:
@@ -35,7 +35,8 @@ class RemovedDependency(DependencyChange):
3535
version: Version
3636

3737
def __str__(self) -> str:
38-
return f"* Removed dependency `{self.name}:{self.version}`"
38+
coordinates = create_coordinates(self.name, self.version)
39+
return f"* Removed dependency `{coordinates}`"
3940

4041
@classmethod
4142
def from_package(cls, package: Package) -> RemovedDependency:
@@ -47,10 +48,8 @@ class UpdatedDependency(DependencyChange):
4748
current_version: Version
4849

4950
def __str__(self) -> str:
50-
return (
51-
f"* Updated dependency `{self.name}:{self.previous_version}` "
52-
f"to `{self.current_version}`"
53-
)
51+
coordinates = create_coordinates(self.name, self.previous_version)
52+
return f"* Updated dependency `{coordinates}` " f"to `{self.current_version}`"
5453

5554
@classmethod
5655
def from_package(

test/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def security_issue_entry(self) -> dict[str, str | list[str]]:
6666
"version": self.version,
6767
"refs": [self.vulnerability_id, self.cve_id],
6868
"description": self.description,
69+
"coordinates": f"{self.package_name}:{self.version}",
6970
}
7071

7172
@property

test/unit/util/dependencies/shared_models_test.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ def test_normalized_name(name, expected):
4949
dep = Package(name=name, version="0.1.0")
5050
assert dep.normalized_name == expected
5151

52+
@staticmethod
53+
def test_coordinates():
54+
dep = Package(name="numpy", version="0.1.0")
55+
assert dep.coordinates == "numpy:0.1.0"
56+
5257

5358
def test_poetry_files_from_latest_tag():
5459
latest_tag = Git.get_latest_tag()

0 commit comments

Comments
 (0)