Description
NuGet is an open-source package manager designed by Microsoft Corporation. The NuGet source configuration plug-in imports versioned source artifacts from a NuGet repository.
NuGet is an open-source package manager designed by Microsoft Corporation. The NuGet source configuration plug-in imports versioned source artifacts from a NuGet repository.
Summary
The NuGet source configuration plug-in imports versioned source artifacts from a NuGet repository. Artifacts are in the format of a NuGet package with the .nupkg extension. Packages contain compiled code (DLLs) and files related to that code. Artifacts can be imported for a specific package version.
This plug-in includes one step:
This plug-in requires HCL Launch version 6.0 or later.
This plug-in uses the NuGet REST API version 2. For information about the API, see NuGet API.
This plug-in supports these servers:
See Installing plugins in HCL Launch for installing and removing plugins.
The following table describes the changes made in each plugin version.
Version | Description |
---|---|
17 | Log4j and Jettison dependency updated. |
16 | RFE: 148202 Pagination support for V2 APIs added. |
15 | A version’s importing field will be correctly set and marked as finished importing when creating versions that are not copied to codestation. |
14 | Fix for CVE-2019-4233: Man in the middle vulnerability. |
13 | RFE: 130125 Added optional description import property. |
12 | RFE: 123879- Added support for nuget api version v2 and v3. |
11 | RFE: 123879 Added support to opt/opt-out for pre-release versions. |
10 | APAR PI89045: add support for setting isFinished flag when importing versions. |
9 | Fixes APAR PI98736 Resolves cannot trim on null error when using automatic import. |
8 | Fixes APAR PI94738 Update version list filter to include ID to pkg matches. |
7 | Fixes APAR PI92176 Unable to parse Date from Artifactory repository. |
6 |
|
5 | Updated to ensure all response texts are z/OS compatible. |
4 |
|
3 | Support file property encryption. |
2 | Fixes APAR PI57417. Plug-in now checks the agent settings for acceptance of self-signed certificates. |
1 | Initial release of the plug-in. |
Usage
You should define a HCL Launch component which defines the source and processes for the NuGet repository. The component contains the information for importing the artifacts and any processes to implement on the artifacts.
You can manually or automatically create component versions from a NuGet repository by detecting NuGet packages based off their names and creating associated component versions for the package.
Perform the following steps to create a component by importing from a NuGet repository. For more information, see Creating components in the product documentation.
https://*[server\_ip or domain\_name]*/artifactory/api/nuget/nuget-hosted
https://*[server\_ip or domain\_name]*/artifactory/api/nuget/v3/nuget-hosted
When the artifacts are imported, a component version is created using the version of the package. You can specify to import a specific package version or import all versions. If importing all versions, a component version is created for each version.
When you import artifacts, you can specify a specific NuGet artifact version to import and change the version name.
In the Import New Version window, specify the version name in the NuGet repository and the name for the version in the HCL Launch repository.
In the preceding example, instead of the version number 1.0.1, the artifacts are renamed to onePointZeroOne.
Starting with the NuGet source configuration plug-in version 3, HCL Launch provides support for artifact retrieval from NuGet repositories in Nexus Repository Manager versions 2.14 to 3.3.1-01. While the server versions are fundamentally the same, the links to the repositories are different.
The NuGet plug-in uses the NuGet REST API v2. For information about the API, see NuGet API. Specifying the correct NuGet URL is necessary for utilizing the REST API calls. For Nexus configuration, you will need to specify the full repository URL. Specifying the Nexus servers host name is insufficient because it is a repository manager and supports multiple repository types. However, if referencing a standalone NuGet server, then the host name is expected.
The following sample configuration demonstrates how to configure a Nexus server import process.
In the graphic below is the HCL Launch component. Properties with the asterisk (*), a value must be specified.
NuGet URL: The NuGet Repository server. If retrieving artifacts from a NuGet server, this is the host name. For Nexus Repository Manager, specify the repository URL defined below.
Package Name: The name of the package on the NuGet server or in the specified Nexus repository.
Note: If authentication is required, specify the user name and associated password.
Specifications for the Nexus Repository Manager varies based on the version. To verify that the URL
After configuring the Nexus Repository Manager, you can use the information to verify that the GetNu repository is accessible, see Confirm NuGet URL.
For a Nexus v2 repository, the value specified for the NuGet URL property in the component is considered the package source of a repository. Place this value, in the Package Source field of the Nexus Repository Manage OSS panel. Specify in the format: https://SERVER:PORT/nexus/service/local/nuget/REPOSITORY_NAME/
.
Identify the URL by navigating to the NuGet repository with the package to import, select the NuGet tab, the Package Source is located on this tab. Copy and paste the full URL from the NuGet URL property configuration field into the Package Source field.
In Nexus v3, the user interface changed significantly, and the repository URL was simplified. The URL is now in the format: https://SERVER:PORT/repository/REPOSITORY_NAME/
. However, this link is slightly harder to identify and confirm. Identify your URL by navigating to a package version in a browser. Hover over its path to see the full download link for this package at the bottom of the screen. Transpose the URL, up to the repository name, into the NuGet URL property configuration field.
The NuGet repository URL must be accessible through the version 2 of the NuGet REST API. This can be verified by placing the Nexus URL, identified above, in a browser. The response will look similar to the screenshot below. If the request requires authentication, then credentials should also be specified in the plug-ins source configuration. This quick test can be confirmed outside of HCL Launch.
Steps
Create a new component version and import artifacts from a NuGet repository.
This step has no input properties.
The plug-in adds these roles automatically to resources. You cannot add these roles manually.
Name | Type | Description |
---|---|---|
Convert File Charset | Boolean | Select to convert the .nupkg artifact to a new charset during the import. |
Include prerelease packages | Boolean | Select to include prerelease packages during the import. |
NuGet URL | String | The fully-qualified URL of the NuGet repository. If you are retrieving a public NuGet package, use default value which is https://api-v2v3search-0.nuget.org. The URL format is different for the NuGet v2 and v3 servers. For v2 use the format: https://[server_ip or domain_name]/artifactory/api/nuget/nuget-hosted. For v3 use the format: https://[server_ip or domain_name]/artifactory/api/nuget/v3/nuget-hosted. |
Package Name | String | The name of the NuGet package to import. |
Password | Password | The password associated with the user name used to authenticate with the NuGet repository. |
Preserve Execute Permissions | Boolean | Select to save file execute permissions with files. |
Proxy Host | String | If you authenticate through a proxy, specify the name of the host. |
Proxy Password | Password | If a proxy is protected, specify the password associated with authorized user name. |
Proxy Port | String | If you authenticate through a proxy, specify the port number. |
Proxy User | String | If a proxy is protected, specify an authorized user name. |
Trust All Certificates | Boolean | Select to accept all SSL certificates when authenticating with the NuGet repository. |
User | String | The user name used to authenticate with the NuGet repository. |
Name | Type | Description |
---|---|---|
NuGet Version | String | The version of the NuGet artifacts to import. |
Rename Version | String | If a version is specified on the NuGet Version property, replace the version with the value specified in this property for the imported artifacts. |
Version Description | String | An optional description to add to the versions that are imported into HCL Launch. |