Можно ли по-прежнему использовать хук после получения в gitlab-shell для пользовательского хука?

Согласно содержимому хука gitlab-shell post-receive , это устарело.

#!/usr/bin/env ruby

# This file was placed here by GitLab.
# IT IS DEPRECATED NOW.
# All GitLab logic handled by update hook

Но только для конкретной логики Gitlab или вообще? Имхо, я все еще должен иметь возможность использовать его, например. мой хук post-receive chiliproject, который обновляет мои репозитории. К сожалению, я не смог найти ничего конкретного по этому поводу, в основном из-за перехода gitolite ‹> gitlab-shell в gitlab v5. Я надеюсь, что кто-то может пролить свет на это…

[редактировать]

Хук post-receive был удален из gitlab-shell для версии 1.7.1. Таким образом, правильный способ — либо создать веб-хук, либо тщательно изменить хук обновления, либо более внимательно следить за разработкой gitlab-shell, пока не будет реализована поддержка пользовательских хуков. ;-)


person nietonfir    schedule 27.04.2013    source источник
comment
возможный дубликат Пользовательский файл после получения с использованием GitLab   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 17.12.2014
comment
Начиная с GitLab 7.5.0 (ноябрь 2014 г.) это реализовано (спасибо Ciro Santilli за предупреждение). Смотрите ответ обновления ниже.   -  person VonC    schedule 17.12.2014


Ответы (1)


Обновление 2014:

Чиро Сантилли указывает в комментариях и в "Пользовательский файл пост-приема с использованием GitLab", который теперь (GitLab больше не использует gitolite) есть способ настройка пользовательских хуков (GitLab 7.5.0+, ноябрь 2014).

  1. Выберите проект, для которого требуется специальный git-хук.
  2. На сервере GitLab перейдите в каталог репозитория проекта.
    Для ручной установки путь обычно /home/git/repositories/<group>/<project>.git.
    Для установки Omnibus обычно путь /var/opt/gitlab/git-data/repositories/<group>/<project>.git.
  3. Создайте в этом месте новый каталог с именем custom_hooks.
  4. Внутри каталога custom_hooks создайте файл с именем, соответствующим типу хука.
    Для хука pre-receive имя файла должно быть pre-receive без расширения.
  5. Сделайте исполняемый файл ловушки и убедитесь, что он принадлежит git.
  6. Напишите код, чтобы git hook работал как положено. Хуки могут быть на любом языке. Убедитесь, что "шебанг" вверху правильно отражает тип языка.
    Например, если сценарий написан на Ruby, то шебанг, вероятно, будет #!/usr/bin/env ruby.

Оригинальный ответ (апрель 2013 г.)

Это прямое следствие отказа от использования gitolite и замены его на gitlab-shell на GitLab5.x.

Вот почему у вас есть gitlab-shell Issue 14 о разрешении пользовательских перехватчиков обновлений.

А пока вы бы добавили регистрировать этот хук самостоятельно для каждого репозитория на сервере Gitlab, что не очень удобно.

person VonC    schedule 27.04.2013
comment
Я понимаю. И спасибо за ссылку на выпуск, должно быть, прочитал. Но что есть против использования post-receive так, как это задумано git (поскольку gitlab, очевидно, больше его не использует)? - person nietonfir; 28.04.2013
comment
@nietonfir update или post-update хуки ... в любом случае вам нужно будет зарегистрировать их вручную в нужных репозиториях, в то время как gitolite делал это за вас раньше. Проблема 14 посвящена восстановлению этой функции. - person VonC; 28.04.2013
comment
Я думаю, что этот вопрос, возможно, был реализован. Ответ на возможный повторяющийся вопрос: stackoverflow.com/a/27520784/895245 - person Ciro Santilli 新疆再教育营六四事件ۍ 17.12.2014
comment
@CiroSantilli спасибо. Я обновил ответ соответственно. - person VonC; 17.12.2014