3
0
Fork 0
mirror of https://code.forgejo.org/actions/checkout.git synced 2025-04-24 12:25:34 +00:00

add our feature

This commit is contained in:
alexanderkranga 2024-02-06 15:30:36 +02:00
parent b4ffde65f4
commit e72243fb91
7 changed files with 101 additions and 8 deletions

32
dist/index.js vendored
View file

@ -1226,6 +1226,17 @@ function getSource(settings) {
core.startGroup('Setting up auth');
yield authHelper.configureAuth();
core.endGroup();
if (settings.defaultRefOnError && settings.defaultRefOnError === true) {
// Configure default branch
core.startGroup('Setting up default branch');
if (settings.sshKey) {
settings.defaultBranch = yield git.getDefaultBranch(repositoryUrl);
}
else {
settings.defaultBranch = yield githubApiHelper.getDefaultBranch(settings.authToken, settings.repositoryOwner, settings.repositoryName);
}
core.endGroup();
}
// Determine the default branch
if (!settings.ref && !settings.commit) {
core.startGroup('Determining the default branch');
@ -1250,7 +1261,8 @@ function getSource(settings) {
else if (settings.sparseCheckout) {
fetchOptions.filter = 'blob:none';
}
if (settings.fetchDepth <= 0) {
if (settings.fetchDepth <= 0 ||
(settings.defaultRefOnError && settings.defaultRefOnError === true)) {
// Fetch all branches and tags
let refSpec = refHelper.getRefSpecForAllHistory(settings.ref, settings.commit);
yield git.fetch(refSpec, fetchOptions);
@ -1270,7 +1282,19 @@ function getSource(settings) {
core.endGroup();
// Checkout info
core.startGroup('Determining the checkout info');
const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
let checkoutInfo;
if (settings.defaultRefOnError && settings.defaultRefOnError === true) {
try {
checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
}
catch (error) {
core.info('Could not determine the checkout info. Trying the default repo branch');
checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.defaultBranch, settings.commit);
}
}
else {
checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
}
core.endGroup();
// LFS fetch
// Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time).
@ -1724,6 +1748,10 @@ function getInputs() {
}
core.debug(`ref = '${result.ref}'`);
core.debug(`commit = '${result.commit}'`);
// Default ref on error
result.defaultRefOnError =
(core.getInput('default-ref-on-error') || 'true').toUpperCase() === 'TRUE';
core.debug(`default-ref-on-error = '${result.defaultRefOnError}'`);
// Clean
result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE';
core.debug(`clean = ${result.clean}`);