Skip to content

Commit 9d5de67

Browse files
authored
fix: use 'isDefault' version from deps dev api (#1019)
Signed-off-by: Ben Selwyn-Smith <[email protected]>
1 parent 23c7fdb commit 9d5de67

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

src/macaron/repo_finder/repo_finder_deps_dev.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,16 @@ def get_latest_version(purl: PackageURL) -> tuple[PackageURL | None, RepoFinderI
146146
versions = json_extract(metadata, versions_keys, list)
147147
if not versions:
148148
return None, RepoFinderInfo.DDEV_JSON_INVALID
149-
latest_version = json_extract(versions[-1], ["versionKey", "version"], str)
149+
150+
latest_version = None
151+
for version_result in reversed(versions):
152+
if version_result["isDefault"]:
153+
# Accept the version as the latest if it is marked with the "isDefault" property.
154+
latest_version = json_extract(version_result, ["versionKey", "version"], str)
155+
break
156+
150157
if not latest_version:
158+
logger.debug("No latest version found in version list: %s", len(versions))
151159
return None, RepoFinderInfo.DDEV_JSON_INVALID
152160

153161
namespace = purl.namespace + "/" if purl.namespace else ""
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/* Copyright (c) 2024 - 2025, Oracle and/or its affiliates. All rights reserved. */
2+
/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/. */
3+
4+
#include "prelude.dl"
5+
6+
Policy("test_policy", component_id, "") :-
7+
check_passed(component_id, "mcn_version_control_system_1"),
8+
is_repo_url(component_id, "https://github.com/google/guava").
9+
10+
apply_policy_to("test_policy", component_id) :-
11+
is_component(component_id, "pkg:maven/com.google.guava/[email protected]?type=jar").
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright (c) 2024 - 2025, Oracle and/or its affiliates. All rights reserved.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/.
3+
4+
description: |
5+
Analyzing a PURL that requires fetching the latest version, and the ordering of its versions is atypical
6+
7+
tags:
8+
- macaron-python-package
9+
10+
steps:
11+
- name: Run macaron analyze
12+
kind: analyze
13+
options:
14+
command_args:
15+
- -purl
16+
- pkg:maven/com.google.guava/[email protected]?type=jar
17+
- name: Run macaron verify-policy to verify passed/failed checks
18+
kind: verify
19+
options:
20+
policy: policy.dl

0 commit comments

Comments
 (0)