2017-02-17 64 views
4

我有一個Github存儲庫供我們分享我們的開發。爲確保完整性,我們決定使用GPG簽署我們的提交和標籤。如何限制推送操作,只允許在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

你正在檢查任何提交'git log --grep'^ WIP''會找到。您似乎在要求檢查是否有任何提交缺少GPG簽名 - 因此您需要爲「有或沒有GPG簽名」編寫測試。那麼你可能還需要決定是否要檢查,如果*有*簽名,是否有效。但StackOverflow不是一個「爲我編寫的代碼」服務... – torek

+0

您可以允許推送提交,但添加一個狀態檢查,要求它們在合併前進行簽名。 – osowskit

回答

相關問題