From e8b6c55ab9a33b609672cd08cec6bad7c1312d0f Mon Sep 17 00:00:00 2001 From: edram Date: Fri, 22 Oct 2021 14:54:03 +0800 Subject: Fix mirrored http(s) with a username and password This fixes #1059 --- src/main/java/com/gitblit/service/MirrorService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gitblit/service/MirrorService.java b/src/main/java/com/gitblit/service/MirrorService.java index cf9ccb55..eb247fc0 100644 --- a/src/main/java/com/gitblit/service/MirrorService.java +++ b/src/main/java/com/gitblit/service/MirrorService.java @@ -27,11 +27,14 @@ import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.RefUpdate.Result; import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.StoredConfig; +import org.eclipse.jgit.transport.CredentialsProvider; import org.eclipse.jgit.transport.FetchResult; import org.eclipse.jgit.transport.ReceiveCommand; import org.eclipse.jgit.transport.ReceiveCommand.Type; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.TrackingRefUpdate; +import org.eclipse.jgit.transport.URIish; +import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -146,7 +149,12 @@ public class MirrorService implements Runnable { logger.debug("checking {} remote {} for ref updates", repositoryName, mirror.getName()); final boolean testing = false; Git git = new Git(repository); - FetchResult result = git.fetch().setRemote(mirror.getName()).setDryRun(testing).call(); + CredentialsProvider creds = null; + URIish fetchUri = mirror.getURIs().get(0); + if (fetchUri.getUser() != null && fetchUri.getPass() != null) { + creds = new UsernamePasswordCredentialsProvider(fetchUri.getUser(), fetchUri.getPass()); + } + FetchResult result = git.fetch().setCredentialsProvider(creds).setRemote(mirror.getName()).setDryRun(testing).call(); Collection refUpdates = result.getTrackingRefUpdates(); if (refUpdates.size() > 0) { ReceiveCommand ticketBranchCmd = null; -- cgit v1.2.3