BaGetter SDK
You can use BaGetter's BaGetter.Protocol
package to interact with a NuGet server.
Getting Started
Install the BaGetter.Protocol
package:
dotnet add package BaGetter.Protocol
List Package Versions
Find all versions of the Newtonsoft.Json
package:
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
IReadOnlyList<NuGetVersion>> versions = await client.ListPackageVersionsAsync("Newtonsoft.Json");
foreach (NuGetVersion version in versions)
{
Console.WriteLine($"Found version: {version}");
}
Download a package
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
string packageId = "Newtonsoft.Json";
NuGetVersion packageVersion = new NuGetVersion("12.0.1");
using (Stream packageStream = await client.DownloadPackageAsync(packageId, packageVersion))
{
Console.WriteLine($"Downloaded package {packageId} {packageVersion}");
}
Find Package Metadata
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
// Find the metadata for all versions of a package.
IReadOnlyList<PackageMetadata> items = await client.GetPackageMetadataAsync("Newtonsoft.Json");
if (!items.Any())
{
Console.WriteLine($"Package 'Newtonsoft.Json' does not exist");
return;
}
foreach (var metadata in items)
{
Console.WriteLine($"Version: {metadata.Version}");
Console.WriteLine($"Listed: {metadata.Listed}");
Console.WriteLine($"Tags: {metadata.Tags}");
Console.WriteLine($"Description: {metadata.Description}");
}
// Or, find the metadata for a single version of a package.
string packageId = "Newtonsoft.Json"
NuGetVersion packageVersion = new NuGetVersion("12.0.1");
PackageMetadata metadata = await client.GetPackageMetadataAsync(packageId, packageVersion);
Console.WriteLine($"Listed: {metadata.Listed}");
Console.WriteLine($"Tags: {metadata.Tags}");
Console.WriteLine($"Description: {metadata.Description}");
Search for packages
Search for "json" packages:
NuGetClient client = new NuGetClient("https://api.nuget.org/v3/index.json");
IReadOnlyList<SearchResult> results = await client.SearchAsync("json");
foreach (SearchResult result in results)
{
Console.WriteLine($"Found package {result.PackageId} {searchResult.Version}");
}