@@ -191,24 +191,33 @@ public Optional<Execution> evaluate(ConditionContext conditionContext, TriggerCo
191191 return Optional .empty ();
192192 }
193193
194- if (toFire .size () > runContext .render (this .maxFiles ).as (Integer .class ).orElse (25 )) {
195- logger .warn ("Too many files to process, skipping" );
194+ int rMaxFiles = runContext .render (this .maxFiles ).as (Integer .class ).orElse (25 );
195+ java .util .List <TriggeredFile > limitedToFire = toFire ;
196+ java .util .List <File > limitedActionFiles = actionFiles ;
197+ if (toFire .size () > rMaxFiles ) {
198+ logger .warn ("Too many files to process ({}), limiting to {}" , toFire .size (), rMaxFiles );
199+ int limit = Math .min (rMaxFiles , toFire .size ());
200+ limitedToFire = toFire .subList (0 , limit );
201+ limitedActionFiles = actionFiles .subList (0 , Math .min (limit , actionFiles .size ()));
202+ }
203+
204+ if (limitedToFire .isEmpty ()) {
196205 return Optional .empty ();
197206 }
198207
199208 Downloads .Action selectedAction = this .action != null ?
200209 runContext .render (this .action ).as (Downloads .Action .class ).orElse (Downloads .Action .NONE ) :
201210 Downloads .Action .NONE ;
202211
203- java .util .List <File > filesToProcess = actionFiles .stream ()
212+ java .util .List <File > filesToProcess = limitedActionFiles .stream ()
204213 .filter (file -> !file .isDirectory ())
205214 .toList ();
206215
207216 if (selectedAction != Downloads .Action .NONE ) {
208217 Downloads .performAction (filesToProcess , selectedAction , this .moveDirectory , runContext );
209218 }
210219
211- return Optional .of (TriggerService .generateExecution (this , conditionContext , triggerContext , Output .builder ().files (toFire ).build ()));
220+ return Optional .of (TriggerService .generateExecution (this , conditionContext , triggerContext , Output .builder ().files (limitedToFire ).build ()));
212221 }
213222
214223 public enum ChangeType {
0 commit comments