From da1e46a921040ac1da88ad0811a5d0da7e65200f Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Wed, 21 Oct 2026 01:29:00 +0530 Subject: [PATCH] Scope npm registry in drone template to @aetoskia The registry was set globally ( egistry=...), which forced all public transitive deps through the private Verdaccio. Verdaccio has no uplink, so pm install 404'd on public packages. Scope the registry to @aetoskia:registry=... so public deps resolve from npmjs and only @aetoskia/* go to the private registry. --- standards/mcp/templates/drone/npm-lib.yaml | 12 ++++++++---- standards/src/templates/drone/npm-lib.yaml | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/standards/mcp/templates/drone/npm-lib.yaml b/standards/mcp/templates/drone/npm-lib.yaml index 2ab3a5b..c2ff550 100644 --- a/standards/mcp/templates/drone/npm-lib.yaml +++ b/standards/mcp/templates/drone/npm-lib.yaml @@ -30,7 +30,8 @@ steps: exit 1 fi NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > /tmp/.npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > /tmp/.npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..." if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then @@ -56,7 +57,8 @@ steps: exit 1 fi NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > .npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > .npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc - npm install - echo "Running quality gate..." @@ -82,7 +84,8 @@ steps: commands: - | NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > .npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > .npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc - echo "Publishing to private npm at $NPM_REPO_URL ..." - npm publish --access restricted @@ -122,7 +125,8 @@ steps: - apk add --no-cache git - | NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > /tmp/.npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > /tmp/.npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc - | set -e diff --git a/standards/src/templates/drone/npm-lib.yaml b/standards/src/templates/drone/npm-lib.yaml index 2ab3a5b..c2ff550 100644 --- a/standards/src/templates/drone/npm-lib.yaml +++ b/standards/src/templates/drone/npm-lib.yaml @@ -30,7 +30,8 @@ steps: exit 1 fi NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > /tmp/.npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > /tmp/.npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..." if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then @@ -56,7 +57,8 @@ steps: exit 1 fi NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > .npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > .npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc - npm install - echo "Running quality gate..." @@ -82,7 +84,8 @@ steps: commands: - | NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > .npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > .npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc - echo "Publishing to private npm at $NPM_REPO_URL ..." - npm publish --access restricted @@ -122,7 +125,8 @@ steps: - apk add --no-cache git - | NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||') - echo "registry=$NPM_REPO_URL" > /tmp/.npmrc + NPM_SCOPE="@$(node -p "require('./package.json').name.split('/')[0].replace(/^@/,'')")" + echo "$NPM_SCOPE:registry=$NPM_REPO_URL" > /tmp/.npmrc echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc - | set -e