Manage NuGet packages and applications in Crossbill Nest

Crossbill Nest can be used as a private NuGet packages source. It is fully compatible with all major NuGet clients including Nuget.exe, dotnet.exe and MS VisualStudio. Depending on settings, the user interface can be shown as a NuGet server (similar to nuget.org) or as an applications marketplace. Although the packages displayed a little bit differently, all main functions and buttons are remaining the same.

With Crossbill Nest, you can host NuGet packages with support for all basic operations: list, download, upload, update and delete. Let's take a look a little bit closer.

List Nuget packages via user interface

The Crossbill Nest starting page displays a list of the NuGet packages uploaded to the system. The list supports paging and filtering.

  • The paging navigation is available at the bottom of the list.
  • The filtering is available on the right side under the "Show advanced filters" link.

The package list displays available packages. You can click the package title to see the detailed package information. By default the package list displays only the latest versions and prerelease versions of the packages. To change these filtering:

  1. Click the "Show advanced filters" link;
  2. Check the checkboxes for desired options;
  3. Click the "Search" button.

If the uploaded package contains information about a copyright owner, an author and an icon, then the information will be displayed in the list.

Crossbill Nest list NuGet packages

Crossbill Nest list NuGet packages

API endpoints

Crossbill Nest supports two types of API:

  • Native NuGet API protocol version 3 http://[Nest hostname]/v3/index.json
  • Nest API http://[Nest hostname]/crossapi/

The native NuGet v3 API is available under http://[Nest hostname]/v3/index.json where [Nest hostname] is a hostname of the Crossbill Nest server. Using this URL you can list the NuGet packages hosted by Crossbill Nest using a compatible client software. For example, using Nuget.exe or dotnet.exe. For more information on API ussage, see the package source consumption documentation.

If the internal Nest API is enabled then you can access it under http://[Nest hostname]/crossapi/ where [Nest hostname] is a hostname of the Crossbill Nest server. Using this URL you can get a list of the NuGet packages as a REST JSON service. Nest API is designed to access Nest from the third party applications. For C# programming language, you can use the autogenerated C# client source code available from the API information page http://[Nest hostname]/en/ApiClient/About/.

List Nuget packages via API

To list the packages from Nest endpoint via NuGet v3 protocol you can use the compatible NuGet client. For example, a command line interface of Nuget.exe.

Open a Windows command line and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

Nuget.exe sources app -Source http://[Nest hostname]/v3/index.json -UserName [MyEmail] -Password [MyPassword] -Name Nest

List the packages:

Nuget.exe list -Source Nest

Open a Windows command line or Linux terminal and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

dotnet nuget add source http://[Nest hostname]/v3/index.json --username [MyEmail] --password [MyPassword] --name Nest

List the packages:

dotnet package search --source Nest

Add Nuget package via user interface

The Crossbill Nest main screen displays a list of the packages. There is an "Upload Package" button (or "Upload App" button) on the right side of the list. You can use the button to upload a .nupkg file from your local computer to Nest server. Follow the instructions:

  1. Open Crossbill Nest package list;
  2. Click the "Upload Package" button (or "Upload App" button) on the right side of the list. The dialog window will appear;
  3. Select .nupkg file from your local drive. You can select multiple files;
  4. Click "Open" in the dialog window;
  5. Wait for the file to be uploaded. The system displays a progress bar during the upload.

Note: The "Upload Package" button is visible only if the logged user has the AddPackage permission.

Once the package is uploaded, the list will be refreshed and the uploaded package will be displayed in the list. If it didn't appear in the list and page refresh didn't help then you can check the application logs for possible errors. If the system fails to unpack the package, it will log the error and notify the system administrator.

Note: The file upload size is limited by the server settings. If you would like to increase the limit, then you can reinstall the Crossbill Nest Web component on top of the existing system, setting a new file upload limit in the installation parameters. You can do it on component reinstall via Crossbill Central or via config.jsconf when reinstall via Crissbill Installer.

Add Nuget package via API

To add a package to Nest endpoint via NuGet v3 protocol you can use the compatible NuGet client. For example, a command line interface of Nuget.exe.

Open a Windows command line and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

Nuget.exe sources app -Source http://[Nest hostname]/v3/index.json -UserName [MyEmail] -Password [MyPassword] -Name Nest

Add a package (replace [YourPackage.nupkg] with the path to your .nupkg file):

Nuget.exe push [YourPackage.nupkg] -Source Nest

Open a Windows command line or Linux terminal and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

dotnet nuget add source http://[Nest hostname]/v3/index.json --username [MyEmail] --password [MyPassword] --name Nest

Add a package (replace [YourPackage.nupkg] with the path to your .nupkg file):

dotnet nuget push [YourPackage.nupkg] --source Nest

Add a new version of Nuget package

A new version of a package can be added to Crossbill Nest server the same way you add a package. The version will appear in the version list on the detailed package information page.

Delete Nuget package

The package can be deleted from the Crossbill Nest server using a delete button on the detailed package information page. You can either delete it using NuGet v3 protocol from the compatible NuGet client.

To delete a package using the Crossbill Nest user interface follow the steps:

  1. Log into your Crossbill Nest server
  2. Find the desired package in the package list and click it to get to the detailed information page
  3. Under the "Versions" section of the page, click a delete button on the right side next to the package version you wish to delete
  4. Confirm the deletion of the package version

If the package has more than one version then you need to delete all versions of the package to delete the package itself.

Open a Windows command line and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

Nuget.exe sources app -Source http://[Nest hostname]/v3/index.json -UserName [MyEmail] -Password [MyPassword] -Name Nest

Delete a package (replace [Package Name] and [Package Version] with the actual package name and version):

Nuget.exe delete [Package Name] [Package Version] -Source Nest

Open a Windows command line or Linux terminal and add a package source if not already added. In this command, replace [Nest hostname] with the actual hostname of Nest server, [MyEmail] with the actual e-mail of your Nest server account and [MyPassword] with your password:

dotnet nuget add source http://[Nest hostname]/v3/index.json --username [MyEmail] --password [MyPassword] --name Nest

Delete a package (replace [Package Name] and [Package Version] with the actual package name and version):

dotnet nuget delete [Package Name] [Package Version] --source Nest