BaGet SDK¶
You can use BaGet's BaGet.Protocol
package to interact with a NuGet server.
Getting Started¶
Install the BaGet.Protocol
package:
dotnet add package BaGet.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}"); }