mirror of
https://github.com/actions/checkout.git
synced 2024-12-27 01:30:35 +01:00
Add objectFormat setting to allow init()ing a repo with sha256
This commit is contained in:
parent
eef61447b9
commit
68a03db899
8 changed files with 120 additions and 39 deletions
14
README.md
14
README.md
|
@ -126,6 +126,11 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
||||||
# running from unless specified. Example URLs are https://github.com or
|
# running from unless specified. Example URLs are https://github.com or
|
||||||
# https://my-ghes-server.example.com
|
# https://my-ghes-server.example.com
|
||||||
github-server-url: ''
|
github-server-url: ''
|
||||||
|
|
||||||
|
# Use the given object format when creating local repository. Specifically, use
|
||||||
|
# 'sha256' to checkout a SHA-256 repository.
|
||||||
|
# Defualt: null
|
||||||
|
object-format: ''
|
||||||
```
|
```
|
||||||
<!-- end usage -->
|
<!-- end usage -->
|
||||||
|
|
||||||
|
@ -143,6 +148,7 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
||||||
- [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit)
|
- [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit)
|
||||||
- [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event)
|
- [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event)
|
||||||
- [Push a commit using the built-in token](#Push-a-commit-using-the-built-in-token)
|
- [Push a commit using the built-in token](#Push-a-commit-using-the-built-in-token)
|
||||||
|
- [Checkout SHA-256 repository](#checkout-sha-256-repository)
|
||||||
|
|
||||||
## Fetch only the root files
|
## Fetch only the root files
|
||||||
|
|
||||||
|
@ -288,6 +294,14 @@ jobs:
|
||||||
```
|
```
|
||||||
*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D
|
*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D
|
||||||
|
|
||||||
|
## Checkout SHA-256 repository
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
object-format: sha256
|
||||||
|
```
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
||||||
|
|
|
@ -824,7 +824,8 @@ async function setup(testName: string): Promise<void> {
|
||||||
sshUser: '',
|
sshUser: '',
|
||||||
workflowOrganizationId: 123456,
|
workflowOrganizationId: 123456,
|
||||||
setSafeDirectory: true,
|
setSafeDirectory: true,
|
||||||
githubServerUrl: githubServerUrl
|
githubServerUrl: githubServerUrl,
|
||||||
|
objectFormat: undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -375,4 +375,31 @@ describe('Test fetchDepth and fetchTags options', () => {
|
||||||
expect.any(Object)
|
expect.any(Object)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should call execGit wiwth the correct arguments when sha256 is used', async () => {
|
||||||
|
jest.spyOn(exec, 'exec').mockImplementation(mockExec)
|
||||||
|
|
||||||
|
const workingDirectory = 'test'
|
||||||
|
const lfs = false
|
||||||
|
const doSparseCheckout = false
|
||||||
|
git = await commandManager.createCommandManager(
|
||||||
|
workingDirectory,
|
||||||
|
lfs,
|
||||||
|
doSparseCheckout
|
||||||
|
)
|
||||||
|
|
||||||
|
await git.init({objectFormat: 'sha256'})
|
||||||
|
// await git.init({objectFormat: undefined})
|
||||||
|
|
||||||
|
expect(mockExec).toHaveBeenCalledWith(
|
||||||
|
expect.any(String),
|
||||||
|
[
|
||||||
|
'init',
|
||||||
|
'--object-format=sha256',
|
||||||
|
'test'
|
||||||
|
],
|
||||||
|
expect.any(Object)
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
89
dist/index.js
vendored
89
dist/index.js
vendored
|
@ -30,9 +30,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.directoryExistsSync = directoryExistsSync;
|
exports.fileExistsSync = exports.existsSync = exports.directoryExistsSync = void 0;
|
||||||
exports.existsSync = existsSync;
|
|
||||||
exports.fileExistsSync = fileExistsSync;
|
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
function directoryExistsSync(path, required) {
|
function directoryExistsSync(path, required) {
|
||||||
var _a;
|
var _a;
|
||||||
|
@ -60,6 +58,7 @@ function directoryExistsSync(path, required) {
|
||||||
}
|
}
|
||||||
throw new Error(`Directory '${path}' does not exist`);
|
throw new Error(`Directory '${path}' does not exist`);
|
||||||
}
|
}
|
||||||
|
exports.directoryExistsSync = directoryExistsSync;
|
||||||
function existsSync(path) {
|
function existsSync(path) {
|
||||||
var _a;
|
var _a;
|
||||||
if (!path) {
|
if (!path) {
|
||||||
|
@ -76,6 +75,7 @@ function existsSync(path) {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
exports.existsSync = existsSync;
|
||||||
function fileExistsSync(path) {
|
function fileExistsSync(path) {
|
||||||
var _a;
|
var _a;
|
||||||
if (!path) {
|
if (!path) {
|
||||||
|
@ -96,6 +96,7 @@ function fileExistsSync(path) {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
exports.fileExistsSync = fileExistsSync;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -138,7 +139,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.createAuthHelper = createAuthHelper;
|
exports.createAuthHelper = void 0;
|
||||||
const assert = __importStar(__nccwpck_require__(9491));
|
const assert = __importStar(__nccwpck_require__(9491));
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const exec = __importStar(__nccwpck_require__(1514));
|
const exec = __importStar(__nccwpck_require__(1514));
|
||||||
|
@ -155,6 +156,7 @@ const SSH_COMMAND_KEY = 'core.sshCommand';
|
||||||
function createAuthHelper(git, settings) {
|
function createAuthHelper(git, settings) {
|
||||||
return new GitAuthHelper(git, settings);
|
return new GitAuthHelper(git, settings);
|
||||||
}
|
}
|
||||||
|
exports.createAuthHelper = createAuthHelper;
|
||||||
class GitAuthHelper {
|
class GitAuthHelper {
|
||||||
constructor(gitCommandManager, gitSourceSettings) {
|
constructor(gitCommandManager, gitSourceSettings) {
|
||||||
this.insteadOfValues = [];
|
this.insteadOfValues = [];
|
||||||
|
@ -473,8 +475,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
|
exports.createCommandManager = exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
|
||||||
exports.createCommandManager = createCommandManager;
|
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const exec = __importStar(__nccwpck_require__(1514));
|
const exec = __importStar(__nccwpck_require__(1514));
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
|
@ -495,6 +496,7 @@ function createCommandManager(workingDirectory, lfs, doSparseCheckout) {
|
||||||
return yield GitCommandManager.createCommandManager(workingDirectory, lfs, doSparseCheckout);
|
return yield GitCommandManager.createCommandManager(workingDirectory, lfs, doSparseCheckout);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.createCommandManager = createCommandManager;
|
||||||
class GitCommandManager {
|
class GitCommandManager {
|
||||||
// Private constructor; use createCommandManager()
|
// Private constructor; use createCommandManager()
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -709,9 +711,13 @@ class GitCommandManager {
|
||||||
getWorkingDirectory() {
|
getWorkingDirectory() {
|
||||||
return this.workingDirectory;
|
return this.workingDirectory;
|
||||||
}
|
}
|
||||||
init() {
|
init(options) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
yield this.execGit(['init', this.workingDirectory]);
|
yield this.execGit([
|
||||||
|
'init',
|
||||||
|
...((options === null || options === void 0 ? void 0 : options.objectFormat) ? [`--object-format=${options.objectFormat}`] : []),
|
||||||
|
this.workingDirectory
|
||||||
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
isDetached() {
|
isDetached() {
|
||||||
|
@ -1018,7 +1024,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.prepareExistingDirectory = prepareExistingDirectory;
|
exports.prepareExistingDirectory = void 0;
|
||||||
const assert = __importStar(__nccwpck_require__(9491));
|
const assert = __importStar(__nccwpck_require__(9491));
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
|
@ -1122,6 +1128,7 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.prepareExistingDirectory = prepareExistingDirectory;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -1164,8 +1171,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getSource = getSource;
|
exports.cleanup = exports.getSource = void 0;
|
||||||
exports.cleanup = cleanup;
|
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const fsHelper = __importStar(__nccwpck_require__(7219));
|
const fsHelper = __importStar(__nccwpck_require__(7219));
|
||||||
const gitAuthHelper = __importStar(__nccwpck_require__(2565));
|
const gitAuthHelper = __importStar(__nccwpck_require__(2565));
|
||||||
|
@ -1236,7 +1242,7 @@ function getSource(settings) {
|
||||||
// Initialize the repository
|
// Initialize the repository
|
||||||
if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) {
|
if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) {
|
||||||
core.startGroup('Initializing the repository');
|
core.startGroup('Initializing the repository');
|
||||||
yield git.init();
|
yield git.init({ objectFormat: settings.objectFormat });
|
||||||
yield git.remoteAdd('origin', repositoryUrl);
|
yield git.remoteAdd('origin', repositoryUrl);
|
||||||
core.endGroup();
|
core.endGroup();
|
||||||
}
|
}
|
||||||
|
@ -1371,6 +1377,7 @@ function getSource(settings) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.getSource = getSource;
|
||||||
function cleanup(repositoryPath) {
|
function cleanup(repositoryPath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
// Repo exists?
|
// Repo exists?
|
||||||
|
@ -1406,6 +1413,7 @@ function cleanup(repositoryPath) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.cleanup = cleanup;
|
||||||
function getGitCommandManager(settings) {
|
function getGitCommandManager(settings) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.info(`Working directory is '${settings.repositoryPath}'`);
|
core.info(`Working directory is '${settings.repositoryPath}'`);
|
||||||
|
@ -1544,8 +1552,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.downloadRepository = downloadRepository;
|
exports.getDefaultBranch = exports.downloadRepository = void 0;
|
||||||
exports.getDefaultBranch = getDefaultBranch;
|
|
||||||
const assert = __importStar(__nccwpck_require__(9491));
|
const assert = __importStar(__nccwpck_require__(9491));
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
|
@ -1609,6 +1616,7 @@ function downloadRepository(authToken, owner, repo, ref, commit, repositoryPath,
|
||||||
yield io.rmRF(extractPath);
|
yield io.rmRF(extractPath);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.downloadRepository = downloadRepository;
|
||||||
/**
|
/**
|
||||||
* Looks up the default branch name
|
* Looks up the default branch name
|
||||||
*/
|
*/
|
||||||
|
@ -1647,6 +1655,7 @@ function getDefaultBranch(authToken, owner, repo, baseUrl) {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.getDefaultBranch = getDefaultBranch;
|
||||||
function downloadArchive(authToken, owner, repo, ref, commit, baseUrl) {
|
function downloadArchive(authToken, owner, repo, ref, commit, baseUrl) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const octokit = github.getOctokit(authToken, {
|
const octokit = github.getOctokit(authToken, {
|
||||||
|
@ -1705,7 +1714,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getInputs = getInputs;
|
exports.getInputs = void 0;
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const fsHelper = __importStar(__nccwpck_require__(7219));
|
const fsHelper = __importStar(__nccwpck_require__(7219));
|
||||||
const github = __importStar(__nccwpck_require__(5438));
|
const github = __importStar(__nccwpck_require__(5438));
|
||||||
|
@ -1831,9 +1840,18 @@ function getInputs() {
|
||||||
// Determine the GitHub URL that the repository is being hosted from
|
// Determine the GitHub URL that the repository is being hosted from
|
||||||
result.githubServerUrl = core.getInput('github-server-url');
|
result.githubServerUrl = core.getInput('github-server-url');
|
||||||
core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
|
core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
|
||||||
|
// Object format
|
||||||
|
const objectFormat = core.getInput('object-format');
|
||||||
|
if (objectFormat) {
|
||||||
|
if (objectFormat != 'sha1' && objectFormat != 'sha256') {
|
||||||
|
throw Error(`Invalid object format '${objectFormat}'`);
|
||||||
|
}
|
||||||
|
result.objectFormat = objectFormat;
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.getInputs = getInputs;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -1965,12 +1983,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.tagsRefSpec = void 0;
|
exports.checkCommitInfo = exports.testRef = exports.getRefSpec = exports.getRefSpecForAllHistory = exports.getCheckoutInfo = exports.tagsRefSpec = void 0;
|
||||||
exports.getCheckoutInfo = getCheckoutInfo;
|
|
||||||
exports.getRefSpecForAllHistory = getRefSpecForAllHistory;
|
|
||||||
exports.getRefSpec = getRefSpec;
|
|
||||||
exports.testRef = testRef;
|
|
||||||
exports.checkCommitInfo = checkCommitInfo;
|
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const github = __importStar(__nccwpck_require__(5438));
|
const github = __importStar(__nccwpck_require__(5438));
|
||||||
const url_helper_1 = __nccwpck_require__(9437);
|
const url_helper_1 = __nccwpck_require__(9437);
|
||||||
|
@ -2024,6 +2037,7 @@ function getCheckoutInfo(git, ref, commit) {
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.getCheckoutInfo = getCheckoutInfo;
|
||||||
function getRefSpecForAllHistory(ref, commit) {
|
function getRefSpecForAllHistory(ref, commit) {
|
||||||
const result = ['+refs/heads/*:refs/remotes/origin/*', exports.tagsRefSpec];
|
const result = ['+refs/heads/*:refs/remotes/origin/*', exports.tagsRefSpec];
|
||||||
if (ref && ref.toUpperCase().startsWith('REFS/PULL/')) {
|
if (ref && ref.toUpperCase().startsWith('REFS/PULL/')) {
|
||||||
|
@ -2032,6 +2046,7 @@ function getRefSpecForAllHistory(ref, commit) {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
exports.getRefSpecForAllHistory = getRefSpecForAllHistory;
|
||||||
function getRefSpec(ref, commit) {
|
function getRefSpec(ref, commit) {
|
||||||
if (!ref && !commit) {
|
if (!ref && !commit) {
|
||||||
throw new Error('Args ref and commit cannot both be empty');
|
throw new Error('Args ref and commit cannot both be empty');
|
||||||
|
@ -2080,6 +2095,7 @@ function getRefSpec(ref, commit) {
|
||||||
return [`+${ref}:${ref}`];
|
return [`+${ref}:${ref}`];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
exports.getRefSpec = getRefSpec;
|
||||||
/**
|
/**
|
||||||
* Tests whether the initial fetch created the ref at the expected commit
|
* Tests whether the initial fetch created the ref at the expected commit
|
||||||
*/
|
*/
|
||||||
|
@ -2123,6 +2139,7 @@ function testRef(git, ref, commit) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.testRef = testRef;
|
||||||
function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref, commit, baseUrl) {
|
function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref, commit, baseUrl) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
var _a;
|
var _a;
|
||||||
|
@ -2188,6 +2205,7 @@ function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.checkCommitInfo = checkCommitInfo;
|
||||||
function fromPayload(path) {
|
function fromPayload(path) {
|
||||||
return select(github.context.payload, path);
|
return select(github.context.payload, path);
|
||||||
}
|
}
|
||||||
|
@ -2212,12 +2230,13 @@ function select(obj, path) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.escape = escape;
|
exports.escape = void 0;
|
||||||
function escape(value) {
|
function escape(value) {
|
||||||
return value.replace(/[^a-zA-Z0-9_]/g, x => {
|
return value.replace(/[^a-zA-Z0-9_]/g, x => {
|
||||||
return `\\${x}`;
|
return `\\${x}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.escape = escape;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -2260,8 +2279,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.RetryHelper = void 0;
|
exports.execute = exports.RetryHelper = void 0;
|
||||||
exports.execute = execute;
|
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const defaultMaxAttempts = 3;
|
const defaultMaxAttempts = 3;
|
||||||
const defaultMinSeconds = 10;
|
const defaultMinSeconds = 10;
|
||||||
|
@ -2313,6 +2331,7 @@ function execute(action) {
|
||||||
return yield retryHelper.execute(action);
|
return yield retryHelper.execute(action);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.execute = execute;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -2346,11 +2365,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.SshKnownHostsPath = exports.SshKeyPath = exports.PostSetSafeDirectory = exports.RepositoryPath = exports.IsPost = void 0;
|
exports.setSafeDirectory = exports.setSshKnownHostsPath = exports.setSshKeyPath = exports.setRepositoryPath = exports.SshKnownHostsPath = exports.SshKeyPath = exports.PostSetSafeDirectory = exports.RepositoryPath = exports.IsPost = void 0;
|
||||||
exports.setRepositoryPath = setRepositoryPath;
|
|
||||||
exports.setSshKeyPath = setSshKeyPath;
|
|
||||||
exports.setSshKnownHostsPath = setSshKnownHostsPath;
|
|
||||||
exports.setSafeDirectory = setSafeDirectory;
|
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
/**
|
/**
|
||||||
* Indicates whether the POST action is running
|
* Indicates whether the POST action is running
|
||||||
|
@ -2378,24 +2393,28 @@ exports.SshKnownHostsPath = core.getState('sshKnownHostsPath');
|
||||||
function setRepositoryPath(repositoryPath) {
|
function setRepositoryPath(repositoryPath) {
|
||||||
core.saveState('repositoryPath', repositoryPath);
|
core.saveState('repositoryPath', repositoryPath);
|
||||||
}
|
}
|
||||||
|
exports.setRepositoryPath = setRepositoryPath;
|
||||||
/**
|
/**
|
||||||
* Save the SSH key path so the POST action can retrieve the value.
|
* Save the SSH key path so the POST action can retrieve the value.
|
||||||
*/
|
*/
|
||||||
function setSshKeyPath(sshKeyPath) {
|
function setSshKeyPath(sshKeyPath) {
|
||||||
core.saveState('sshKeyPath', sshKeyPath);
|
core.saveState('sshKeyPath', sshKeyPath);
|
||||||
}
|
}
|
||||||
|
exports.setSshKeyPath = setSshKeyPath;
|
||||||
/**
|
/**
|
||||||
* Save the SSH known hosts path so the POST action can retrieve the value.
|
* Save the SSH known hosts path so the POST action can retrieve the value.
|
||||||
*/
|
*/
|
||||||
function setSshKnownHostsPath(sshKnownHostsPath) {
|
function setSshKnownHostsPath(sshKnownHostsPath) {
|
||||||
core.saveState('sshKnownHostsPath', sshKnownHostsPath);
|
core.saveState('sshKnownHostsPath', sshKnownHostsPath);
|
||||||
}
|
}
|
||||||
|
exports.setSshKnownHostsPath = setSshKnownHostsPath;
|
||||||
/**
|
/**
|
||||||
* Save the set-safe-directory input so the POST action can retrieve the value.
|
* Save the set-safe-directory input so the POST action can retrieve the value.
|
||||||
*/
|
*/
|
||||||
function setSafeDirectory() {
|
function setSafeDirectory() {
|
||||||
core.saveState('setSafeDirectory', 'true');
|
core.saveState('setSafeDirectory', 'true');
|
||||||
}
|
}
|
||||||
|
exports.setSafeDirectory = setSafeDirectory;
|
||||||
// Publish a variable so that when the POST action runs, it can determine it should run the cleanup logic.
|
// Publish a variable so that when the POST action runs, it can determine it should run the cleanup logic.
|
||||||
// This is necessary since we don't have a separate entry point.
|
// This is necessary since we don't have a separate entry point.
|
||||||
if (!exports.IsPost) {
|
if (!exports.IsPost) {
|
||||||
|
@ -2434,10 +2453,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getFetchUrl = getFetchUrl;
|
exports.isGhes = exports.getServerApiUrl = exports.getServerUrl = exports.getFetchUrl = void 0;
|
||||||
exports.getServerUrl = getServerUrl;
|
|
||||||
exports.getServerApiUrl = getServerApiUrl;
|
|
||||||
exports.isGhes = isGhes;
|
|
||||||
const assert = __importStar(__nccwpck_require__(9491));
|
const assert = __importStar(__nccwpck_require__(9491));
|
||||||
const url_1 = __nccwpck_require__(7310);
|
const url_1 = __nccwpck_require__(7310);
|
||||||
function getFetchUrl(settings) {
|
function getFetchUrl(settings) {
|
||||||
|
@ -2453,12 +2469,14 @@ function getFetchUrl(settings) {
|
||||||
// "origin" is SCHEME://HOSTNAME[:PORT]
|
// "origin" is SCHEME://HOSTNAME[:PORT]
|
||||||
return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
|
return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
|
||||||
}
|
}
|
||||||
|
exports.getFetchUrl = getFetchUrl;
|
||||||
function getServerUrl(url) {
|
function getServerUrl(url) {
|
||||||
let urlValue = url && url.trim().length > 0
|
let urlValue = url && url.trim().length > 0
|
||||||
? url
|
? url
|
||||||
: process.env['GITHUB_SERVER_URL'] || 'https://github.com';
|
: process.env['GITHUB_SERVER_URL'] || 'https://github.com';
|
||||||
return new url_1.URL(urlValue);
|
return new url_1.URL(urlValue);
|
||||||
}
|
}
|
||||||
|
exports.getServerUrl = getServerUrl;
|
||||||
function getServerApiUrl(url) {
|
function getServerApiUrl(url) {
|
||||||
let apiUrl = 'https://api.github.com';
|
let apiUrl = 'https://api.github.com';
|
||||||
if (isGhes(url)) {
|
if (isGhes(url)) {
|
||||||
|
@ -2467,10 +2485,12 @@ function getServerApiUrl(url) {
|
||||||
}
|
}
|
||||||
return apiUrl;
|
return apiUrl;
|
||||||
}
|
}
|
||||||
|
exports.getServerApiUrl = getServerApiUrl;
|
||||||
function isGhes(url) {
|
function isGhes(url) {
|
||||||
const ghUrl = getServerUrl(url);
|
const ghUrl = getServerUrl(url);
|
||||||
return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
|
return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
|
||||||
}
|
}
|
||||||
|
exports.isGhes = isGhes;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
@ -2513,7 +2533,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.getOrganizationId = getOrganizationId;
|
exports.getOrganizationId = void 0;
|
||||||
const core = __importStar(__nccwpck_require__(2186));
|
const core = __importStar(__nccwpck_require__(2186));
|
||||||
const fs = __importStar(__nccwpck_require__(7147));
|
const fs = __importStar(__nccwpck_require__(7147));
|
||||||
/**
|
/**
|
||||||
|
@ -2542,6 +2562,7 @@ function getOrganizationId() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
exports.getOrganizationId = getOrganizationId;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
|
@ -42,7 +42,7 @@ export interface IGitCommandManager {
|
||||||
): Promise<void>
|
): Promise<void>
|
||||||
getDefaultBranch(repositoryUrl: string): Promise<string>
|
getDefaultBranch(repositoryUrl: string): Promise<string>
|
||||||
getWorkingDirectory(): string
|
getWorkingDirectory(): string
|
||||||
init(): Promise<void>
|
init(options?: { objectFormat?: string }): Promise<void>
|
||||||
isDetached(): Promise<boolean>
|
isDetached(): Promise<boolean>
|
||||||
lfsFetch(ref: string): Promise<void>
|
lfsFetch(ref: string): Promise<void>
|
||||||
lfsInstall(): Promise<void>
|
lfsInstall(): Promise<void>
|
||||||
|
@ -327,8 +327,12 @@ class GitCommandManager {
|
||||||
return this.workingDirectory
|
return this.workingDirectory
|
||||||
}
|
}
|
||||||
|
|
||||||
async init(): Promise<void> {
|
async init(options?: { objectFormat?: string }): Promise<void> {
|
||||||
await this.execGit(['init', this.workingDirectory])
|
await this.execGit([
|
||||||
|
'init',
|
||||||
|
...(options?.objectFormat ? [`--object-format=${options.objectFormat}`] : []),
|
||||||
|
this.workingDirectory
|
||||||
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
async isDetached(): Promise<boolean> {
|
async isDetached(): Promise<boolean> {
|
||||||
|
|
|
@ -110,7 +110,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
||||||
!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))
|
!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))
|
||||||
) {
|
) {
|
||||||
core.startGroup('Initializing the repository')
|
core.startGroup('Initializing the repository')
|
||||||
await git.init()
|
await git.init({ objectFormat: settings.objectFormat })
|
||||||
await git.remoteAdd('origin', repositoryUrl)
|
await git.remoteAdd('origin', repositoryUrl)
|
||||||
core.endGroup()
|
core.endGroup()
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,4 +118,9 @@ export interface IGitSourceSettings {
|
||||||
* User override on the GitHub Server/Host URL that hosts the repository to be cloned
|
* User override on the GitHub Server/Host URL that hosts the repository to be cloned
|
||||||
*/
|
*/
|
||||||
githubServerUrl: string | undefined
|
githubServerUrl: string | undefined
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object format used for the repo, if it is not default
|
||||||
|
*/
|
||||||
|
objectFormat: 'sha1' | 'sha256' | undefined
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,5 +161,14 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
||||||
result.githubServerUrl = core.getInput('github-server-url')
|
result.githubServerUrl = core.getInput('github-server-url')
|
||||||
core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
|
core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
|
||||||
|
|
||||||
|
// Object format
|
||||||
|
const objectFormat = core.getInput('object-format')
|
||||||
|
if (objectFormat) {
|
||||||
|
if (objectFormat != 'sha1' && objectFormat != 'sha256') {
|
||||||
|
throw Error(`Invalid object format '${objectFormat}'`)
|
||||||
|
}
|
||||||
|
result.objectFormat = objectFormat
|
||||||
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue