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