Subversion Tagging и безопасность - PullRequest
3 голосов
/ 19 мая 2009

Я создал хранилище SVN с нуля и успешно пометил некоторые из своих выпусков с помощью команды копирования SVN.

Я использовал плагин аутентификации SSPI для apache, поэтому наши разработчики просто поразили сервер своими учетными данными сети, и все отлично работает.

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

Затем я заблокировал каталог / svn / с помощью: Require-group "CORP \ CKAN0BlahBlah"

Это фактически ограничивает новых разработчиков в группе безопасности доступом только для чтения, пока им не будет предоставлен доступ через файл конфигурации aAuthZ.

Теперь у меня есть пара вопросов:

  1. Как правильно (кроме система чести), чтобы предотвратить пользователей от внесения изменений в любой из каталоги "тегов"?

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

Ответы [ 5 ]

6 голосов
/ 19 мая 2009

1 - вы можете использовать ловушку предварительной фиксации для предотвращения фиксации, см. ловушка предварительной фиксации SVN для избежания изменений в подкаталогах тегов .

Редактировать: Чтобы сделать это в Windows, попробуйте следующее:

Сохраните это как файл с именем pre-commit.bat в папке hooks вашего репозитория:

@echo off
set REPOSITORY=%1
echo %REPOSITORY% | find /I "tags"
if errorlevel 1 goto done
echo You tried to commit to %REPOSITORY% >&2
echo Committing to tags is not allowed >&2
exit 1
:done

Обратите внимание, это предотвратит фиксацию любого пути к репозиторию, который содержит подстроку tags . Изменить в соответствии с вашими потребностями.

3 голосов
/ 20 мая 2009

Для Вопрос № 1 , я разработал для этого:

@echo off
SET SVNLOOK=C:\Program Files\CollabNet Subversion Server\svnlook.exe
SET GREP=D:\SVN\Repo\hooks\grep.exe
SET LOG=D:\SVN\Repo Logs.txt

>>"%LOG%" echo ==== commit %1 %2 ====
>>"%LOG%" "%svnlook%" changed -t %2 %1

("%svnlook%" changed -t %2 %1 | "%grep%" "^U.*/tags/") && (echo Cannot commit to tags.>&2 && exit 1)
("%svnlook%" log -t %2 %1 | "%grep%" "[a-zA-Z0-9]") || (echo You must specify a comment.>&2 && exit 1)

exit 0

Схватил инструмент grep из http://sourceforge.net/projects/unxutils


Для Вопрос № 2 ответ НЕТ, вы не можете проверить группы безопасности AD в файле конфигурации AuthZ.

Спасибо за вашу помощь всем.

2 голосов
/ 19 мая 2009

Нет «правильного» пути. Теги - это соглашение, и разработчики должны изучить его и следовать ему. За исключением этого, отказоустойчивость может быть реализована с использованием перехватчиков Subversion. Смотрите эту страницу для хорошего урока.

1 голос
/ 19 мая 2009

Мне кажется, это вопрос образования и процесса. Если ваши разработчики понимают назначение ваших SVN-тегов, кажется, что вероятность того, что люди (намеренно) будут совершать коммиты для тега, будет значительно ниже. То, что я нашел необходимым для эффективной коммуникации этих процессов, - это современная письменная документация. Моя команда использует вики для хранения документации о наших процессах (в частности, мы используем MediaWiki ). Вики-подход, кажется, делает вещи намного более доступными и их легче поддерживать в курсе, чем что-то вроде хранения версий документов MS Office в sharepoint.

0 голосов
/ 14 января 2010

Как насчет использования файла svn-auth, чтобы определить это? это будет выглядеть так:

[groups]
ADMINS=<your ID>
<rest of groups>=<all other IDs>

[/]
* = r
<rest of groups> = rw
@ADMINS = rw

[/tags]
<rest of groups> = r

Это позволит АДМИНИСТРАТАМ доступ на чтение и запись к каталогу тегов, но больше никому. Я не знаю подключаемый модуль аутентификации SSPI, поэтому, возможно, мой приведенный пример не работает в вашем контексте.

...