J'ai un référentiel Github que nous partageons pour notre développement. Pour assurer l'intégrité, nous avons décidé de signer nos commits et tags avec GPG.Comment limiter l'opération push pour autoriser uniquement les validations qui sont signées avec GPG dans github
Maintenant, comment puis-je empêcher les développeurs de pousser commits non signés à notre référentiel dans Github et aussi les clés publiques liste blanche GPG pour permettre de pousser commits roussi avec les clés publiques de la liste blanche
j'ai vérifié une pré-poussée crochets mais n'a pas fonctionné comme je l'ai décrit ci-dessus et le voici.
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
Comment puis-je faire cela? Toute notion ou exemple serait très apprécié.
Vous recherchez tout commit 'git log --grep '^ WIP'' trouverait. Vous semblez demander à vérifier si un commit n'a pas de signature GPG - vous devrez donc écrire un test pour "a ou manque de signature GPG". Ensuite, vous devrez peut-être décider si vous voulez vérifier, s'il y a * une * signature, si elle est valide. Mais StackOverflow n'est pas un service "écrivez le code pour moi" ... – torek
Vous pouvez autoriser la validation des validations mais ajouter une vérification de statut qui nécessite leur signature avant la fusion. – osowskit