1 package cn.home1.cloud.config.server.environment; 2 3 import cn.home1.cloud.config.server.security.ConfigSecurity; 4 5 import org.eclipse.jgit.api.TransportConfigCallback; 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Value; 8 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; 9 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; 10 import org.springframework.cloud.config.server.environment.EnvironmentRepository; 11 import org.springframework.context.annotation.Bean; 12 import org.springframework.context.annotation.Configuration; 13 import org.springframework.core.env.ConfigurableEnvironment; 14 15 @ConditionalOnProperty(prefix = "spring.cloud.config.server.git", name = "parent-support-enabled", havingValue = "true") 16 @ConditionalOnMissingBean(EnvironmentRepository.class) 17 @Configuration 18 public class GitParentSupportConfiguration { 19 20 @Value("${spring.cloud.config.server.default-label:master}") 21 private String defaultLabel; 22 23 @Value("${spring.cloud.config.server.git.delete-untracked-branches:true}") 24 private Boolean deleteUntrackedBranches; 25 26 @Autowired 27 private ConfigurableEnvironment environment; 28 29 @Value("${spring.cloud.config.server.git.force-pull:true}") 30 private Boolean forcePull; 31 32 @Value("${spring.cloud.config.server.git.strict-host-key-checking:false}") 33 private Boolean strictHostKeyChecking; 34 35 @Value("${spring.cloud.config.server.git.timeout:30}") 36 private Integer timeout; 37 38 @Autowired(required = false) 39 private TransportConfigCallback transportConfigCallback; 40 41 @Bean 42 public ConfigSecurity configSecurity() { 43 return new ConfigSecurity(); 44 } 45 46 @Bean 47 @ConditionalOnMissingBean(EnvironmentRepository.class) 48 public EnvironmentRepository environmentRepository() { 49 final GitParentSupportMultipleJGitEnvironmentRepository repository = 50 new GitParentSupportMultipleJGitEnvironmentRepository(this.environment); 51 52 repository.setConfigSecurity(this.configSecurity()); 53 54 repository.setDefaultLabel(this.defaultLabel); 55 repository.setDeleteUntrackedBranches(this.deleteUntrackedBranches); 56 repository.setForcePull(this.forcePull); 57 repository.setStrictHostKeyChecking(this.strictHostKeyChecking); 58 repository.setTimeout(this.timeout); 59 60 repository.setTransportConfigCallback(this.transportConfigCallback); 61 62 return repository; 63 } 64 }