Как остановить репо: нажмите, если условие webhooks не выполняется в BitBucket
Я пытаюсь остановить push-репозиторий в Bitbucket, если у оператора commit нет определенного идентификатора проблемы Jira в комментарии. Я успешно вызвал URL-адрес для проверки замечания о коммитах через веб-хуки, но не смог выяснить, как остановить толчок в случае сбоя.
2 ответа
Настройте следующий скрипт из этого примера msg-commit
мерзавец
#!/bin/bash
MSG="$1"
if ! grep -qE "updated" "$MSG";then
cat "$MSG"
echo "Your commit message must contain the word 'updated'"
exit 1
fi
Проверьте этот код в git, а затем запустите
# give the script "execute" permission
chmod 755 commit-msg
# put the script in the correct place
cp commit-msg .git/hooks/commit-msg
Если вы попытаетесь создать коммит без слова "updated" в сообщении, то эта ловушка будет препятствовать успешному созданию коммита.
Источник: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
commit-msg hook
принимает один параметр, который снова является путем к временному файлу, который содержит сообщение фиксации, написанное разработчиком. Если этот скрипт завершает работу с ненулевым значением, Git прерывает процесс коммита, поэтому вы можете использовать его для проверки состояния вашего проекта или сообщения коммита, прежде чем разрешить коммит пройти. В последнем разделе этой главы мы продемонстрируем использование этой ловушки для проверки того, что ваше сообщение о фиксации соответствует требуемому шаблону.
Обратите внимание, что любой, кто клонирует ваш репозиторий, также должен будет скопировать хук в .git/hooks/commit-msg
Для вашего конкретного случая использования:
остановить отправку репо в Bitbucket, если в заявлении фиксации не указан идентификатор задачи Jira в примечании
Он был добавлен в Bitbucket Cloud в качестве функции: https://support.atlassian.com/bitbucket-cloud/docs/link-to-a-web-service/#Require-linked-issue-keys-in-commits
Все, что вам нужно сделать, это включить его.