Cómo limitar la operación de empuje para permitir solo confirmaciones firmadas con GPG en github

Tengo un repository de Github que compartimos para nuestro desarrollo. Para garantizar la integridad, decidimos firmar nuestras confirmaciones y tags con GPG.

Ahora, ¿cómo evito que los desarrolladores envíen confirmaciones sin firmar a nuestro repository en Github y también las keys públicas GPG de la list blanca para permitir el envío de commits chamuscadas con keys públicas de la list blanca?

Revisé algunos ganchos antes de empujar pero no funcionó de la manera que describí arriba y aquí está.

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 

¿Cómo puedo hacer esto? Cualquier noción o ejemplos serían muy apreciados.

Parece que estás en GitHub Enterprise e intentas crear una secuencia de commands gancho previa a la recepción que rechaza las confirmaciones sin firmar, ¿correcto? Si es así, aquí hay un script GPG de código abierto de GitHub. Si está en GitHub.com, tenga en count que no es compatible con los ganchos de pre-recepción y, en su lugar, desea configurar una twig protegida con la verificación de estado requerida para rechazar el trabajo sin firmar.

En cuanto a la configuration de keys, ¿has echado un vistazo a este artículo ?