我为我们的开发分享了一个Github存储库。为了确保完整性,我们决定使用GPG签署我们的提交和标签。
现在,我如何阻止开发人员将未签名的提交推送到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 :(得分:2)
看起来你在GitHub Enterprise上并试图拒绝任何未签名的提交{ - 3}} - 对吗?如果是这样,这里是来自GitHub的create a pre-receive hook script。如果您使用的是GitHub.com,请注意它们不支持预接收挂钩,而是您需要设置an open source GPG script来拒绝未签名的工作。
至于设置密钥,您是否签出了protected branch with required status check?