Как сделать репозиторий мерзавца только для чтения?

Я не думаю, что они должны кодировать все в приложении. Но им нужно дать некоторые задачи. Некоторые "архитекторы" являются в основном взломами без технического опыта, кто выдает себя как "легендарные кодеры" и разрабатывает системы, которые добавляют недели или месяцы на сумму работы, которую необходимо было бы сделать, если у Вас не было архитектуры. Если они не могут записать код, у них нет бизнеса, находящегося в той роли... Поскольку идея является архитектурой, должен подать заявку, легче разработать и поддержать. Но если бы архитектор не может разработать, как он знал бы, как сделать архитектуру?

кроме того, даже лучшие архитекторы принимают плохие решения. Иногда что-то выглядит большим на белой доске, но тогда в действительности архитектурное решение заканчивает тем, что делало вещи намного тяжелее, чем они должны быть. Если архитектор должен съесть его собственный собачий корм (и использовать архитектуру), они более склонны хотеть исправить плохие решения или спроектировать пути вокруг них. Также путем касания кода они, по крайней мере, немного знакомы с ним. Таким образом, если разработчик приедет к ним с проблемой кодирования, глаза архитектора не потускнеют, поскольку он увольняет разработчика и говорит, что разработчик делает ее неправильно, но не предлагает понимания на правильный способ сделать это.

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

53
задан SilentGhost 2 November 2009 в 06:15
поделиться

5 ответов

Есть несколько возможных способов сделать это.

  • Если у каждого из ваших пользователей есть учетная запись оболочки (возможно, с ограничениями), и каждый из них получает доступ к репозиториям git через свою учетную запись, вы может использовать разрешения файловой системы для управления доступом SSH к репозиториям git. В Unix это будут права на запись в каталогах , возможно, с помощью создания группы и определенных разрешений для группы (с установленным «липким идентификатором группы»).

  • Для отправки требуется git- receive-pack должен находиться в $ PATH пользователя и быть исполняемым для них ... хотя я не уверен, насколько осуществимым будет такой подход.

  • Вы можете использовать update или ] pre-receive hook для управления доступом к репозиторию, например, используя пример хука update-paranoid из contrib / hooks в источниках git.

  • При большем количестве пользователей вы могли бы лучше использовать инструмент для управления доступом в репозитории git , например Gitosis (в Python требуются инструменты настройки) или Gitolite (в Perl).

  • Для доступа только для чтения вы можете настроить git daemon для предоставления анонимного (и неавторизованного) доступа только для чтения по протоколу git: // вместо доступа по протоколу SSH.

    См. Документацию для переменной конфигурации url. .insteadOf , чтобы узнать, как упростить переход с SSH на протокол GIT.


См. Также главу 4. « Git на сервере "из книги Pro Git Скотта Чакона (лицензия CC-BY-NC-SA).

  • При большем количестве пользователей вы могли бы лучше использовать инструмент для управления доступом к репозиториям git , например Gitosis (в Python требуются инструменты установки) или Gitolite (на Perl).

  • Для доступа только для чтения вы можете настроить git daemon для предоставления анонимного (и неавторизованного) доступа только для чтения по протоколу git: // вместо этого доступа по протоколу SSH.

    См. Документацию для переменной конфигурации url. .insteadOf , чтобы узнать, как упростить переход с SSH на протокол GIT.


  • См. Также главу 4. « Git на сервере "из книги Pro Git Скотта Чакона (лицензия CC-BY-NC-SA).

  • При большем количестве пользователей вы могли бы лучше использовать инструмент для управления доступом к репозиториям git , например Gitosis (в Python требуются инструменты установки) или Gitolite (на Perl).

  • Для доступа только для чтения вы можете настроить git daemon для предоставления анонимного (и неавторизованного) доступа только для чтения по протоколу git: // вместо этого доступа по протоколу SSH.

    См. Документацию для переменной конфигурации url. .insteadOf , чтобы узнать, как упростить переход с SSH на протокол GIT.


  • См. Также главу 4. « Git на сервере "из книги Pro Git Скотта Чакона (лицензия CC-BY-NC-SA).

    требуется setuptools) или Gitolite (на Perl).

  • Для доступа только для чтения вы можете настроить git daemon для предоставления анонимного (и неавторизованного) доступа только для чтения через git : // протокол вместо доступа по протоколу SSH.

    См. Документацию для переменной конфигурации url. .insteadOf , чтобы узнать, как упростить переход с SSH на протокол GIT.


  • См. Также главу 4. « Git на сервере "из книги Pro Git Скотта Чакона (лицензия CC-BY-NC-SA).

    требуется setuptools) или Gitolite (на Perl).

  • Для доступа только для чтения вы можете настроить git daemon для предоставления анонимного (и неавторизованного) доступа только для чтения через git : // протокол вместо доступа по протоколу SSH.

    См. Документацию для переменной конфигурации url. .insteadOf , чтобы узнать, как упростить переход с SSH на протокол GIT.


  • См. Также главу 4. « Git на сервере "из книги Pro Git Скотта Чакона (лицензия CC-BY-NC-SA).

    45
    ответ дан 7 November 2019 в 08:49
    поделиться

    Если вам также нужен контроль доступа, ознакомьтесь с gitosis . Довольно легко настроить, и вы можете использовать простой сценарий для управления тем, кто и что может делать.

    1
    ответ дан 7 November 2019 в 08:49
    поделиться
    chmod -R a-w /path/to/repo.git
    
    9
    ответ дан 7 November 2019 в 08:49
    поделиться

    Поскольку git в основном полагается на файловую систему для управления доступом, это будет работать. Обратите внимание, что в ваших разрешениях мир не имеет доступа к файлу, но пользователь и группа имеют доступ для чтения / записи. Если вы хотите, чтобы все было доступно для чтения, ваши разрешения должны быть 0444 .

    Вы можете сделать более детальный контроль, установив разрешения репо как 0664 , где пользователь - Никто , а группа похожа на gitdevs . Тогда только люди из группы gitdevs будут иметь возможность писать в репо, но мир сможет читать из него.

    Последующие действия Вот ссылка , которая охватывает различные способы поделиться своим репо и обложками, включая функции «за» и «против», а также функции контроля доступа.

    3
    ответ дан 7 November 2019 в 08:49
    поделиться

    Другой возможностью является протокол git, но он требует, чтобы демон git работал.

    0
    ответ дан 7 November 2019 в 08:49
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: