Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Использование своих хуков в GitLab

FreeBSD, Linux Add comments

Недавно я писал заметку об установке GitLab на сервер в «ручном режиме». В процессе использования выяснилась одна каверзная вещь — GitLab не умеет создавать хуки типа post-receive из панели для определенных репозиториев. Но мы на работе используем сервер с GitLab как сервер разработки и нужно, чтобы на сервере крутились проекты, которые мы правим через GitLab.

К счастью, это решаемо и сейчас опишу эти несложные действия.

1. Первым делом создадим хост для веб-сервера. Как это сделать уже писал не раз, повторять уже лень, поэтому представим, что мы его уже создали и ссылается он на папку /home/www/site.com.

2. Через консоль нужно зайти в репозиторий и в нем создать папку current_hooks:

# mkdir /home/git/repositories/user/project.git/custom_hooks/

где:
user — имя пользователя или название группы, который является владельцем проекта
project — название проекта, для которого создаем хук

3. Теперь создадим сам хук:

# nano /home/git/repositories/user/project.git/custom_hooks/post-receive

Впишем в него чекаут для обновления файлов в папке хоста:

#!/bin/sh
GIT_WORK_TREE=/home/www/site.com git checkout -f

4. Теперь нужно выставить владельцем папки и файлов пользователя git, а хуку нужно выставить права на выполнение:

# chown -R git:git /home/git/repositories/user/project.git/custom_hooks/
# chmod +x /home/git/repositories/user/project.git/custom_hooks/post-receive

5. Финальный шрих. Для корректной работы нужно, чтобы владельцем папки хоста был пользователь git.

# chown -R git:git /home/www/site.com

Теперь можно пушить в GitLab и проверять! 🙂


26 января, 2015  
Tags: custom hooks, git, gitlab, hook, nginx, гит, гитлаб, хук

Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2015 Gemini_13's Blog
G13.org.ua