@ -467,7 +467,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , ( { value : true } ) ) ;
exports . createCommandManager = exports . MinimumGit Version = void 0 ;
exports . createCommandManager = exports . MinimumGit SparseCheckoutVersion = exports . MinimumGit Version = void 0 ;
const core = _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;
const exec = _ _importStar ( _ _nccwpck _require _ _ ( 1514 ) ) ;
const fs = _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;
@ -480,7 +480,9 @@ const retryHelper = __importStar(__nccwpck_require__(2155));
const git _version _1 = _ _nccwpck _require _ _ ( 3142 ) ;
// Auth header not supported before 2.9
// Wire protocol v2 not supported before 2.18
// sparse-checkout not [well-]supported before 2.28 (see https://github.com/actions/checkout/issues/1386)
exports . MinimumGitVersion = new git _version _1 . GitVersion ( '2.18' ) ;
exports . MinimumGitSparseCheckoutVersion = new git _version _1 . GitVersion ( '2.28' ) ;
function createCommandManager ( workingDirectory , lfs , doSparseCheckout ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return yield GitCommandManager . createCommandManager ( workingDirectory , lfs , doSparseCheckout ) ;
@ -498,6 +500,7 @@ class GitCommandManager {
this . lfs = false ;
this . doSparseCheckout = false ;
this . workingDirectory = '' ;
this . gitVersion = new git _version _1 . GitVersion ( ) ;
}
branchDelete ( remote , branch ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
@ -850,6 +853,11 @@ class GitCommandManager {
return output . exitCode === 0 ;
} ) ;
}
version ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return this . gitVersion ;
} ) ;
}
static createCommandManager ( workingDirectory , lfs , doSparseCheckout ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const result = new GitCommandManager ( ) ;
@ -901,21 +909,21 @@ class GitCommandManager {
this . gitPath = yield io . which ( 'git' , true ) ;
// Git version
core . debug ( 'Getting git version' ) ;
let gitVersion = new git _version _1 . GitVersion ( ) ;
this . gitVersion = new git _version _1 . GitVersion ( ) ;
let gitOutput = yield this . execGit ( [ 'version' ] ) ;
let stdout = gitOutput . stdout . trim ( ) ;
if ( ! stdout . includes ( '\n' ) ) {
const match = stdout . match ( /\d+\.\d+(\.\d+)?/ ) ;
if ( match ) {
gitVersion = new git _version _1 . GitVersion ( match [ 0 ] ) ;
this . gitVersion = new git _version _1 . GitVersion ( match [ 0 ] ) ;
}
}
if ( ! gitVersion . isValid ( ) ) {
if ( ! this . gitVersion . isValid ( ) ) {
throw new Error ( 'Unable to determine git version' ) ;
}
// Minimum git version
if ( ! gitVersion . checkMinimum ( exports . MinimumGitVersion ) ) {
throw new Error ( ` Minimum required git version is ${ exports . MinimumGitVersion } . Your git (' ${ this . gitPath } ') is ${ gitVersion } ` ) ;
if ( ! this . gitVersion . checkMinimum ( exports . MinimumGitVersion ) ) {
throw new Error ( ` Minimum required git version is ${ exports . MinimumGitVersion } . Your git (' ${ this . gitPath } ') is ${ this . gitVersion } ` ) ;
}
if ( this . lfs ) {
// Git-lfs version
@ -943,14 +951,12 @@ class GitCommandManager {
}
this . doSparseCheckout = doSparseCheckout ;
if ( this . doSparseCheckout ) {
// The `git sparse-checkout` command was introduced in Git v2.25.0
const minimumGitSparseCheckoutVersion = new git _version _1 . GitVersion ( '2.25' ) ;
if ( ! gitVersion . checkMinimum ( minimumGitSparseCheckoutVersion ) ) {
throw new Error ( ` Minimum Git version required for sparse checkout is ${ minimumGitSparseCheckoutVersion } . Your git (' ${ this . gitPath } ') is ${ gitVersion } ` ) ;
if ( ! this . gitVersion . checkMinimum ( exports . MinimumGitSparseCheckoutVersion ) ) {
throw new Error ( ` Minimum Git version required for sparse checkout is ${ exports . MinimumGitSparseCheckoutVersion } . Your git (' ${ this . gitPath } ') is ${ this . gitVersion } ` ) ;
}
}
// Set the user agent
const gitHttpUserAgent = ` git/ ${ gitVersion } (github-actions-checkout) ` ;
const gitHttpUserAgent = ` git/ ${ this . gitVersion } (github-actions-checkout) ` ;
core . debug ( ` Set git useragent to: ${ gitHttpUserAgent } ` ) ;
this . gitEnv [ 'GIT_HTTP_USER_AGENT' ] = gitHttpUserAgent ;
} ) ;
@ -1155,6 +1161,7 @@ const path = __importStar(__nccwpck_require__(1017));
const refHelper = _ _importStar ( _ _nccwpck _require _ _ ( 8601 ) ) ;
const stateHelper = _ _importStar ( _ _nccwpck _require _ _ ( 8647 ) ) ;
const urlHelper = _ _importStar ( _ _nccwpck _require _ _ ( 9437 ) ) ;
const git _command _manager _1 = _ _nccwpck _require _ _ ( 738 ) ;
function getSource ( settings ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
// Repository URL
@ -1288,7 +1295,11 @@ function getSource(settings) {
}
// Sparse checkout
if ( ! settings . sparseCheckout ) {
yield git . disableSparseCheckout ( ) ;
let gitVersion = yield git . version ( ) ;
// no need to disable sparse-checkout if the installed git runtime doesn't even support it.
if ( gitVersion . checkMinimum ( git _command _manager _1 . MinimumGitSparseCheckoutVersion ) ) {
yield git . disableSparseCheckout ( ) ;
}
}
else {
core . startGroup ( 'Setting up sparse checkout' ) ;