mirror of
https://github.com/actions/checkout.git
synced 2024-12-27 09:35:23 +01:00
Implement allow-path-outside-workspace
This commit is contained in:
parent
cbb722410c
commit
d1d381abe7
4 changed files with 11 additions and 1 deletions
|
@ -74,6 +74,10 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
||||||
# Relative path under $GITHUB_WORKSPACE to place the repository
|
# Relative path under $GITHUB_WORKSPACE to place the repository
|
||||||
path: ''
|
path: ''
|
||||||
|
|
||||||
|
# Allow the checked-out repository to be placed outside of the workspace
|
||||||
|
# Default: false
|
||||||
|
allow-path-outside-workspace: ''
|
||||||
|
|
||||||
# Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching
|
# Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching
|
||||||
# Default: true
|
# Default: true
|
||||||
clean: ''
|
clean: ''
|
||||||
|
|
|
@ -54,6 +54,10 @@ inputs:
|
||||||
default: true
|
default: true
|
||||||
path:
|
path:
|
||||||
description: 'Relative path under $GITHUB_WORKSPACE to place the repository'
|
description: 'Relative path under $GITHUB_WORKSPACE to place the repository'
|
||||||
|
allow-path-outside-workspace:
|
||||||
|
description: Allow the checked-out repository to be placed outside of the workspace.
|
||||||
|
default: false
|
||||||
|
required: false
|
||||||
clean:
|
clean:
|
||||||
description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching'
|
description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching'
|
||||||
default: true
|
default: true
|
||||||
|
|
3
dist/index.js
vendored
3
dist/index.js
vendored
|
@ -1737,7 +1737,8 @@ function getInputs() {
|
||||||
// Repository path
|
// Repository path
|
||||||
result.repositoryPath = core.getInput('path') || '.';
|
result.repositoryPath = core.getInput('path') || '.';
|
||||||
result.repositoryPath = path.resolve(githubWorkspacePath, result.repositoryPath);
|
result.repositoryPath = path.resolve(githubWorkspacePath, result.repositoryPath);
|
||||||
if (!(result.repositoryPath + path.sep).startsWith(githubWorkspacePath + path.sep)) {
|
if (!core.getInput('allow-path-outside-workspace') &&
|
||||||
|
!(result.repositoryPath + path.sep).startsWith(githubWorkspacePath + path.sep)) {
|
||||||
throw new Error(`Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'`);
|
throw new Error(`Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'`);
|
||||||
}
|
}
|
||||||
// Workflow repository?
|
// Workflow repository?
|
||||||
|
|
|
@ -42,6 +42,7 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
||||||
result.repositoryPath
|
result.repositoryPath
|
||||||
)
|
)
|
||||||
if (
|
if (
|
||||||
|
!core.getInput('allow-path-outside-workspace') &&
|
||||||
!(result.repositoryPath + path.sep).startsWith(
|
!(result.repositoryPath + path.sep).startsWith(
|
||||||
githubWorkspacePath + path.sep
|
githubWorkspacePath + path.sep
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue