@process-engine/ci_tools
Version:
CI tools for process-engine.io
68 lines • 2.97 kB
JavaScript
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
;