@Override
    public boolean pull() throws Exception {
        val providers = credentialsProvider.toArray(CredentialsProvider[]::new);
        val remotes = gitInstance.getRepository().getRemoteNames();

        if (remotes.isEmpty()) {
            LOGGER.debug("No remote repositories are specified to pull changes");
            return false;
        }

        return gitInstance.pull()
            .setTimeout((int) timeoutInSeconds)
            .setFastForward(MergeCommand.FastForwardMode.FF)
            .setRebase(rebase)
            .setTransportConfigCallback(transportConfigCallback)
            .setProgressMonitor(new LoggingGitProgressMonitor())
            .setCredentialsProvider(new ChainingCredentialsProvider(providers))
            .call()
            .isSuccessful();
    }
This is {@link DefaultGitRepository}.

@author Misagh Moayyed
@since 6.1.0
support/cas-server-support-git-core/src/main/java/org/apereo/cas/git/DefaultGitRepository.java