Датчик SCM завершается с ошибкой E170001 при использовании svn через ssh

Поскольку сонар перешел на использование SVNKit, я не могу заставить работать анализ вины для рабочих копий, используя svn+ssh. Это не удается с:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project example: Error when executing blame for file src/main/java/com/acme/Foo.java: svn: E170001: Authentication required for 'svn@svn+ssh://svn.acme.com' 

Команда svn работает корректно при вызове из командной строки, также успешно подключается к ssh [email protected]. Я использую SVNKit в Eclipse с этим репозиторием, и он также отлично работает (хотя мне пришлось указать, где искать закрытый ключ).

Когда я пытаюсь отладить выполнение сонара, я вижу, что закрытый ключ просто не установлен:

myPreviousAuthentication    SVNSSHAuthentication  (id=392)  
    myAgentProxy    null    
    myIsPartial false   
    myIsStorageAllowed  false   
    myKind  "svn.ssh" (id=387)  
    myPassphrase    null    
    myPassword  (id=608)    
    myPortNumber    -1  
    myPrivateKeyFile    null    
    myPrivateKeyValue   null    
    myURL   SVNURL  (id=345)    
    myUserName  "jbochenski" (id=610)   
myPreviousErrorMessage  SVNErrorMessage  (id=388)   
    dontShowErrorCode   false   
    myChildErrorMessage null    
    myErrorCode SVNErrorCode  (id=614)  
    myMessage   "Credentials rejected by SSH server." (id=613)  
    myObjects   Object[0]  (id=616) 
    myThrowable null    
    myType  0   

URL, имя пользователя и пароль верны, но, как видите, myPrivateKeyFile это null.

Я попытался установить путь к закрытому ключу с помощью MAVEN_OPTS='-Dsvnkit.ssh2.key=/home/acme/.ssh/id_rsa' в соответствии с документацией SVNKit. , но это не имеет никакого эффекта.

Если запустить это на другой рабочей копии, извлеченной через https, анализ работает нормально, что еще раз подтверждает, что это проблема с аутентификацией ssh.


person Jakub Bochenski    schedule 16.02.2016    source источник


Ответы (1)


Это действительно недостающая функция. Я создал следующий тикет: https://jira.sonarsource.com/browse/SONARSCSVN-9< /а>

Не могли бы вы протестировать эту обновленную версию плагина: https://github.com/SonarSource/sonar-scm-svn/releases/download/1.3-rc1/sonar-scm-svn-plugin-1.3-SNAPSHOT.jar

Вы должны иметь возможность передавать дополнительные параметры (или устанавливать их в пользовательском интерфейсе):

-Dsonar.svn.privateKeyPath=<path to private key>
-Dsonar.svn.passphrase.secure=<optional passphrase>

Сообщайте о любых успехах/проблемах непосредственно в запросе на вытягивание, чтобы не загрязнять SO: https://github.com/SonarSource/sonar-scm-svn/pull/4

person Julien H. - SonarSource Team    schedule 17.02.2016
comment
Почему вы имеете в виду не загрязнять ТАК? Кроме того, почему персонал сонара никогда не отвечает на вопросы об их продукте? - person Jakub Bochenski; 22.02.2016
comment
Извините, но я очень минимальный пользователь StackOverflow. Под не загрязнять SO я имел в виду, что ранее нас обвиняли в использовании SO в качестве чата. Чтобы избежать этого, я предложил продолжить обсуждение возможного решения этой проблемы в пул-реквесте, который больше подходит для обсуждения. Что касается голосов, я могу говорить только за себя: я обычно голосую за вопрос, когда сталкиваюсь с той же проблемой, что и пользователь. Если вы имеете в виду, что мы должны поощрять хорошие вопросы о SQ, голосуя за них, то вы, вероятно, правы (опять же, я не настолько эксперт). Во всяком случае, вот мой +1 ;) - person Julien H. - SonarSource Team; 22.02.2016
comment
Да, голосование имеет решающее значение для позиционирования в поиске, и это мой первый ответ на вопрос о гидролокаторе, хотя я уже подал несколько stackoverflow.com/search?q=user:1237617+[sonarqube] - person Jakub Bochenski; 22.02.2016
comment
@ Алекс, я могу подтвердить, что исправление работает для меня .. Вы уверены, что используете правильные учетные данные? Например. зачем вам использовать пользователя по имени сонар на Дженкинсе? Обратите внимание, что указанный sonar.svn.username должен быть пользователем ssh, используемым в туннеле, а не svn коммитером — сначала это меня сбило с толку. - person Jakub Bochenski; 11.03.2016
comment
@JakubBochenski Извините, тем временем я удалил свой комментарий (из-за просьбы не загрязнять ТАК. Да, я уверен, что это правильные учетные данные - я знаю, что именование не самое лучшее: D Я задам свой вопрос на github, как было предложено . - person Alex; 11.03.2016