Spring Cloud Config - Git Ошибки репозитория - PullRequest
0 голосов
/ 10 апреля 2020

Spring Cloud Config Framework:

Я пытаюсь интегрировать конфигурацию Spring Cloud в java проекте с внутренним хранилищем git, которое является bitbucket. По сути, в разных случаях я чаще сталкиваюсь с двумя ошибками.

2020-04-11 17:08:59.265  WARN 2792 --- [           main] .c.s.e.MultipleJGitEnvironmentRepository : Could not fetch remote for master remote: https://user@bitbucket.org/workspace/config-repo.git

В приведенном выше примере он использует кэшированную версию и запуск сервера tomcat / undertow без проблем.

2020-04-11 17:09:03.774  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/api-gateway.yml
2020-04-11 17:09:03.774  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/discovery-service.yml
2020-04-11 17:09:03.775  INFO 2792 --- [           main] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/var/folders/6m/1cgw7zvn3rsb8j5kskflhvrr0000gn/T/config-repo-2822438633438126334/config-service.yml

Git Версия:

git version 2.24.0

Ошибка 1: git -upload-pack

2020- 04-11 00:00:20 - ПРЕДУПРЕЖДЕНИЕ Произошла ошибка при клонировании в базовый каталог.

org.eclipse.jgit.api.errors.TransportException: https://<username>@bitbucket.org/<workspace>/config-repo.git: git-upload-pack not permitted on 'https://beatles89@bitbucket.org/workspace/config-repo.git/'

Запуск сервера конфигурации Spring Cloud, и я получил эту ошибку случайно. Покопавшись в этой проблеме, я обнаружил, что git -upload-pack не поддерживается в bitbucket. Но сообщалось, что 2 года go здесь , и было предложено вернуть версию GIT.

Ошибка 2: аутентификация не поддерживается

org.eclipse.jgit.api.errors.TransportException: https://bitbucket.org/user/repo.git: authentication not supported

Эта ошибка появляется, когда я нажимаю /refresh на приводе, чтобы получить обновленные свойства из репозитория удаленной конфигурации. Иногда он работает без каких-либо ошибок, а иногда выдает ошибку выше.

curl localhost:8060/refresh -d {} -H "Content-Type: application/json"

Refuator Actre sh Ошибка команды:

{"timestamp":"2020-04-10T16:35:41.144+0000","status":500,"error":"Internal Server Error","message":"Request processing failed; nested exception is org.springframework.cloud.config.server.environment.NoSuchRepositoryException: Cannot clone or checkout repository: https://beatles89@bitbucket.org/augmentedcloud/ac-config-repo.git","path":"/refresh"}

Примечание: В качестве примечания я клонировал указанный репозиторий отдельно для тестирования, и он работал без каких-либо проблем с аутентификацией.

1 Ответ

0 голосов
/ 21 апреля 2020

Spring Cloud Config Framework

Spring Cloud Config Framework в основном предоставляет git в качестве внутреннего хранилища для извлечения / загрузки .properties из удаленного / кэша. Вы должны предоставить определение базового каталога с write разрешениями для git для клонирования / извлечения .properties с удаленного компьютера.

spring:
  cloud:
    config:
      server:
        git:
          basedir: ${AC_CONFIG_SERVICE_GIT_BASE_DIR}
          uri: ${AC_CONFIG_SERVICE_GIT_REMOTE_URI}
          username: ${AC_CONFIG_SERVICE_GIT_REMOTE_USER}
          password: ${AC_CONFIG_SERVICE_GIT_REMOTE_PASSWORD}
          passphrase: ${AC_CONFIG_SERVICE_GIT_REMOTE_PASSPHRASE}
          skip-ssl-validation: true
          timeout: 10

Примечание: В противном случае, на при каждом запуске сервера он либо жалуется на .properties с разными ошибками, либо загружает кэшированную версию .properties из локального репозитория. По умолчанию basedir для чтения из этого местоположения /var/tmp и spring cloud config framework ищет разрешения write для родительского каталога, которые в данном случае /var - Подсказка: Меры предосторожности при срабатывании .

Чтобы быть в безопасности и не хотеть испортить ваш OSX, определите одно из ваших собственных местоположений для basedir, например: /Users/<....>/Documents/tmp. Потому что каждый раз git выполняет поиск в удаленном репозитории для нового изменения , и, если он найден, он сбрасывает новый .properties, который требует удаления предыдущих файлов.

С тех пор, Я определил basedir не обнаружил никаких ошибок из Spring Cloud Configuration Framework в журналах.

...