jfrog / build-info

Artifactory's open integration layer for CI build servers
https://www.buildinfo.org
Apache License 2.0
145 stars 154 forks source link

NPM Extractor not calling "npm config fix" for npm >= 9 #764

Open nwesoccer opened 8 months ago

nwesoccer commented 8 months ago

Describe the bug When using the rtNpmInstall var from the jenkins-artifactory-plugin using NPM >= 9, we get the following error:

Invalid auth configuration found: _auth must be renamed to //{artifactory server}/artifactory/api/npm/:_auth in project config\nPlease run npm config fix to repair your configuration.`

According to JFrog documentation, the "npm config fix" command should be run after creating the .npmrc file. (https://jfrog.com/help/r/artifactory-changes-to-the-login-behavior-in-npm-v9/users-authenticating-with-the-npm-login-command)

There seems to be no hook for us to run this, and it seems like something the plugin should run. The best that we can tell, the plugin uses this repository to write that .npmrc file (https://github.com/jfrog/build-info/blob/master/build-info-extractor-npm/src/main/java/org/jfrog/build/extractor/npm/extractor/NpmBuildInfoExtractor.java#L192C25-L193C86).

Maybe this command should be run here: https://github.com/jfrog/build-info/blob/master/build-info-extractor-npm/src/main/java/org/jfrog/build/extractor/npm/extractor/NpmBuildInfoExtractor.java#L73.

To Reproduce Create a jenkins pipeline with a rtNpmInstall step.

Expected behavior The pipeline should properly run "npm i" without errorying about auth.

Screenshots

Screenshot 2023-10-30 at 16 50 00

Versions

Additional context Add any other context about the problem here.

Spaction commented 4 months ago

Created #787 which should handle this. Reliant on maintainers to approve and merge.