Skip to content

Restore & push

Once the feed is connected, use the standard .NET tooling.

With the source configured, dotnet restore / dotnet build resolve packages from NuGetKeep like any other v3 feed:

Terminal window
dotnet restore
Terminal window
dotnet nuget push <pkg>.nupkg -s https://your-host/v3/index.json -k <API_KEY>

Pushes require a key with the package:push scope (Publisher or Admin). On Enterprise, trusted publishing lets CI push without a long-lived key, and scoped API keys restrict a key to specific package patterns and operations.

Terminal window
dotnet nuget delete <id> <version> -s https://your-host/v3/index.json -k <API_KEY>

Unlisting hides a version from search/restore without deleting it (the NuGet “unlist” semantics).

Every successfully served .nupkg counts as one download. Counts appear:

  • in v3 search responses (downloads per version, totalDownloads per package), so Visual Studio / Rider package managers show real numbers;
  • as the search ranking: results are ordered by total downloads (alphabetical when tied);
  • in the web UI — a Downloads column on Browse and a badge on the package detail page;
  • as a feed-wide total on the admin Insights dashboard.

Counts are raw server-side statistics: a CI agent restoring the same package daily counts each time, while 404s, quarantined versions, and unauthorized requests never count. Increments are buffered in memory and written to the database periodically (default every 30 seconds, NUGETKEEP_DOWNLOAD_FLUSH_INTERVAL); a hard crash can lose at most one flush window. Deleting a version (e.g. retention) deletes its counts with it.