diff options
Diffstat (limited to 'dist/index.js')
| -rw-r--r-- | dist/index.js | 99 |
1 files changed, 52 insertions, 47 deletions
diff --git a/dist/index.js b/dist/index.js index c6444b5..380d8c3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4838,7 +4838,7 @@ class GitCommandManager { } config(configKey, configValue) { return __awaiter(this, void 0, void 0, function* () { - yield this.execGit(['config', configKey, configValue]); + yield this.execGit(['config', '--local', configKey, configValue]); }); } configExists(configKey) { @@ -4846,7 +4846,7 @@ class GitCommandManager { const pattern = configKey.replace(/[^a-zA-Z0-9_]/g, x => { return `\\${x}`; }); - const output = yield this.execGit(['config', '--name-only', '--get-regexp', pattern], true); + const output = yield this.execGit(['config', '--local', '--name-only', '--get-regexp', pattern], true); return output.exitCode === 0; }); } @@ -4932,19 +4932,19 @@ class GitCommandManager { } tryConfigUnset(configKey) { return __awaiter(this, void 0, void 0, function* () { - const output = yield this.execGit(['config', '--unset-all', configKey], true); + const output = yield this.execGit(['config', '--local', '--unset-all', configKey], true); return output.exitCode === 0; }); } tryDisableAutomaticGarbageCollection() { return __awaiter(this, void 0, void 0, function* () { - const output = yield this.execGit(['config', 'gc.auto', '0'], true); + const output = yield this.execGit(['config', '--local', 'gc.auto', '0'], true); return output.exitCode === 0; }); } tryGetFetchUrl() { return __awaiter(this, void 0, void 0, function* () { - const output = yield this.execGit(['config', '--get', 'remote.origin.url'], true); + const output = yield this.execGit(['config', '--local', '--get', 'remote.origin.url'], true); if (output.exitCode !== 0) { return ''; } @@ -5121,7 +5121,7 @@ function getSource(settings) { // Downloading using REST API core.info(`The repository will be downloaded using the GitHub REST API`); core.info(`To create a local Git repository instead, add Git ${gitCommandManager.MinimumGitVersion} or higher to the PATH`); - yield githubApiHelper.downloadRepository(settings.accessToken, settings.repositoryOwner, settings.repositoryName, settings.ref, settings.commit, settings.repositoryPath); + yield githubApiHelper.downloadRepository(settings.authToken, settings.repositoryOwner, settings.repositoryName, settings.ref, settings.commit, settings.repositoryPath); } else { // Save state for POST action @@ -5137,30 +5137,34 @@ function getSource(settings) { } // Remove possible previous extraheader yield removeGitConfig(git, authConfigKey); - // Add extraheader (auth) - const base64Credentials = Buffer.from(`x-access-token:${settings.accessToken}`, 'utf8').toString('base64'); - core.setSecret(base64Credentials); - const authConfigValue = `AUTHORIZATION: basic ${base64Credentials}`; - yield git.config(authConfigKey, authConfigValue); - // LFS install - if (settings.lfs) { - yield git.lfsInstall(); - } - // Fetch - const refSpec = refHelper.getRefSpec(settings.ref, settings.commit); - yield git.fetch(settings.fetchDepth, refSpec); - // Checkout info - const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit); - // LFS fetch - // Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time). - // Explicit lfs fetch will fetch lfs objects in parallel. - if (settings.lfs) { - yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref); + try { + // Config auth token + yield configureAuthToken(git, settings.authToken); + // LFS install + if (settings.lfs) { + yield git.lfsInstall(); + } + // Fetch + const refSpec = refHelper.getRefSpec(settings.ref, settings.commit); + yield git.fetch(settings.fetchDepth, refSpec); + // Checkout info + const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit); + // LFS fetch + // Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time). + // Explicit lfs fetch will fetch lfs objects in parallel. + if (settings.lfs) { + yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref); + } + // Checkout + yield git.checkout(checkoutInfo.ref, checkoutInfo.startPoint); + // Dump some info about the checked out commit + yield git.log1(); + } + finally { + if (!settings.persistCredentials) { + yield removeGitConfig(git, authConfigKey); + } } - // Checkout - yield git.checkout(checkoutInfo.ref, checkoutInfo.startPoint); - // Dump some info about the checked out commit - yield git.log1(); } }); } @@ -5265,23 +5269,21 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean) { } }); } +function configureAuthToken(git, authToken) { + return __awaiter(this, void 0, void 0, function* () { + // Add extraheader (auth) + const base64Credentials = Buffer.from(`x-access-token:${authToken}`, 'utf8').toString('base64'); + core.setSecret(base64Credentials); + const authConfigValue = `AUTHORIZATION: basic ${base64Credentials}`; + yield git.config(authConfigKey, authConfigValue); + }); +} function removeGitConfig(git, configKey) { return __awaiter(this, void 0, void 0, function* () { if ((yield git.configExists(configKey)) && !(yield git.tryConfigUnset(configKey))) { // Load the config contents - core.warning(`Failed to remove '${configKey}' from the git config. Attempting to remove the config value by editing the file directly.`); - const configPath = path.join(git.getWorkingDirectory(), '.git', 'config'); - fsHelper.fileExistsSync(configPath); - let contents = fs.readFileSync(configPath).toString() || ''; - // Filter - only includes lines that do not contain the config key - const upperConfigKey = configKey.toUpperCase(); - const split = contents - .split('\n') - .filter(x => !x.toUpperCase().includes(upperConfigKey)); - contents = split.join('\n'); - // Rewrite the config file - fs.writeFileSync(configPath, contents); + core.warning(`Failed to remove '${configKey}' from the git config`); } }); } @@ -8403,12 +8405,12 @@ const retryHelper = __importStar(__webpack_require__(587)); const toolCache = __importStar(__webpack_require__(533)); const v4_1 = __importDefault(__webpack_require__(826)); const IS_WINDOWS = process.platform === 'win32'; -function downloadRepository(accessToken, owner, repo, ref, commit, repositoryPath) { +function downloadRepository(authToken, owner, repo, ref, commit, repositoryPath) { return __awaiter(this, void 0, void 0, function* () { // Download the archive let archiveData = yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () { core.info('Downloading the archive'); - return yield downloadArchive(accessToken, owner, repo, ref, commit); + return yield downloadArchive(authToken, owner, repo, ref, commit); })); // Write archive to disk core.info('Writing archive to disk'); @@ -8449,9 +8451,9 @@ function downloadRepository(accessToken, owner, repo, ref, commit, repositoryPat }); } exports.downloadRepository = downloadRepository; -function downloadArchive(accessToken, owner, repo, ref, commit) { +function downloadArchive(authToken, owner, repo, ref, commit) { return __awaiter(this, void 0, void 0, function* () { - const octokit = new github.GitHub(accessToken); + const octokit = new github.GitHub(authToken); const params = { owner: owner, repo: repo, @@ -12764,8 +12766,11 @@ function getInputs() { // LFS result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE'; core.debug(`lfs = ${result.lfs}`); - // Access token - result.accessToken = core.getInput('token'); + // Auth token + result.authToken = core.getInput('token'); + // Persist credentials + result.persistCredentials = + (core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE'; return result; } exports.getInputs = getInputs; |
