Ошибка Subversion Jenkins - E200015: учетных данных не требуется. Ошибка аутентификации
Я обновил плагин Subversion от jenkins до версии 2.2
Теперь я получаю следующую ошибку для репозиториев, которые строят в первый раз после обновления и для репозиториев, когда что-то внутри внешнего изменилось. Он работает для всех остальных построек, как ожидалось.
Я попытался добавить дополнительные учетные данные, но это не помогло.
Теперь я надеюсь, что у кого-то есть идея, что еще можно попытаться исправить эту проблему аннулирования.
Ошибка:
hudson.util.IOException2: revision check failed on http://XXX/svn/XXX/Website/Config/trunk
at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:189)
at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:132)
at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:738)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:899)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580)
at hudson.model.Run.execute(Run.java:1670)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /svn/XXX/Website/Config/trunk failed
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:180)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:160)
at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:35)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:967)
at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:872)
at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:177)
... 11 more
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:694)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
... 29 more
Ответы
Ответ 1
Хорошо после многих комментариев об официальной ошибке report мы смогли решить эту проблему.
Итак, чтобы заставить его работать, вам нужно обновить до последней версии 2.3-snaptshot плагина subversion,
которые можно найти здесь:
https://jenkins.ci.cloudbees.com/job/plugins/job/subversion-plugin/
(Загрузите файл .hpi и установите его на своих дженкинсах)
- После этого вы должны исправить свою сборку. Я написал небольшой учебник о том, как вы можете сделать это здесь.
- открыть конфигурацию сборки
- прокрутите вниз до раздела "Управление исходным кодом"
- нажмите кнопку "Добавить дополнительные учетные данные..."
- определить как область конкретный идентификатор для нашего svn-сервера → (
<prot://ip:port > Company Subversion Repository
)
-
- Если он должен работать для другого svn, вам нужно использовать область этого сервера.
-
- проверить репо на этом сервере через командную строку →
svn --username {username} --password {password} checkout prot://ip:port/svn/repo
< - вы можете отменить это после запуска проверки
-
- прочитайте все сферы, доступные на вашем mac с помощью этого cmd →
find ~/.subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
-
-
- есть еще один вариант, чтобы получить realmstring. на ПК, который раньше не был связан с svn, сделайте следующее в терминологии:
"svn info prot://ip: port/pathtorepo" → это выведет что-то вроде "Область аутентификации: репозиторий компании Subversion"
- выберите учетные данные →
buildmaster/****** (<prot://ip:port> Company Subversion Repository)
ПРИМЕЧАНИЕ. Если вы используете svn + ssh, ваша область будет выглядеть как "svn + ssh://server-name" без двойных кавычек. Не требуется никаких заостренных скобок, имени порта или области.
- сохранить и быть счастливым!
Ответ 2
У меня была такая же ошибка. Поскольку svn repo защищен паролем. когда я добавляю учетные данные и использую их для проверки svn, он работает нормально.
![enter image description here]()
Ответ 3
Я получал точно такое же исключение, и это было из-за использования параметра build в пути репозитория, например:
http://reposerver/svn/project/${SVN_BRANCH}
даже в случае, если ${SVN_BRANCH} был правильно установлен в 'trunk' Он не работал
когда я изменил путь к репозиторию:
http://reposerver/svn/project/trunk
все отлично работает сейчас
Эта проблема возникла после обновления svn-плагина с 1.54 до 2.2, поэтому похоже, что в новой версии плагина svn jenkins есть некоторая ошибка
Ответ 4
Я хотел бы подчеркнуть точку в ответе mikepenz ':
В текстовом поле Realm вашей конфигурации заданий (после нажатия Add additional credentials...) вы не вводите только свою область SVN, а только ваше царство и полный URL вашего внешнего репо. Это сработало.
Итак, эта часть конфигурации вашей работы выглядит следующим образом:
![enter image description here]()
Edit
Как оказалось, вышеизложенное не улучшило ситуацию: ошибка учетных данных все еще происходила и, кроме того, совершает внешние репозитории, не запускала Jenkins для создания программного обеспечения.
Я выполнил рекомендацию здесь (в которой также упоминаются проблемы безопасности с описанным выше подходом) и используются модули в Дженкинсе для моих внешних репозиториев.
Так моя конфигурация модуля ищет внешнее репо:
![jenkins external repo как модуль]()
Ответ 5
Когда вы обновляете плагин subversion, вы должны сделать одно из приведенных ниже.
- Очистка рабочего пространства jenkins, потому что metainfo связан со старой версией subversion
или
- Обновление рабочего пространства вручную, оно предлагает вам обновить версию клиента. Нажмите "Да"