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