Repository Management with Nexus
16.7. Deploying Packages to NuGet Hosted Repositories
In order to authenticate a client against a NuGet repository NuGet uses an API key for deployment requests. These keys are generated separately on-request from a user account on the NuGet gallery and can be re-generated at any time. At regeneration all previous keys generated for that user are invalid.
For usage with Nexus, API keys are only needed when packages are going to be deployed. Therefore API key generation is by default not exposed in the user interface to normal users. Only users with the Deployer role have access to the API keys.
Other users that should be able to access and create an API key have to be given the Nexus API-Key Access role in the Users Security administration user interface.
In addition the NuGet API-Key Realm has to be activated. To do this, simply add the realm to the selected realms in the Security Settings section of the Server Administration.
Once this is set up you can view, as well as reset, the current Personal API Key in the NuGet tab of any NuGet proxy or hosted repository as visible in Figure 16.8, “Viewing and Resetting the NuGet API Key in the NuGet Configuration Tab”
Creating a package for deployment can be done with the pack command of the nuget command line tool or within Visual Studio. Detailed documentation can be found on the NuGet website.
Manual upload of one or multiple packages is done on the NuPkg Upload tab of the repository displayed in Figure 16.5, “The NuPkg Upload Panel for a Hosted NuGet Repository”. Press the Browse button to access the package you want to upload on the file system and press Add Package. Repeat this process for all the packages you want upload and press Upload Package(s) to complete the upload.
The nuget command line tool allows you to deploy packages to a repository with the push command. The command requires you to use the API Key and the Package Source path. Both of them are available in the NuGet tab of the hosted NuGet repository you want to deploy to. Using the delete command of nuget allows you to remove packages in a similar fashion.
Further information about the command line tool is available in the on-line help.