Заставить Jenkins и TortoiseSvn использовать аутентификацию при вызове "svn show log"? - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть svnserver с этой конфигурацией в svnserve.conf :

anon-access = none
auth-access = write
authz-db = ../../authz

Внутри файла authz у меня есть несколько пользователей, которые должны иметь доступ только к подобласти:

[groups]
INTERNAL=me
EXTERNAL=johndoe

[/]
@INTERNAL = rw
@EXTERNAL = 

[/ProjectX/trunk]
@EXTERNAL = rw

Это должно помешать внешним пользователям читать все источники.

Но у этого решения есть одна большая проблема: некоторые клиентские инструменты svn не могут использовать "svn show log" во всех источниках. Они пытаются читать без аутентификации, и это не удается.

Есть ли способ, как заставить следующие инструменты использовать аутентификацию при доступе к журналу svn?

  • TortoiseSVN
  • Jenkins (плагин Subversion)

1 Ответ

0 голосов
/ 08 февраля 2012

Если у пользователя нет прав на чтение по определенному URL Subversion, он не сможет запустить svn log по этому URL.Пользователь johndoe просто не сможет запустить svn log svn://repos.mycomp.com/ProjectY/branches, но сможет запустить svn log svn://repos.mycomp.com/ProjectX/trunk.

Это то, что вы спрашиваете?


Ответ на rechifl

Чтобы быть ясным: моя проблема в том, что инструментыиспользуемые Groud ВНУТРЕННИЕ не могут получить доступ к журналу всех путей.Например, Дженкинс не может выполнить задание после коммита, потому что он не может прочитать детали ревизии.Единственный способ - разрешить доступ для чтения анонимным пользователям.Но это не решение для меня.

Большинство сайтов настраивают специальную учетную запись Jenkins, которая позволяет Jenkins по крайней мере читать из хранилища.(Доступ только для чтения позволит запускать сборки, но вы не сможете создать тег через Jenkins).Можете ли вы хотя бы сделать это?

Когда вы создаете задание в Jenkins, оно должно жаловаться, что не может получить доступ к URL-адресу в хранилище.Затем дайте вам ссылку для входа в аутентификацию.Нажмите на ссылку, и появится новое окно браузера.Введите учетные данные на этом экране.

Это должно быть хорошо для ваших проблем безопасности.У вас нет анонимного доступа для чтения, и Jenkins будет единственным, кто использует эту учетную запись (только для чтения).Вы даже можете ограничить доступ к определенным заданиям Jenkins, если не хотите, чтобы пользователи, не имеющие доступа на чтение к этой конкретной части хранилища, могли взглянуть на сборку и изменения.

Не уверен, гдеTortoiseSVN вписывается в эту картину для вас, но это позволит вам использовать Jenkins.

...