2017-02-17 26 views
4

У меня есть хранилище Github, которое мы разделяем для нашей разработки. Чтобы обеспечить целостность, мы решили подписать наши коммиты и теги с помощью GPG.Как ограничить операцию нажатия, чтобы разрешить только коммиты, подписанные с GPG в github

Теперь, как предотвратить разработчик от толкая неподписанные фиксации в наше хранилище в Github а также белого список открытых ключей GPG, чтобы толкая коммиты опаленного белого списка открытых ключей

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

remote="$1" 
url="$2" 

z40=0000000000000000000000000000000000000000 

IFS=' ' 
while read local_ref local_sha remote_ref remote_sha 
do 
    if [ "$local_sha" = $z40 ] 
    then 
    # Handle delete 
    else 
    if [ "$remote_sha" = $z40 ] 
    then 
     # New branch, examine all commits 
     range="$local_sha" 
    else 
     # Update to existing branch, examine new commits 
     range="$remote_sha..$local_sha" 
    fi 

    # Check for WIP commit 
    commit=`git rev-list -n 1 --grep '^WIP' "$range"` 
    if [ -n "$commit" ] 
    then 
     echo "Found WIP commit in $local_ref, not pushing" 
     exit 1 
    fi 
    fi 
done 
exit 0 

Как это сделать? Любое понятие или примеры будут высоко оценены.

+0

Вы проверяете наличие какой-либо фиксации 'git log -grep '^ WIP''. Кажется, вы просите проверить, не имеет ли какой-либо фиксации подпись GPG, поэтому вам нужно будет написать тест для «имеет или не имеет подпись GPG». Тогда вам также может понадобиться решить, хотите ли вы проверить, есть ли * подпись, действительная ли она. Но StackOverflow не является сервисом «написать код для меня» ... – torek

+0

Вы можете разрешить проталкивание коммитов, но добавить проверку состояния, которая требует их подписания перед слиянием. – osowskit

ответ

1

Похоже, вы находитесь на предприятии GitHub и пытаетесь установить create a pre-receive hook script, который отвергает любые неподписанные коммиты - правильно? Если да, вот an open source GPG script от GitHub. Если вы находитесь на сайте GitHub.com, обратите внимание, что они не поддерживают перехваты, и вместо этого вы хотите настроить protected branch with required status check, чтобы отклонить работу без знака.

Что касается настройки ключей, вы проверили this article?

 Смежные вопросы

  • Нет связанных вопросов^_^