GPG Signed commit check script
This commit is contained in:
54
git-sign-check.sh
Executable file
54
git-sign-check.sh
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Federatif Signed Commit Denetleyici (Etkileşimli versiyon)
|
||||||
|
# Gereksinimler: gpg, git
|
||||||
|
|
||||||
|
echo "🔐 Lütfen GPG key ID'nizi girin (örnek: D200B456637BC4F3):"
|
||||||
|
read -r KEYID
|
||||||
|
|
||||||
|
if [ -z "$KEYID" ]; then
|
||||||
|
echo "❌ GPG key ID girilmedi. Çıkılıyor."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🔍 GPG Key ID: $KEYID"
|
||||||
|
|
||||||
|
# GPG key'den email'leri çek
|
||||||
|
echo "📧 GPG Key'e bağlı epostalar:"
|
||||||
|
gpg --list-keys "$KEYID" | grep -E 'uid' | sed -E 's/.*<([^>]+)>.*/\1/' | tee /tmp/gpg_emails.txt
|
||||||
|
|
||||||
|
# Git config'deki email ve signing key
|
||||||
|
GIT_EMAIL=$(git config user.email)
|
||||||
|
GIT_SIGNKEY=$(git config user.signingkey)
|
||||||
|
GIT_REMOTE=$(git remote get-url origin)
|
||||||
|
|
||||||
|
echo "📝 Git config email: $GIT_EMAIL"
|
||||||
|
echo "🔐 Git signing key: $GIT_SIGNKEY"
|
||||||
|
echo "🌐 Git remote URL: $GIT_REMOTE"
|
||||||
|
|
||||||
|
# SSH bağlantısı mı?
|
||||||
|
if [[ "$GIT_REMOTE" == git@github.com:* ]]; then
|
||||||
|
echo "✅ SSH bağlantısı kullanılıyor."
|
||||||
|
else
|
||||||
|
echo "⚠️ Uyarı: GitHub bağlantısı SSH değil. HTTPS kullanılıyorsa GPG doğrulama etkilenmez ama SSH tercih edilir."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Son commit signed mı?
|
||||||
|
echo "🧾 Son commit imza durumu:"
|
||||||
|
git log --show-signature -1
|
||||||
|
|
||||||
|
# Eşleşme kontrolü
|
||||||
|
echo "🔗 GPG ↔ Git eşleşme kontrolü:"
|
||||||
|
MATCH=false
|
||||||
|
while read -r gpg_email; do
|
||||||
|
if [[ "$gpg_email" == "$GIT_EMAIL" ]]; then
|
||||||
|
echo "✅ GPG email Git config ile eşleşiyor: $gpg_email"
|
||||||
|
MATCH=true
|
||||||
|
fi
|
||||||
|
done < /tmp/gpg_emails.txt
|
||||||
|
|
||||||
|
if [ "$MATCH" = false ]; then
|
||||||
|
echo "❌ GPG email Git config ile eşleşmiyor. Commit'ler GitHub'da 'Unverified' olabilir."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🎯 Denetim tamamlandı."
|
Reference in New Issue
Block a user