mirror of
https://github.com/actions/setup-node
synced 2025-04-09 18:35:51 +00:00
Merge e6b1dcc8ef
into a9893b0cfb
This commit is contained in:
commit
6ef9fd2a0d
5 changed files with 37 additions and 12 deletions
|
@ -25,6 +25,8 @@ inputs:
|
|||
description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
|
||||
cache-dependency-path:
|
||||
description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
|
||||
username:
|
||||
description: 'Used to specify username/password authentication for NPM, used for Azure DevOps Artifacts and registries which expect a username and password.'
|
||||
# TODO: add input to control forcing to pull from cloud or dist.
|
||||
# escape valve for someone having issues or needing the absolute latest which isn't cached yet
|
||||
outputs:
|
||||
|
|
18
dist/setup/index.js
vendored
18
dist/setup/index.js
vendored
|
@ -71049,15 +71049,15 @@ const os = __importStar(__nccwpck_require__(2037));
|
|||
const path = __importStar(__nccwpck_require__(1017));
|
||||
const core = __importStar(__nccwpck_require__(2186));
|
||||
const github = __importStar(__nccwpck_require__(5438));
|
||||
function configAuthentication(registryUrl, alwaysAuth) {
|
||||
function configAuthentication(registryUrl, alwaysAuth, username) {
|
||||
const npmrc = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc');
|
||||
if (!registryUrl.endsWith('/')) {
|
||||
registryUrl += '/';
|
||||
}
|
||||
writeRegistryToFile(registryUrl, npmrc, alwaysAuth);
|
||||
writeRegistryToFile(registryUrl, npmrc, alwaysAuth, username);
|
||||
}
|
||||
exports.configAuthentication = configAuthentication;
|
||||
function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) {
|
||||
function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth, username) {
|
||||
let scope = core.getInput('scope');
|
||||
if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
|
||||
scope = github.context.repo.owner;
|
||||
|
@ -71080,7 +71080,14 @@ function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) {
|
|||
});
|
||||
}
|
||||
// Remove http: or https: from front of registry.
|
||||
const authString = registryUrl.replace(/(^\w+:|^)/, '') + ':_authToken=${NODE_AUTH_TOKEN}';
|
||||
const registryPrefix = registryUrl.replace(/(^\w+:|^)/, '');
|
||||
if (username) {
|
||||
newContents += registryPrefix + `:username=${username}${os.EOL}`;
|
||||
newContents += registryPrefix + `:email=dummy value` + os.EOL;
|
||||
}
|
||||
const authString = username
|
||||
? registryPrefix + ':_password=${NODE_AUTH_TOKEN}'
|
||||
: registryPrefix + ':_authToken=${NODE_AUTH_TOKEN}';
|
||||
const registryString = `${scope}registry=${registryUrl}`;
|
||||
const alwaysAuthString = `always-auth=${alwaysAuth}`;
|
||||
newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`;
|
||||
|
@ -72084,8 +72091,9 @@ function run() {
|
|||
yield util_1.printEnvDetailsAndSetOutput();
|
||||
const registryUrl = core.getInput('registry-url');
|
||||
const alwaysAuth = core.getInput('always-auth');
|
||||
const username = core.getInput('username');
|
||||
if (registryUrl) {
|
||||
auth.configAuthentication(registryUrl, alwaysAuth);
|
||||
auth.configAuthentication(registryUrl, alwaysAuth, username);
|
||||
}
|
||||
if (cache && cache_utils_1.isCacheFeatureAvailable()) {
|
||||
const cacheDependencyPath = core.getInput('cache-dependency-path');
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/actions/setup-node.git"
|
||||
"url": "git+https://github.com/rapid-platform/setup-node.git"
|
||||
},
|
||||
"keywords": [
|
||||
"actions",
|
||||
|
|
|
@ -4,7 +4,11 @@ import * as path from 'path';
|
|||
import * as core from '@actions/core';
|
||||
import * as github from '@actions/github';
|
||||
|
||||
export function configAuthentication(registryUrl: string, alwaysAuth: string) {
|
||||
export function configAuthentication(
|
||||
registryUrl: string,
|
||||
alwaysAuth: string,
|
||||
username?: string
|
||||
) {
|
||||
const npmrc: string = path.resolve(
|
||||
process.env['RUNNER_TEMP'] || process.cwd(),
|
||||
'.npmrc'
|
||||
|
@ -13,13 +17,14 @@ export function configAuthentication(registryUrl: string, alwaysAuth: string) {
|
|||
registryUrl += '/';
|
||||
}
|
||||
|
||||
writeRegistryToFile(registryUrl, npmrc, alwaysAuth);
|
||||
writeRegistryToFile(registryUrl, npmrc, alwaysAuth, username);
|
||||
}
|
||||
|
||||
function writeRegistryToFile(
|
||||
registryUrl: string,
|
||||
fileLocation: string,
|
||||
alwaysAuth: string
|
||||
alwaysAuth: string,
|
||||
username?: string
|
||||
) {
|
||||
let scope: string = core.getInput('scope');
|
||||
if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
|
||||
|
@ -44,8 +49,17 @@ function writeRegistryToFile(
|
|||
});
|
||||
}
|
||||
// Remove http: or https: from front of registry.
|
||||
const authString: string =
|
||||
registryUrl.replace(/(^\w+:|^)/, '') + ':_authToken=${NODE_AUTH_TOKEN}';
|
||||
const registryPrefix = registryUrl.replace(/(^\w+:|^)/, '');
|
||||
|
||||
if (username) {
|
||||
newContents += registryPrefix + `:username=${username}${os.EOL}`;
|
||||
newContents += registryPrefix + `:email=dummy value` + os.EOL;
|
||||
}
|
||||
|
||||
const authString: string = username
|
||||
? registryPrefix + ':_password=${NODE_AUTH_TOKEN}'
|
||||
: registryPrefix + ':_authToken=${NODE_AUTH_TOKEN}';
|
||||
|
||||
const registryString = `${scope}registry=${registryUrl}`;
|
||||
const alwaysAuthString = `always-auth=${alwaysAuth}`;
|
||||
newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`;
|
||||
|
|
|
@ -55,8 +55,9 @@ export async function run() {
|
|||
|
||||
const registryUrl: string = core.getInput('registry-url');
|
||||
const alwaysAuth: string = core.getInput('always-auth');
|
||||
const username: string | undefined = core.getInput('username');
|
||||
if (registryUrl) {
|
||||
auth.configAuthentication(registryUrl, alwaysAuth);
|
||||
auth.configAuthentication(registryUrl, alwaysAuth, username);
|
||||
}
|
||||
|
||||
if (cache && isCacheFeatureAvailable()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue