Skip to main content

PaGetto SDK

PaGetto.Protocol is PaGetto's NuGet v3 client library. PaGetto uses it for feed mirrors, and you can use it to interact with any NuGet server.

Getting Started​

Install the package:

dotnet add package PaGetto.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 versionMetadata = await client.GetPackageMetadataAsync(packageId, packageVersion);

Console.WriteLine($"Listed: {versionMetadata.Listed}");
Console.WriteLine($"Tags: {versionMetadata.Tags}");
Console.WriteLine($"Description: {versionMetadata.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} {result.Version}");
}