@@ -462,6 +462,35 @@ protected List<Action> retrieveActions(@NonNull SCMHead head, SCMHeadEvent event
462
462
return result ;
463
463
}
464
464
465
+ @ NonNull
466
+ @ Override
467
+ public SCMRevision getTrustedRevision (@ NonNull SCMRevision revision , @ NonNull TaskListener listener )
468
+ throws IOException , InterruptedException {
469
+ if (revision instanceof PullRequestSCMRevision ) {
470
+ PullRequestSCMHead head = (PullRequestSCMHead ) revision .getHead ();
471
+ try (GiteaConnection c = gitea ().open ()) {
472
+ try (GiteaSCMSourceRequest request = new GiteaSCMSourceContext (null , SCMHeadObserver .none ())
473
+ .withTraits (getTraits ())
474
+ .newRequest (this , listener )) {
475
+ request .setConnection (c );
476
+ Set <String > names = new HashSet <>();
477
+ for (GiteaUser u : c .fetchCollaborators (giteaRepository )) {
478
+ names .add (u .getUsername ());
479
+ }
480
+ request .setCollaboratorNames (names );
481
+ if (request .isTrusted (head )) {
482
+ return revision ;
483
+ }
484
+ }
485
+ PullRequestSCMRevision rev = (PullRequestSCMRevision ) revision ;
486
+ listener .getLogger ().format ("Loading trusted files from base branch %s at %s rather than %s%n" ,
487
+ head .getTarget ().getName (), ((SCMRevisionImpl )rev .getTarget ()).getHash (), rev .getOrigin ().getHash ());
488
+ return rev .getTarget ();
489
+ }
490
+ }
491
+ return revision ;
492
+ }
493
+
465
494
@ NonNull
466
495
@ Override
467
496
public SCM build (@ NonNull SCMHead head , SCMRevision revision ) {
0 commit comments