2017-02-06 3 views
0

У меня есть GitLab 8.16.4, и есть много групп со многими проектами. Я хотел бы создать одно место со многими сценариями, запущенными в цикле, как разные крючки (как в этом решении Chaining git hooks), и в каждом проекте создайте папку custom_hooks в качестве символической ссылки на ранее упомянутое местоположение.Symlink в папку с пользовательскими крючками в GitLab

У меня есть тестовый проект: /var/opt/gitlab/git-data/repositories/test/test.git/. Если я создаю там папку с hook (/var/opt/gitlab/git-data/repositories/test/test.git/custom_hooks/update), она будет вызвана. Но если папка является символической ссылкой на другое местоположение, то крючок не вызывается.

Я проверил владельцев папок/файлов, но они в порядке.

проекта:

lrwxrwxrwx 1 gitlab gitlab 31 Feb 6 13:37 custom_hooks -> /home/user/custom_hooks

/Главная/пользователь/custom_hooks:

drwxr-xr-x 2 gitlab gitlab 4096 Feb 6 13:31 custom_hooks

lrwxrwxrwx 1 gitlab gitlab 10 Feb 6 13:26 /home/user/custom_hooks/update -> hook-chain

Есть что-нибудь не так с моей конфигурации или, может быть, GitLab не позволяет вызывать крючки из другой локализации, чем файлы в проекте?

ответ

0

Окончательное решение:

  1. в /opt/gitlab/embedded/service/gitlab-shell/hooks/ создавать папки post-receive.d, pre-receive.d, update.d и myhooks
  2. в myhooks создания hook-chain сценария и соответствующие крючки для запуска на ней
  3. в первых трех папках создать символические ссылки сценарий hook-chain в myhooks, например:

    [[email protected] ~]# ll /opt/gitlab/embedded/service/gitlab-shell/hooks/update.d/ 
    total 4 
    lrwxrwxrwx 1 gitlab gitlab 68 Apr 18 08:47 update -> /opt/gitlab/embedded/service/gitlab-shell/hooks/myhooks/hook-chain 
    
  4. конечно пользователь gitlab должен быть владельцем всех сценариев

 Смежные вопросы

  • Нет связанных вопросов^_^