Могут ли привязки ruver к Subversion использовать сохраненные учетные данные пользователя? - PullRequest
1 голос
/ 21 сентября 2011

Я пишу кроссплатформенный скрипт ruby ​​для управления некоторыми хранилищами Subversion. Первоначально я генерировал команды bash, но это оказалось очень недружественным для Windows. Затем я переписал свой сценарий, чтобы использовать привязки рубина SWIG, поставляемые с Subversion. Это прекрасно работает (что касается операций SVN) на всех необходимых платформах (Ubuntu, Fedora, OS X, Windows) с ruby ​​1.8.7.

Я использую гем svn_wc для абстрагирования части привязок, потому что я еще не понимаю низкоуровневый код.

Теперь моя проблема в том, что я должен предоставить учетные данные пользователя для привязок. svn_wc использует этот код :

ctx.add_simple_prompt_provider(0) do |cred, realm, username, may_save|
  cred.username = @svn_user
  cred.password = @svn_pass
  cred.may_save = false
end

Если @svn_user и @svn_pass равны нулю, привязки завершаются ошибкой сегментации:

~/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/svn/util.rb:86:
[BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10.8.0]

[1]    4381 abort      my_script.rb

Если я прокомментирую весь этот фрагмент кода, моя команда svn завершится с ошибкой:

cant get info: subversion/libsvn_ra_neon/util.c:608:
Svn::Error::RaNotAuthorized: OPTIONS of 'https://my.subversion.url':
authorization failed: Could not authenticate to server:
rejected Basic challenge (https://my.subversion.url) (SvnWc::RepoAccessError)

Я не знаю, для чего предназначен параметр may_save. Изменение его в true и отсутствие учетных данных все еще вызывает ошибку сегментации.

Мой сценарий должен использовать сохраненные, зашифрованные учетные данные так же, как двоичный файл командной строки. Я не хочу каждый раз вводить учетные данные или хранить их в незашифрованном файле конфигурации.

Я не нашел документации по этому поводу. Кто-нибудь знает, возможно ли это и как?

...