<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Npm on Aleš Lončar</title><link>https://loncar.net/tags/npm/</link><description>Recent content in Npm on Aleš Lončar</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 26 May 2020 21:28:59 +0200</lastBuildDate><atom:link href="https://loncar.net/tags/npm/index.xml" rel="self" type="application/rss+xml"/><item><title>Jenkins: configure .npmrc with authentication token to access the private npm Registry on Nexus</title><link>https://loncar.net/posts/jenkins-configure-npmrc-with-authentication-token-to-access-the-private-npm-registry-on-nexus/</link><pubDate>Tue, 26 May 2020 21:28:59 +0200</pubDate><guid>https://loncar.net/posts/jenkins-configure-npmrc-with-authentication-token-to-access-the-private-npm-registry-on-nexus/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-groovy" data-lang="groovy">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// Encode registry credentials and save them in local .npmrc
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="n">stage&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s1">&amp;#39;NPM: Config&amp;#39;&lt;/span>&lt;span class="o">)&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">withNPM&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nl">npmrcConfig:&lt;/span> &lt;span class="s1">&amp;#39;npm-config&amp;#39;&lt;/span>&lt;span class="o">)&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// Encode registry credentials and save them in local .npmrc
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">sh&lt;/span> &lt;span class="s1">&amp;#39;set +x &amp;amp;&amp;amp; echo &amp;#34;\n_auth=\$(echo -n &amp;#34;\${NEXUS_USERNAME}:\${NEXUS_PASSWORD}&amp;#34; | base64)&amp;#34; &amp;gt;&amp;gt; .npmrc&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// This only works when BASIC realm is enabled on Nexus Repository Manager
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// If we are getting the following error:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="n">ERROR&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="n">npm&lt;/span> &lt;span class="n">ERR&lt;/span>&lt;span class="o">!&lt;/span> &lt;span class="n">code&lt;/span> &lt;span class="n">E401&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>&lt;span class="n">ERROR&lt;/span>&lt;span class="o">]&lt;/span> &lt;span class="n">npm&lt;/span> &lt;span class="n">ERR&lt;/span>&lt;span class="o">!&lt;/span> &lt;span class="n">Unable&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">authenticate&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nl">need:&lt;/span> &lt;span class="n">BASIC&lt;/span> &lt;span class="n">realm&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Sonatype Nexus Repository Manager&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// We need to configure .npmrc with authentication token
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">stage&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="s1">&amp;#39;NPM: Config&amp;#39;&lt;/span>&lt;span class="o">)&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">withCredentials&lt;/span>&lt;span class="o">([&lt;/span>&lt;span class="n">usernamePassword&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nl">credentialsId:&lt;/span> &lt;span class="n">nexusCredentialsId&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nl">passwordVariable:&lt;/span> &lt;span class="s1">&amp;#39;NEXUS_PASSWORD&amp;#39;&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nl">usernameVariable:&lt;/span> &lt;span class="s1">&amp;#39;NEXUS_USERNAME&amp;#39;&lt;/span>&lt;span class="o">)])&lt;/span> &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">def&lt;/span> &lt;span class="n">token&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sh&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nl">returnStdout:&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nl">script:&lt;/span> &lt;span class="s2">&amp;#34;set +x &amp;amp;&amp;amp; curl -s -k -H \&amp;#34;Accept: application/json\&amp;#34; -H \&amp;#34;Content-Type:application/json\&amp;#34; -X PUT --data &amp;#39;{\&amp;#34;name\&amp;#34;: \&amp;#34;$NEXUS_USERNAME\&amp;#34;, \&amp;#34;password\&amp;#34;: \&amp;#34;$NEXUS_PASSWORD\&amp;#34;}&amp;#39; https://nexus-repository.net:8088/repository/my-npm/-/user/org.couchdb.user:$NEXUS_USERNAME 2&amp;gt;&amp;amp;1 | grep -Po &amp;#39;(?&amp;lt;=\&amp;#34;token\&amp;#34;:\&amp;#34;)[^\&amp;#34;]*&amp;#39;&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sh&lt;/span> &lt;span class="s2">&amp;#34;set +x &amp;amp;&amp;amp; echo \&amp;#34;//nexus-repository.net:8088/repository/my-npm/:_authToken=$token\&amp;#34; &amp;gt;&amp;gt; .npmrc&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item></channel></rss>