繁体   English   中英

如何限制推送操作以仅允许在github中使用GPG签名的提交

[英]How to limit pushing operation to allow only commits that are signed with GPG in github

我有一个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

我怎么能这样做? 任何概念或例子都将受到高度赞赏。

看起来你在GitHub Enterprise上并试图创建一个拒绝任何未签名提交的预接收钩子脚本 - 对吗? 如果是这样,这里是来自GitHub的开源GPG脚本 如果你在GitHub.com上,请注意他们不支持预接收挂钩,而是你想要设置一个带有所需状态检查受保护分支来拒绝未签名的工作。

至于设置密钥,你看过这篇文章吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM