Skip to content

Commit 7a63ef5

Browse files
authored
feat(parser): Support Swift Package.resolved schema 2+ (#5193)
1 parent dd8a095 commit 7a63ef5

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

cve_bin_tool/parsers/swift.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,22 @@ def run_checker(self, filename):
6363
except JSONDecodeError as e:
6464
self.logger.debug(f"Error occurred while parsing {filename}: {e}")
6565
return
66-
for package in content["object"]["pins"]:
67-
product = package["package"]
66+
67+
# Check the schema version
68+
if content["version"] == 1:
69+
pins_object = content["object"]
70+
pins = pins_object["pins"]
71+
package_key = "package"
72+
repo_key = "repositoryURL"
73+
else:
74+
pins = content["pins"]
75+
package_key = "identity"
76+
repo_key = "location"
77+
78+
for package in pins:
79+
product = package[package_key]
6880
version = package["state"]["version"]
69-
repository_url = package.get("repositoryURL", None)
81+
repository_url = package.get(repo_key, None)
7082
domain = None
7183
if repository_url:
7284
parse = urlparse(repository_url)

0 commit comments

Comments
 (0)