Ana içeriğe atla

GPG Key Kullanarak Doğrulanmış Git Commit Oluşturma

Github reponuzda yaptığınız değişikliklerin gerçekten siz tarafından yapıldığını göstermek için GPG gibi bir anahtar doğrulamasına ihtiyacınız var. Eğer Github hesabınızda, Ayarlar kısmında yer alan SSH and GPG Keys sayfasında Vigilant Mode seçeneğini seçerseniz, reponuzdaki commitlerin yanında bir tag kutusu belirecektir. Eğer SSH veya GPG gibi bir anahtar doğrulama mekanizması kullanmıyorsanız şu şekilde bir görselle karşılaşacaksınız


Bu unverified etiketi, gönderilen commitlerin doğrulanmadığını gösteriyor. O yüzden yerel bilgisayarımızda bir GPG ve SSH key oluşturmalı, bunu github'a bildirmeli ve commitlerimizin artık bu key ile imzalanacağını git programında ayarlamalıyız. Ben GPG key kullanacağım. O yüzden bu şekilde anlatıyorum. GPG keylerde son kullanma tarihi var. Öyleyse başlayalım.

Öncelikle yerel bilgisayarınıza git kurmalısınız. Şuradan kendi işletim sistemimize uygun olanı indiriyoruz. Kurulumdan sonra git bash ve git gui kullanılabilir hale gelecektir. Git reponuzun olduğu klasörde sağ tıklarsanız Git komut penceresini burada aç seçeneğini göreceksiniz. Git ayarlarınızı da yapmayı unutmayın. Yalnız aşağıdaki bağlantı yardımıyla ayarladığınız email adresinizi sonrasında yine GPG key oluşturmak için kullanacağımızı unutmayalım. Bu iki email eşleşmezse yine unverified olur commitlerimiz.

https://docs.github.com/en/get-started/getting-started-with-git/setting-your-username-in-git

https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address


 Şimdi bir tane GPG key oluşturmamız gerekiyor ve bu keyi Github profilimize eklememiz gerekiyor. Önce git bash açıyoruz ve şunları yazıyoruz. Eğer git 2.1.17 veya daha yeni bir sürümü kullanıyorsanız

2.1.17'den daha eski sürümlerde

yazıyoruz. Bize anahtar türü ile ilgili 1 veya 2 soru soracaktır. Enter ile varsayılan değerleri seçiyoruz. Sonrasında ise bize GPG key expiration day yani anahtarımızın ne kadar süre sonra geçersiz olacağını soracak. Eğer enter'a basarsanız varsayılan olarak sınırsız süreli bir key oluşturulacaktır. Sonrasında seçimlerin doğru olup olmadığına dair bir soru soracaktır. Yes diyoruz. Sonrasında kullanıcı adı girmenizi isteyecektir.  Buna github kullanıcı adımı yazdım ben. Ve son olarak bizden bir şifre isteyecektir. Bu şifreyi unutmayın, çünkü sonradan commitlerimizi repoya gönderirken bizden bu şifreyi isteyecektir. Artık keyimiz oluşturuldu. Şimdi oluşturduğumuz keyi görelim ve bize gerekli olan bilgiyi alalım

şöyle bir çıktı vermesi gerekecektir. Bize gerekli olan kısım 3AA5C34371567BD2 değeridir. Şimdi bu değeri kullanarak GPG key bilgilerimizi elde edeceğiz. 

Ekrana yazdırılan değer -----BEGIN PGP PUBLIC KEY BLOCK----- ile başlar ve -----END PGP PUBLIC KEY BLOCK----- ile biter. Bu iki satırı da kapsayacak şekilde çıktıyı kopyalayalım ve github'da Settings > SSH and GPG Keys > New GPG Key sayfasına geçelim. Burada key için bir isim verelim ve alttaki kısma kopyaladığımız çıktıyı yapıştırıp Add GPG Key ile Github tarafında işlemlerimizi bitirelim.

Şimdi yerelde git için GPG key ID kullanarak tanımlama yapalım. Yukarıdaki komutu tekrar kullanalım ve GPG Key ID bilgimizi alalım

Buradaki 3AA5C34371567BD2 değerini kopyalıyoruz. Aşağıdaki şekilde komut satırından git ayarlarını yapıyoruz

Artık default olarak her commitimiz doğrulanmış bir şekilde oluşturulacaktır. Bir commit oluşturup gönderirseniz şu şekilde görünmesi gerekiyor.


Artık işlemler tamam. Muhtemelen bir sürü yazım hatası vardır yazıda ama hızlı not almak adına bu şekilde yazmak zorunda kaldım. Vakit bulursam veya geri dönüşlerle düzeltirim. İyi çalışmalar dilerim.

EKLEME:

Yazıyı yazdıktan günler sonra tekrardan işlem yapmam gerekti. Ancak farkettim ki git ile birlikte gelen yerel gpg uygulaması sorun çıkarıyor. Bu gpg uygulamasını güncellemek de sıkıntılı çünkü  beraber geldiği git sürümüyle çalışıyor. Ben de arayışa girdim ve şurada yer alan GpG4Win uygulamasını buldum. Bu uygulamayı indirip kurduğunuzda, kendisiyle beraber Kleopatra isimli anahtar yönetim uygulaması geliyor. 

İndirme sonrasında anahtar oluşturup git ile bağlama işlemini tek tek anlatırdım ama bu arkadaşımız sağolsun bizi zahmettten kurtarmış :d. Sadece oluşturduğunuz anahtarı github hesabınıza bağlamayı anlatmamış ama onu da ben yukarıda anlattım zaten. Kleopatra uygulamasında anahtara tıkladığınızda export seçeneğini tıklarsanız size yukarıdaki key bilgilerini verecektir. Kopyalayıp github gpg key sayfasına eklerseniz işlemler tamam. Burada not olarak kalsın, bir gün işimize yarar.

Yorumlar

Bu blogdaki popüler yayınlar

Python Soket Programlama

Merhaba arkadaşlar. Bugün sizlerle birlikte Python'da socket programlama yapacağız. Bunun için Python da socket kütüphanesini kullanacağız. Peki nedir bu socket programlama? Soket programlama, sizin iki program arası yada iki bilgisayar arası iletişim kurmanızı sağlar. İşte bizde bugün iki programımızı birbiri ile haberleştireceğiz. Bunun için elimizde iki program olacak. Birinci program,mesaj bekleyen program olacak, diğeri ise mesaj gönderen program.

Infix to postfix dönüşümü

Infix to postfix dönüşümü, operatorün ortada olduğu a+b yazım şeklini operatorün sonda olduğu ab+ yazım şekline dönüştürme işlemidir.  Infix gösterimi, bizler için kolay bir gösterim olsa da makineler için öyle değildir. İfadeyi soldan sağa doğru okurken a + b * c işleminde önce b ile c yi çarpıp sonra da a ile toplamayı kolay bir şekilde yapabiliriz çünkü bizim ifadeyi sıra ile soldan sağa adım adım giderek okuma zorunluluğumuz yok. Önce b*c nin öncelikle olduğunu görerek oradan başlar, sonra a ile kolayca toplarız.

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim