Запретить чтение определенных ветвей репозитория с гитолитом - PullRequest
9 голосов
/ 12 января 2011

Я пытаюсь добиться следующего: сотрудники в группе @coworkers, клиенты в группе @ клиенты.

Репозиторий Git должен быть доступен для чтения и записи для всех, нобыть специальными ветвями.то есть я создаю новую ветку "intern", и @coworkers будут иметь права доступа RW +, но клиенты НЕ ДОЛЖНЫ иметь права R или W.

Я думал, что смогу достичь этого с помощью

repo myrepo
    -    intern    = @clients
    RW+            = @clients @coworkers

Но это не работает.

Ответы [ 3 ]

9 голосов
/ 17 февраля 2011

Согласно обсуждению с автором gitolite, ограничение доступа на чтение для ветвей невозможно:

Gitolite для каждой ветки работает только для доступа на запись. Это не работает для доступа на чтение, потому что сам Git не работает поддержать это различие.

3 голосов
/ 24 июня 2014

Теперь можно ограничить доступ для чтения к ветвям гитолита с последней версией gitolite v3.x, используя функцию частичного копирования гитолита

  1. Обязательно используйтепоследняя версия gitolite
  2. раскомментирует строку partial-copy в разделе ENABLE файла ~ / .gitolite.rc
  3. set $GIT_CONFIG_KEYS = '.*' в файле ~ / .gitolite.rc
  4. Используйте параметр частичного копирования, чтобы иметь другой репозиторий, который является копией вашего исходного репозитория, но без каких-либо ветвей.

Пример: если вы хотите, чтобы клиент имел доступ только кdeploy branch

repo    my-repo
    RW+     =   @coworkers

repo    my-repo-deploy
    RW  deploy  =   @clients
    -           =   @clients

    -   VREF/partial-copy           =   @all
    config gitolite.partialCopyOf   =   my-repo

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

sudo git config --system receive.denyDeleteCurrent warn
sudo git config --global receive.denyDeleteCurrent warn

Теперь клиенты могут клонировать ветвь развертывания.репозитория my-repo-deploy с помощью такой команды:

git clone -b deploy git@your-server:my-repo-deploy
0 голосов
/ 12 января 2011

Я не эксперт по гитолитам, но я думаю правила обрабатываются по порядку.Вы пробовали просто поменять местами последние две строки?То есть сначала предоставьте разрешение @clients и @coworkers, а затем во-вторых запретите доступ к интерну со стороны @ клиентов.

...