Что исправляет установка Gitolite? - PullRequest
0 голосов
/ 26 сентября 2018

информация о gitolite не работала, добавление ключей превратило их в ключ no access и НЕ создавало соответствующую запись в файле ключей авторизации.

Чтобы исправить этот прогон gitolite setup на сервере gitolite

Вопрос: что могло попасть в этот беспорядок?

И что делает gitolite setup делать, когда вызывается в n-й раз (он больше не настраивает вещи, в соответствии с документами исправляет хуки, но мне интересно, какой будет сценарий использования, а какой был мой)?

Подробнее оgitolite info

команда gitolite info вызывается следующим образом:

> ssh git-user@ser-git
PTY allocation request failed on channel 0
hello git-admin, this is ...@... running gitolite3 3.6.7-2 (Debian) on git 2.17.1

 R W    some-repository
 R W    gitolite-admin
 R W    testing
Connection to ser-git closed.

Неверный вывод: FATAL: unknown git/gitolite command: 'info'

Подробнее: ключи без доступа.

gitolite sshkeys-lint показывал ключи с (no access), теперь эти ключи имеют доступ, когда я их установил (теперь это означает после gitolite setup).

ssh-keygen -lf /home/repo/.ssh/authorized_keys | wc -l (или без трубопроводной части, независимо) количество ключейи их имена указали, что у меня не было добавлено самое новое.

Подобный вопрос, который не работал для меня: Записи keydir не распространяются на author_keys

1 Ответ

0 голосов
/ 28 сентября 2018

У Документов был довольно большой ответ, как только я начал копать глубже.Что довольно мило с @ sitaramc.

  • Без опций, «настройка gitolite» - это общая команда «исправить все» (например, если вы внесли репо извне или кто-то ещеперепутал с перехватами, или вы сделали изменение файла rc, которое влияет на правила доступа и т. д.)

Симптомы перестали распространяться, и ошибка FATAL: unknown git/gitolite command: 'info' при ssh git-user@ser-git.Исправлено было запустить gitolite setup.Итак, первый вопрос, первый:

Что исправляет установка Gitolite?

  1. gitolite setup реализовано здесь
  2. мой Perl довольно слабый, но в строке 56 есть функция настройки.Он вызывает args (который анализирует параметры, поэтому здесь ему нечего анализировать), если только h_only (перехватывает только arg для настройки), который не использовался, поэтому мы пропускаем триггеры compile и POST_COMPILE и идем дляthe hooks.

    sub setup {my ($ admin, $ pubkey, $ h_only, $ message) = args ();

    unless ($h_only) {
        setup_glrc();
        setup_gladmin( $admin, $pubkey, $message );
    
        _system("gitolite compile");
        _system("gitolite trigger POST_COMPILE");
    }
    
    hook_repos();    # all of them, just to be sure
    

    }

  3. пакет Gitolite::conf::store имеет hook_repos(), строка 228 : мы меняем каталог на базовый каталог репо (согласно файлу конфигурации), а для каждого phy_repo мы делаем hook_1(phy_repo).Что такое phy_repo? phy sical.

  4. та же упаковка, другой метод и строка: hook_1($repo) в строке 354 .

Метод hook_1($repo)

Буквально о фиксации всех крючков.

  1. Восстанавливает каталоги для обычных и административных хуков.
  2. Переписывает update_hook (common) и post_update_hook (admin).
  3. Устанавливает 755 разрешений для общих и административных хуков.
  4. Затем, используя ln_sf, он объединяет папки для общих/ admin hooks.
  5. ln_sf находится в общем модуле, в строке 162
...