Может ли хук "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 г.).

  1. Выберите проект, который нуждается в пользовательском git hook.
  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 Выпуск 14, о разрешении пользовательских хуков обновления.

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

Другие вопросы по тегам