Назад | Перейти на главную страницу

Получение новых тегов в Git Push при предварительном получении

я использую pre-receive хуки в GIT (с использованием bash в Linux), чтобы отфильтровать push, которые разрешены в моем репо.

Мне нужно отфильтровать толчок, который разработчики делают в моем репозитории GIT, позволяя просто нажать с этими реквизитами (# это число):

Считайте ветви и другие операции такими же, как коммиты. Вы можете нажать только один тег, используя правую клавишу (указанную в комментарии к тегу). Вы не можете проталкивать тег с другими элементами.

Проблема в том, что $refname есть только HEAD ref, поэтому, если вы сделаете этот заказ:

  1. Commit
  2. Tag (до любой доработки, даже старичков)
  3. Commit

В $refname будет указывать на последнюю ссылку (т.е. /refs/heads/master), так поступаем:

if [[ "$refname" == "refs/tags/"* ]]; then ... fi

Не будет работать в указанном порядке. Я пытался перебирать ссылки, используя rev-list и for-each-ref, безуспешно.

Как я мог обработать полученный push, зная количество тегов (и получив комментарий к каждому из них), чтобы удовлетворить верхним условиям?

PS: Рассмотрим также ситуацию нажатия с параметром --all, получение более одной ветки.