UNPKG

@process-engine/ci_tools

Version:
68 lines 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupNpm = exports.setupGit = exports.run = void 0; const fs_1 = require("fs"); const git_1 = require("../../git/git"); const shell_1 = require("../../cli/shell"); const BADGE = '[setup-git-and-npm]\t'; const NPMRC_FILE = '.npmrc'; const NPMRC_REGISTRY = '//registry.npmjs.org/'; const GIT_USER_EMAIL = 'ci@process-engine.io'; const GIT_USER_NAME = 'ProcessEngine Bot'; const GIT_REMOTE_NAME = 'origin'; const TOKEN_MASK = '*****'; /** * Sets up Git remotes, Npm registry and access tokens based on environement variables. */ async function run(...args) { setupNpm(); setupGit(); return true; } exports.run = run; function setupGit() { if (!(0, git_1.isGitHubRemote)()) { console.log(`${BADGE}Not a GitHub remote, leaving Git config as is.`); return; } if (!(process.env.GH_USER && process.env.GH_TOKEN)) { console.log(`${BADGE}Did not find env variables GH_USER and GH_TOKEN, leaving Git config as is.`); return; } const noGitUserEmail = (0, shell_1.sh)('git config user.email').trim() === ''; if (noGitUserEmail) { console.log(`${BADGE}No Git user email found, setting it to '${GIT_USER_EMAIL}'.`); (0, shell_1.sh)(`git config user.email "${GIT_USER_EMAIL}"`); } const noGitUserName = (0, shell_1.sh)('git config user.name').trim() === ''; if (noGitUserName) { console.log(`${BADGE}No Git user name found, setting it to '${GIT_USER_NAME}'.`); (0, shell_1.sh)(`git config user.name "${GIT_USER_NAME}"`); } if (process.env.GH_USER != null && process.env.GH_TOKEN != null) { const repoNameWithOwner = (0, git_1.getCurrentRepoNameWithOwner)(); const maskedRemoteUrl = `https://${process.env.GH_USER}:${TOKEN_MASK}@github.com/${repoNameWithOwner}.git`; const remoteUrl = maskedRemoteUrl.replace(TOKEN_MASK, process.env.GH_TOKEN); (0, shell_1.sh)(`git remote set-url ${GIT_REMOTE_NAME} ${remoteUrl}`); console.log(`${BADGE}Found env variables GH_USER and GH_TOKEN, setting remote '${GIT_REMOTE_NAME}' to:`); console.log(`${BADGE}${maskedRemoteUrl}`); console.log(''); } } exports.setupGit = setupGit; function setupNpm() { if ((0, fs_1.existsSync)(NPMRC_FILE)) { console.log(`${BADGE}${NPMRC_FILE} exists, leaving npm config as is.`); return; } if (process.env.NPM_TOKEN) { const content = `${NPMRC_REGISTRY}:_authToken=\${NPM_TOKEN}`; (0, fs_1.writeFileSync)(NPMRC_FILE, content); console.log(`${BADGE}Found env variable NPM_TOKEN, but did not find file ${NPMRC_FILE}`); console.log(`${BADGE}${NPMRC_FILE} was created with this content (npm will swap in NPM_TOKEN on publish):`); console.log(`${BADGE}${content}`); console.log(''); } } exports.setupNpm = setupNpm; //# sourceMappingURL=setup-git-and-npm-connections.js.map