Added registry support to npm test.
This commit is contained in:
42
npm/npm-test/configure-auth.sh
Normal file
42
npm/npm-test/configure-auth.sh
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
ACTION="$1"
|
||||
AUTH_URLS="$2"
|
||||
API_KEYS="$3"
|
||||
|
||||
if [ "$ACTION" == "add" ]; then
|
||||
# Parse newline-separated URLs and tokens into arrays
|
||||
IFS=$'\n' read -rd '' -a URLS <<< "$AUTH_URLS" || true
|
||||
IFS=$'\n' read -rd '' -a KEYS <<< "$API_KEYS" || true
|
||||
|
||||
# Verify arrays have matching lengths
|
||||
if [ ${#URLS[@]} -ne ${#KEYS[@]} ]; then
|
||||
echo "Error: Number of authUrls (${#URLS[@]}) does not match number of apiKeys (${#KEYS[@]})"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Configure authentication for each registry
|
||||
for i in "${!URLS[@]}"; do
|
||||
URL="${URLS[$i]}"
|
||||
KEY="${KEYS[$i]}"
|
||||
|
||||
# Skip empty entries
|
||||
if [ -z "$URL" ] || [ -z "$KEY" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Remove protocol from URL for npm config
|
||||
REGISTRY_PATH=$(echo "$URL" | sed -E 's|https?://||')
|
||||
|
||||
echo "Configuring authentication for: $URL"
|
||||
npm config set --location=project "//${REGISTRY_PATH}:_authToken" "$KEY"
|
||||
done
|
||||
elif [ "$ACTION" == "remove" ]; then
|
||||
# Clean up project .npmrc
|
||||
rm -f .npmrc
|
||||
echo "Removed npm authentication configuration"
|
||||
else
|
||||
echo "Error: Invalid action '$ACTION'. Use 'add' or 'remove'"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user