У меня есть хранилище 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
Как это сделать? Любое понятие или примеры будут высоко оценены.
Вы проверяете наличие какой-либо фиксации 'git log -grep '^ WIP''. Кажется, вы просите проверить, не имеет ли какой-либо фиксации подпись GPG, поэтому вам нужно будет написать тест для «имеет или не имеет подпись GPG». Тогда вам также может понадобиться решить, хотите ли вы проверить, есть ли * подпись, действительная ли она. Но StackOverflow не является сервисом «написать код для меня» ... – torek
Вы можете разрешить проталкивание коммитов, но добавить проверку состояния, которая требует их подписания перед слиянием. – osowskit