2017-02-02 4 views
1

Я хочу, чтобы проект GitHub использовал conventional-changelog standard version для генерации его журнала изменений. Мы используем рабочий процесс squash and merge для объединения PR в нашу основную ветвь развития.Подтвердить формат сообщений фиксации «Сквош и слияние» GitHub

Есть ли способ, которым я могу обеспечить, чтобы сообщение фиксации сдавленного коммита выполнялось в определенном формате?

В идеале это будет хорошо работать с пользовательским интерфейсом GitHub, например, показаться неудачной проверкой. Я понимаю, что могу просто написать расширение браузера для обеспечения этого, но тогда всем, кто работает над проектом, потребуется установить расширение, которое слишком велико для барьера для входа для проекта с открытым исходным кодом.

+0

Может быть использовать какое-то мерзавец крючок? –

ответ

0

Непонятно, планируете ли вы, чтобы это было на GitHub Public или Enterprise. Я не пытался реализовать это в GitHub Public.

На предприятии процесс заключается в создании крюка предварительной передачи для конкретного репо, которое вы заинтересованы в защите. Имейте в виду, если вы не захотите загрузить новую среду, вы будете ограничены в инструментах, которые может использовать ваш pre-receive hook.

Лучших деталей можно найти по адресу: https://help.github.com/enterprise/2.11/admin/guides/developer-workflow/creating-a-pre-receive-hook-script/

По существу поток будет выглядеть примерно так:

#!/usr/bin/env bash 
# 
DEFAULT_BRANCH=$(git symbolic-ref HEAD) 

while read oldrev newrev refname; do 
    # We only care about these changes to master 
    if [[ "${refname}" != "${DEFAULT_BRANCH:=refs/heads/master}" ]]; then 
    exit 0 
    fi 

    # branch or tag got deleted 
    if [ "${newrev}" = "${zero_commit}" ]; then 
    continue 
    fi 

    # branch or tag is being created 
    if [ "${oldrev}" = "${zero_commit}" ]; then 
    continue 
    fi 

    for COMMIT_HASH in `git rev-list ${oldrev}..${newrev}`; 
    do 
    # Add your COMMIT_HASH scrubbing process here 
    # On failure exit 1 
    done 
done 
exit 0 
Смежные вопросы