25 puan yazan ironlung 2023-06-14 | 2 yorum | WhatsApp'ta paylaş

*git commit mesajı yazarken zorlandığınız anlar

  • Emoji kullanıp issue numarası da eklenen commit mesajları takip etmeyi kolaylaştırır ve daha düzenli görünür
  • Ancak commit mesajı uzayıp karmaşıklaştıkça bunu her seferinde yazmak zahmetli olur ve hata yapma olasılığı artar
  • Her seferinde uygun emojiyi bulmak da yorucudur

*Git Hooks ile git commit mesajlarını zorunlu kılmak

  • Git Hooks, Git ile ilgili bir olay gerçekleştiğinde bizim belirlediğimiz script'i çalıştıran bir özelliktir
  • Bu özellik server hook ve client hook olarak ikiye ayrılır

*Server hook: Git'in push rule özelliğini kullanmak

  • pre-receive hook'una commit mesajını denetleyen bir script eklenirse, kurala uymayan commit'lerin server'a push edilmesi engellenir
  • GitLab'da push rule özelliği kullanılarak commit mesajları düzenli ifadelerle denetlenebilir
  • Düzenli ifadeye uymayan commit mesajı tespit edilirse ilgili push reddedilir ve hata oluşturulur

*Client hook: Push etmeden önce önceden denetlemek

  • Commit'i tamamen tamamlamadan önce çalışan commit-msg hook'unda bir script oluşturarak commit mesajı denetlenebilir
  • Commit mesajını değiştirmek istenirse ilgili script prepare-commit-msg hook'una yazılabilir

*Infograb'ın commit mesajı otomatikleştirme yöntemi

  • Husky ve Commitlint kullanılarak commit mesajları için bir otomasyon sistemi kuruldu
  • Husky, Git Hooks yönetimini kolaylaştıran bir npm modülüdür. .husky dizini altında script içeren hook dosyaları oluşturulur. Ardından npx husky install komutu girildiğinde ilgili script Git'e kaydedilir
  • commitlint, commit convention'larını kolayca yönetmeye ve commit mesajlarını denetlemeye yarayan bir araçtır. Takımın belirlediği commit convention'ı JSON biçiminde yazılır. Sonrasında commitlint komutuyla mesaj denetlenir

1)Commit convention'ını commitlint biçiminde tanımlamak

  • Commit mesajının temel şablonuna göre commitlint.config.ts dosyasında her takıma uygun özellikler tanımlanır

2)Husky'ye commitlint eklemek

  • commit-msg hook'una commitlint komutu eklenir. Script .husky/commit-msg dosyasına yazılır

3)Otomasyon eklemek

  • Emoji ekleme veya issue numarası yerleştirme gibi işler otomatikleştirilebilir
  • Infograb Product Team'de yalnızca type (feat, fix) girildiğinde emojinin otomatik eklenmesi, type'ın ilk harfinin otomatik olarak büyük yapılması ve branch'te issue numarası varsa footer'a issue numarasının otomatik eklenmesi ayarlanmış durumda
  • Otomasyon script'i prepare-commit-msg hook'una eklenebilir

2 yorum

 
yangeok 2023-06-20

commitizen ile birlikte kullanmak da iyi olur

 
roxie 2023-06-24

Harika araç, teşekkürler.