}
private Git clone(Application application, File fileLocation) {
Git git = null;
try {
CloneCommand clone = Git.cloneRepository();
clone.setURI(application.getRepositoryUrl())
.setDirectory(fileLocation);
if (application.getRepositoryEncryptedUserName() != null
&& application.getRepositoryEncryptedPassword() != null) {
decryptRepositoryCredentials(application);
UsernamePasswordCredentialsProvider credentials = new UsernamePasswordCredentialsProvider(application.getRepositoryUserName(),
application.getRepositoryPassword());
clone.setCredentialsProvider(credentials);
}
if (application.getRepositoryBranch() != null) {
application.setRepositoryDBBranch(application.getRepositoryBranch());
clone.call()
.checkout()
.setCreateBranch(true)
.setName(application.getRepositoryBranch())
.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK)
.setStartPoint(application.getRepositoryBranch()).call();
} else {
git = clone.call();
}
} catch (WrongRepositoryStateException | InvalidConfigurationException | DetachedHeadException |
InvalidRemoteException | CanceledException | RefNotFoundException | NoHeadException |
RefAlreadyExistsException | CheckoutConflictException | InvalidRefNameException |
TransportException e) {