/**
* Copyright 2005-2015 Red Hat, Inc.
* <p>
* Red Hat licenses this file to you under the Apache License, version
* 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package io.fabric8.project.support;
import io.fabric8.repo.git.GitRepoClient;
import io.fabric8.utils.Strings;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.transport.CredentialsProvider;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
/**
*/
public class UserDetails {
private static final transient Logger LOG = LoggerFactory.getLogger(UserDetails.class);
private final String internalAddress;
private final String email;
private String user;
private String password;
private String address;
private String branch = "master";
private File sshPrivateKey;
private File sshPublicKey;
public UserDetails(String address, String internalAddress, String user, String password, String email) {
this.internalAddress = internalAddress;
this.user = user;
this.password = password;
this.address = address;
this.email = email;
}
public UserDetails createAnonymousDetails() {
String dummyPassword = "";
return new UserDetails(address, internalAddress, user, dummyPassword, email);
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
/**
* Returns the address of the gogs REST API
*/
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getInternalAddress() {
return internalAddress;
}
public String getBranch() {
return branch;
}
public void setBranch(String branch) {
this.branch = branch;
}
public GitRepoClient createRepoClient() {
LOG.info("creating git repository client at: " + internalAddress);
return new GitRepoClient(internalAddress, user, password);
}
public CredentialsProvider createCredentialsProvider() {
return new UsernamePasswordCredentialsProvider(user, password) {
@Override
public boolean isInteractive() {
return false;
}
@Override
public String toString() {
return "UsernamePasswordCredentialsProvider{user: " + getUser() + ", password length: " + (Strings.isNullOrBlank(password) ? 0 : password.length()) + "}";
}
};
}
public PersonIdent createPersonIdent() {
return new PersonIdent(user, email);
}
public File getSshPrivateKey() {
return sshPrivateKey;
}
public void setSshPrivateKey(File sshPrivateKey) {
this.sshPrivateKey = sshPrivateKey;
}
public File getSshPublicKey() {
return sshPublicKey;
}
public void setSshPublicKey(File sshPublicKey) {
this.sshPublicKey = sshPublicKey;
}
}