-
Notifications
You must be signed in to change notification settings - Fork 99
Add NPM feed docs #3023
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Add NPM feed docs #3023
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -330,6 +330,8 @@ noreferrer | |
| nosniff | ||
| notcontains | ||
| notlike | ||
| NPM | ||
| npmjs | ||
| NTDS | ||
| NTFS | ||
| NTLM | ||
|
|
||
Binary file added
BIN
+36.7 KB
...0/packaging-applications/package-repositories/images/npm-add-external-feed.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+31.7 KB
...000/packaging-applications/package-repositories/images/npm-search-packages.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+104 KB
...0/packaging-applications/package-repositories/images/npm-add-external-feed.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+86.5 KB
...000/packaging-applications/package-repositories/images/npm-search-packages.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+14.7 KB
...0/packaging-applications/package-repositories/images/npm-add-external-feed.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+13.6 KB
...600/packaging-applications/package-repositories/images/npm-search-packages.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+134 KB
.../x/packaging-applications/package-repositories/images/npm-add-external-feed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+150 KB
.../i/x/packaging-applications/package-repositories/images/npm-search-packages.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+188 KB
...mg/packaging-applications/package-repositories/images/npm-add-external-feed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions
1
...ocs/img/packaging-applications/package-repositories/images/npm-add-external-feed.png.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| {"width":2189,"height":1836,"updated":"2026-02-08T22:30:29.842Z"} |
Binary file added
BIN
+245 KB
.../img/packaging-applications/package-repositories/images/npm-search-packages.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions
1
.../docs/img/packaging-applications/package-repositories/images/npm-search-packages.png.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| {"width":2614,"height":1680,"updated":"2026-02-08T22:30:29.917Z"} |
22 changes: 11 additions & 11 deletions
22
src/pages/docs/packaging-applications/package-repositories/index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
142 changes: 142 additions & 0 deletions
142
src/pages/docs/packaging-applications/package-repositories/npm-feeds.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,142 @@ | ||
| --- | ||
| layout: src/layouts/Default.astro | ||
| pubDate: 2023-01-01 | ||
| modDate: 2025-02-05 | ||
| title: NPM feeds | ||
| description: Configuring NPM repositories as Octopus Feeds | ||
| navOrder: 45 | ||
| --- | ||
|
|
||
| :::div{.success} | ||
| NPM feeds are supported from version **Octopus 2026.1.7997**. | ||
| ::: | ||
|
|
||
| NPM repositories can be configured as an external feed in Octopus Deploy, allowing you to consume packages from npmjs.com or private NPM registries such as Nexus Repository Manager and JFrog Artifactory. | ||
|
|
||
wlthomson marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| ## Adding an external NPM feed | ||
|
|
||
| The following steps can be followed to add an external NPM feed. | ||
|
|
||
| 1. Navigate to **Deploy ➜ Manage ➜ External Feeds** and click the **ADD FEED** button. | ||
| 2. Select **NPM Feed** from the **Feed Type** field. | ||
| 3. Enter a descriptive name for the feed in the **Feed name** field. | ||
| 4. In the **Feed URL** field, enter the URL of the NPM registry. Common examples include: | ||
| - Public NPM registry: `https://registry.npmjs.org` | ||
| - Nexus Repository Manager: `https://your-nexus-server/repository/npm-hosted/` | ||
| - JFrog Artifactory: `https://your-artifactory-server/artifactory/api/npm/npm-repo/` | ||
| 5. If the NPM registry requires authentication, enter the credentials in the **Feed login** and **Feed password** fields. For token-based authentication (common with private registries), use the token as the password. | ||
| 6. The **Download attempts** field defines the number of times that Octopus will attempt to download a package from the NPM registry. Failed attempts will wait for the number of seconds defined in the **Download retry backoff** field before attempting to download the package again. | ||
| 7. Click **Save and test** to verify the feed configuration. | ||
|
|
||
| :::figure | ||
|  | ||
| ::: | ||
|
|
||
| ## Authentication | ||
|
|
||
| NPM feeds support several authentication methods: | ||
|
|
||
| ### Public registries | ||
|
|
||
| For public registries like npmjs.com, authentication is optional. You can leave the credentials fields blank to access public packages. | ||
|
|
||
| ### Username/Password | ||
|
|
||
| Most NPM registries support basic authentication with username and password. Enter these directly into the **Feed login** and **Feed password** fields. | ||
|
|
||
| ### Nexus Repository Manager | ||
|
|
||
| For Nexus repositories: | ||
|
|
||
| 1. Use your Nexus username in the **Feed login** field. | ||
| 2. Use your Nexus password in the **Feed password** field. | ||
| 3. Alternatively, you can use an [NPM Bearer Token](https://help.sonatype.com/repomanager3/nexus-repository-administration/user-authentication/user-tokens) generated from Nexus. | ||
|
|
||
| ### JFrog Artifactory | ||
|
|
||
| For Artifactory repositories: | ||
|
|
||
| 1. Use your Artifactory username in the **Feed login** field. | ||
| 2. In the **Feed password** field, you can use either: | ||
| - Your Artifactory password | ||
| - An [Access Token](https://jfrog.com/help/r/jfrog-platform-administration-documentation/access-tokens) generated from Artifactory | ||
| - An API Key (if enabled in your Artifactory instance) | ||
|
|
||
| ## Referencing NPM packages | ||
|
|
||
| When referencing an NPM package in Octopus Deploy, use the package name as it appears in the NPM registry. For scoped packages, include the scope in the package name. | ||
|
|
||
| Examples: | ||
|
|
||
| - Unscoped package: `express` | ||
| - Scoped package: `@octopusdeploy/example-package` | ||
| - Organization scoped: `@myorg/my-package` | ||
|
|
||
| ## Versioning with NPM feeds | ||
|
|
||
| NPM packages use [semantic versioning (SemVer)](https://semver.org/). Octopus Deploy supports the standard SemVer format: `MAJOR.MINOR.PATCH`. | ||
|
|
||
| Pre-release versions are also supported, following the SemVer specification with identifiers such as: | ||
|
|
||
| - `1.0.0-alpha` | ||
| - `1.0.0-beta.1` | ||
| - `1.0.0-rc.2` | ||
|
|
||
| ## Testing an NPM feed | ||
|
|
||
| After adding an NPM feed, you can verify it's working correctly: | ||
|
|
||
| 1. Click the **TEST** button on the feed configuration page. | ||
| 2. Search for a known package in your NPM registry. | ||
| 3. Verify that packages are displayed and version information is correct. | ||
|
|
||
| :::figure | ||
|  | ||
| ::: | ||
|
|
||
| ## Troubleshooting NPM feeds | ||
|
|
||
| ### Connection issues | ||
|
|
||
| If you cannot connect to your NPM registry: | ||
|
|
||
| 1. Verify the feed URL is correct and accessible from the Octopus Server. | ||
| 2. Check that authentication credentials are valid. | ||
| 3. Ensure any required network access (firewall rules, proxy settings) is configured. | ||
| 4. For Nexus or Artifactory, verify the repository is online and the repository path is correct. | ||
|
|
||
| ### Authentication failures | ||
|
|
||
| If authentication is failing: | ||
|
|
||
| 1. Confirm your credentials haven't expired. | ||
| 2. For Artifactory, ensure your API key or access token has the necessary permissions. | ||
| 3. For Nexus, verify that NPM realm is properly configured if using token authentication. | ||
| 4. Test authentication using the NPM CLI with the same credentials: | ||
|
|
||
| ```bash | ||
| npm login --registry=https://your-registry-url | ||
| npm view package-name | ||
| ``` | ||
|
|
||
| ### Package not found | ||
|
|
||
| If a package cannot be found: | ||
|
|
||
| 1. Verify the package name is spelled correctly, including any scope. | ||
| 2. Confirm the package exists in the registry and isn't private (if you're using anonymous access). | ||
| 3. For scoped packages, ensure you're using the full package name including the `@scope/` prefix. | ||
|
|
||
| ### Performance considerations | ||
|
|
||
| For large NPM registries or when dealing with many packages: | ||
|
|
||
| 1. Consider using a caching proxy or mirror closer to your Octopus Server. | ||
| 2. Adjust the **Download attempts** and **Download retry backoff** settings if you experience timeouts. | ||
| 3. Monitor network bandwidth if packages are large or frequently downloaded. | ||
|
|
||
| ## Learn more | ||
|
|
||
| - [NPM documentation](https://docs.npmjs.com/) | ||
| - [Working with scoped packages](https://docs.npmjs.com/cli/v8/using-npm/scope) | ||
| - [About NPM registry](https://docs.npmjs.com/about-the-public-npm-registry) | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.