Может ли хук "post-receive" в gitlab-shell все еще использоваться для кастомного хука?
По содержанию gitlab-оболочки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 конкретная логика или вообще? Imho, я все еще должен быть в состоянии использовать это, например, для моего хилипроекта post-receive, который обновляет мои репозитории. К сожалению, я не смог найти ничего конкретного в этом отношении, в основном из-за перехода gitlab-shell в gitlab v5. Я надеюсь, что кто-то может пролить свет на это...
[редактировать]
post-receive
Хук был удален из оболочки gitlab для v1.7.1. Таким образом, правильный способ - либо создать веб-хук, либо тщательно изменить хук обновления, либо более внимательно следить за развитием gitlab-shell, пока не будет реализована поддержка пользовательских хуков.;-)
1 ответ
Обновление 2014:
Ciro Santilli 新疆改造中心 六四事件 法轮功 указывает в комментариях и в " Пользовательском файле пост-получения с использованием GitLab ", что теперь есть (GitLab больше не использует gitolite) способ настройки пользовательских хуков (GitLab 7.5.0+, ноябрь 2014 г.).
- Выберите проект, который нуждается в пользовательском git hook.
- На сервере GitLab перейдите в каталог репозитория проекта.
Для ручной установки путь обычно/home/git/repositories/<group>/<project>.git
,
Для установок Omnibus путь обычно/var/opt/gitlab/git-data/repositories/<group>/<project>.git
,- Создайте новый каталог в этом месте под названием
custom_hooks
,- Внутри
custom_hooks
каталог, создайте файл с именем, соответствующим типу ловушки.
Дляpre-receive
перехватить имя файла должно бытьpre-receive
без продления- Сделайте исполняемый файл ловушки и убедитесь, что он принадлежит git.
- Напишите код, чтобы сделать функцию git hook должным образом. Крючки могут быть на любом языке. Убедитесь, что "шебанг" в верхней части правильно отражает тип языка.
Например, если скрипт написан на Ruby, шебанг, вероятно, будет#!/usr/bin/env ruby
,
Оригинальный ответ (апрель 2013 г.)
Это прямое следствие неиспользования gitolite
и заменить его на gitlab-shell
с GitLab5.x.
Вот почему у вас есть gitlab-shell
Выпуск 14, о разрешении пользовательских хуков обновления.
На данный момент вы бы добавили, чтобы регистрировать этот хук самостоятельно для каждого репо на сервере Gitlab, что не очень удобно.