Пользовательский файл пост-получения с использованием GitLab

я пытаюсь заменить мой хук после получения, автоматически сгенерированный GitLab, новым файлом, который включает поддержку почты и, следовательно, должен запускаться "сообщение получить ".

Это предыдущая версия моего файла:

#!/usr/bin/env bash

# This file was placed here by GitLab. It makes sure that your pushed commits
# will be processed properly.

while read oldrev newrev ref
do
  # For every branch or tag that was pushed, create a Resque job in redis.
  repo_path=`pwd`
  env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostRe
ceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}
" > /dev/null 2>&1
done

Когда я заменяю этот файл новым, который включает в себя вышеупомянутые строки в конце файла, GitLab говорит: «Проект имеет недопустимый файл после получения " в админке, но письма отправляются правильно.

Знаете ли вы, как справиться с этой проблемой множественной пост-получения поддержки. На данный момент я неt знать, правильно ли выполняется часть файла, специфичная для gitlab.

Спасибо за помощь!

Обновить:

Сценарии внутри папок теперь вызываются с помощью нижеприведенного решения (запрос на извлечение). Но я нене понимаю, почему стандартпосле приема-почты»-скрипт не делаетотправлять любые письма, если они включены в каталог. Он отлично работает, если он вызывается непосредственно после получения.

Дон»не знаю, почему я должен изменить порядок, но у меня работает следующее (даже я неt знать, правильно ли сейчас создаются задания на восстановление:

#!/usr/bin/env bash

repo_path=`pwd`

if [ -d hooks/post-receive.secondary.d ]; then

  for i in hooks/post-receive.secondary.d/*
  do
      [ -x "$i" ] || continue
      # call the hooklet with the same arguments we got
      path=$repo_path"/"$i
      "$path" "$@" || {
          # hooklet failed; we need to log it...
          echo hooklet $i failed
          perl -I$GL_BINDIR -Mgitolite -e "log_it('hooklet $i failed')"
          # ...and send back some non-zero exit code ;-)
          exit 1
      }
  done

fi

while read oldrev newrev ref
do
  # For every branch or tag that was pushed, create a Resque job in redis.
  env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1
done

exit 0

Ответы на вопрос(3)

Ваш ответ на вопрос