in genai-function-calling/semantic-kernel-dotnet/Program.cs [36:56]
public string GetLatestVersion(
[Description("Major version to filter by (e.g. 7, 8). Defaults to latest")] int? majorVersion = null)
{
using var httpClient = new HttpClient();
var response = httpClient.GetAsync("https://artifacts.elastic.co/releases/stack.json").Result;
var json = response.Content.ReadAsStringAsync().Result;
var releaseData = JsonSerializer.Deserialize<ReleasesResponse>(json);
var query = releaseData?.Releases
// Filter out non-release versions (e.g. -rc1) and remove " GA" suffix
.Select(r => r.Version.Replace(" GA", ""))
.Where(v => !string.IsNullOrEmpty(v) && !v.Contains('-') && Version.TryParse(v, out _))
.Select(v => Version.Parse(v));
if (majorVersion.HasValue)
{
query = query?.Where(v => v.Major == majorVersion.Value) ?? [];
}
return query?.Max()?.ToString() ?? throw new Exception("No valid versions found.");
}