mirror of
https://gitea.com/actions/dorny-paths-filter.git
synced 2026-05-16 11:48:18 +01:00
feat: add allow-override-on-pr input
This commit is contained in:
9
dist/index.js
vendored
9
dist/index.js
vendored
@@ -575,6 +575,7 @@ async function run() {
|
||||
const listFiles = core.getInput('list-files', { required: false }).toLowerCase() || 'none';
|
||||
const initialFetchDepth = parseInt(core.getInput('initial-fetch-depth', { required: false })) || 10;
|
||||
const predicateQuantifier = core.getInput('predicate-quantifier', { required: false }) || filter_1.PredicateQuantifier.SOME;
|
||||
const allowOverrideOnPr = core.getBooleanInput('allow-override-on-pr', { required: false });
|
||||
if (!isExportFormat(listFiles)) {
|
||||
core.setFailed(`Input parameter 'list-files' is set to invalid value '${listFiles}'`);
|
||||
return;
|
||||
@@ -586,7 +587,7 @@ async function run() {
|
||||
}
|
||||
const filterConfig = { predicateQuantifier };
|
||||
const filter = new filter_1.Filter(filtersYaml, filterConfig);
|
||||
const files = await getChangedFiles(token, base, ref, initialFetchDepth);
|
||||
const files = await getChangedFiles(token, base, ref, initialFetchDepth, allowOverrideOnPr);
|
||||
core.info(`Detected ${files.length} changed files`);
|
||||
const results = filter.match(files);
|
||||
exportResults(results, listFiles);
|
||||
@@ -607,7 +608,7 @@ function getConfigFileContent(configPath) {
|
||||
}
|
||||
return fs.readFileSync(configPath, { encoding: 'utf8' });
|
||||
}
|
||||
async function getChangedFiles(token, base, ref, initialFetchDepth) {
|
||||
async function getChangedFiles(token, base, ref, initialFetchDepth, allowOverrideOnPr) {
|
||||
var _a, _b;
|
||||
// if base is 'HEAD' only local uncommitted changes will be detected
|
||||
// This is the simplest case as we don't need to fetch more commits or evaluate current/before refs
|
||||
@@ -624,6 +625,10 @@ async function getChangedFiles(token, base, ref, initialFetchDepth) {
|
||||
case 'pull_request_review':
|
||||
case 'pull_request_review_comment':
|
||||
case 'pull_request_target': {
|
||||
if (allowOverrideOnPr && (base || ref)) {
|
||||
core.info(`'allow-override-on-pr' is enabled and base/ref were provided — skipping PR API and using git diff`);
|
||||
return getChangedFilesFromGit(base, ref, initialFetchDepth);
|
||||
}
|
||||
if (ref) {
|
||||
core.warning(`'ref' input parameter is ignored when action is triggered by pull request event`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user