feat: add allow-override-on-pr input

This commit is contained in:
Sascha Bratton
2026-05-03 14:32:31 -04:00
parent f3ceefdc7e
commit d4dd38dcf1
5 changed files with 41 additions and 6 deletions

9
dist/index.js vendored
View File

@@ -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`);
}