resolveVersion determines the latest version for a package.
(ctx context.Context, registry *Registry, pkg *Package)
| 203 | |
| 204 | // resolveVersion determines the latest version for a package. |
| 205 | func resolveVersion(ctx context.Context, registry *Registry, pkg *Package) (string, error) { |
| 206 | // Check for a version_filter with a "startsWith" prefix (multi-module repos). |
| 207 | if prefix := extractVersionPrefix(pkg.VersionFilter); prefix != "" { |
| 208 | return registry.latestVersionFiltered(ctx, pkg.RepoOwner, pkg.RepoName, prefix) |
| 209 | } |
| 210 | |
| 211 | // For go types, use "latest" and let go install resolve it. |
| 212 | if pkg.IsGoPackage() { |
| 213 | return "latest", nil |
| 214 | } |
| 215 | |
| 216 | return registry.latestVersion(ctx, pkg.RepoOwner, pkg.RepoName) |
| 217 | } |
| 218 | |
| 219 | // extractVersionPrefix parses an aqua version_filter expression like |
| 220 | // 'Version startsWith "gopls/"' and returns the prefix string. |
no test coverage detected