Ограничить доступ для чтения в репозитории git с помощью gitolite

Я использую gitolite для git-репозитория, ограничивающего доступ.

Кто-нибудь может сказать, как настроить ограничение веток и как ограничить разрешение на чтение для определенного Dir / файла?


person vinayak    schedule 18.11.2016    source источник
comment
Это возможно в веб-интерфейсе, но сам git этого не поддерживает. Люди клонируют репо целиком и получают все. Вам нужно будет создать второй репозиторий с цензурой, который будет содержать только то, что должно быть видимым.   -  person Thilo    schedule 18.11.2016


Ответы (1)


Как упоминалось в обзоре Gitolite

доступ для чтения контролируется на уровне репо,

Вы либо получаете доступ (клонируете) полное репо, либо не получаете его вообще.

Конфиденциальный файл обычно не должен находиться в репо (или быть в частном репо), а сгенерирован через smudge драйвер содержимого фильтра. Этот сценарий 'smudge' может (на git checkout) проверять, являетесь ли вы авторизованным пользователем, и, если да, извлекать файл (из надежного частного источника, а не из репозитория git) и генерировать при проверке ваш ограниченный файл.

С другой стороны, ограничение доступа на запись было возможно всегда, как я упоминал 6 лет назад.
С помощью VREFS вы можете применять все виды политик (например, сообщения о фиксации git или на основе ролей.

И да, вы можете ограничить push-уведомления на основе файла / DIR.

Вы даже можете использовать группы LDAP для ограничения доступа к gitolite


Для ограничения доступа на чтение на основе каталога / файла или веток / тегов, кроме gitolite ...

  • во-первых, даже гитолит не делает этого
  • это не то, как работает репозиторий Git: вам придется наложить ограничения на уровень слушателя (https или ssh), то есть на уровне, где _ 4_ (выполняется на стороне сервера во время клиента git fetch) запрашивает пакеты: он вызывается ssh или https://git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols#The-Smart-Protocol.
    Это будет включать проверку пакетов (с git verify-pack), что значительно замедлило бы операцию клонирования / выборки и не было сделано насколько мне известно.

Следовательно, мое первоначальное предложение не помещать какие-либо ограниченные / конфиденциальные файлы в репозиторий git.

person VonC    schedule 18.11.2016
comment
Спасибо за совет @Vonc. Любой другой вариант ограничения доступа для чтения и записи на основе каталога / файла или веток / тегов, кроме gitolite? - person vinayak; 18.11.2016
comment
@vinay Я отредактировал ответ, чтобы ответить на ваш вопрос (а также указать на существующее ограничение wirte) - person VonC; 18.11.2016