public class LfsConnectionFactory
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
LfsConnectionFactory.AuthCache |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
SCHEME_HTTPS |
private static java.lang.String |
SCHEME_SSH |
private static int |
SSH_AUTH_TIMEOUT_SECONDS |
private static java.util.Map<java.lang.String,LfsConnectionFactory.AuthCache> |
sshAuthCache |
Constructor and Description |
---|
LfsConnectionFactory() |
Modifier and Type | Method and Description |
---|---|
private static java.lang.String |
discoverLfsUrl(Repository db,
java.lang.String purpose,
java.util.Map<java.lang.String,java.lang.String> additionalHeaders,
java.lang.String remoteUrl) |
private static java.lang.String |
extractProjectName(URIish u) |
static HttpConnection |
getLfsConnection(Repository db,
java.lang.String method,
java.lang.String purpose)
Determine URL of LFS server by looking into config parameters lfs.url,
lfs.[remote].url or remote.[remote].url.
|
static HttpConnection |
getLfsContentConnection(Repository repo,
Protocol.Action action,
java.lang.String method)
Create a connection for the specified
Protocol.Action . |
private static java.lang.String |
getLfsUrl(Repository db,
java.lang.String purpose,
java.util.Map<java.lang.String,java.lang.String> additionalHeaders) |
private static Protocol.ExpiringAction |
getSshAuthentication(Repository db,
java.lang.String purpose,
java.lang.String remoteUrl,
URIish u) |
static Protocol.Request |
toRequest(java.lang.String operation,
LfsPointer... resources) |
private static final int SSH_AUTH_TIMEOUT_SECONDS
private static final java.lang.String SCHEME_HTTPS
private static final java.lang.String SCHEME_SSH
private static final java.util.Map<java.lang.String,LfsConnectionFactory.AuthCache> sshAuthCache
public static HttpConnection getLfsConnection(Repository db, java.lang.String method, java.lang.String purpose) throws java.io.IOException
db
- the repository to work withmethod
- the method (GET,PUT,...) of the request this connection will
be used forpurpose
- the action, e.g. Protocol.OPERATION_DOWNLOADjava.io.IOException
private static java.lang.String getLfsUrl(Repository db, java.lang.String purpose, java.util.Map<java.lang.String,java.lang.String> additionalHeaders) throws LfsConfigInvalidException
LfsConfigInvalidException
private static java.lang.String discoverLfsUrl(Repository db, java.lang.String purpose, java.util.Map<java.lang.String,java.lang.String> additionalHeaders, java.lang.String remoteUrl) throws java.net.URISyntaxException, java.io.IOException, CommandFailedException
java.net.URISyntaxException
java.io.IOException
CommandFailedException
private static Protocol.ExpiringAction getSshAuthentication(Repository db, java.lang.String purpose, java.lang.String remoteUrl, URIish u) throws java.io.IOException, CommandFailedException
java.io.IOException
CommandFailedException
@NonNull public static HttpConnection getLfsContentConnection(Repository repo, Protocol.Action action, java.lang.String method) throws java.io.IOException
Protocol.Action
.repo
- the repo to fetch required configuration fromaction
- the action for which to create a connectionmethod
- the target method (GET or PUT)java.io.IOException
- in case of any error.private static java.lang.String extractProjectName(URIish u)
public static Protocol.Request toRequest(java.lang.String operation, LfsPointer... resources)
operation
- the operation to perform, e.g. Protocol.OPERATION_DOWNLOADresources
- the LFS resources affected