GitLab-JIRA-Jenkins Entegrasyonu

Buse Genc
3 min readNov 20, 2020

--

Çalışırken beni en çok yoran konulardan biri kullandığım ortamlar arası entegrasyon olmamasından kaynaklıydı. Peki ben buna nasıl bir çözüm buldum?

Konuya daha yakından bakarsak öncelikle sorunum neydi?

İşim gereği Jira ile ilgili geliştirmeler yapıyorum. Tabi aynı zamanda da şirket geneli tüm iş takipleri de Jira’da yapılıyor. Yaptığımız geliştirmeleri ise GitLab içerisinde repolarda tutuyoruz. Bir tarafta işler Jira’da , bir tarafta GitLab’ta…Hangi işle ilgili ne geliştirme yaptığımı nasıl daha kolay takip ederim diye araştırmaya başladığımda farkettim ki GitLab ve Jira bu işi kendi arasında halletmiş bile .

Nasıl halletmişler?

  • GitLab Reponuzun içinde yer alan SettingsIntegrations kısmına gidip orada yer alan Jira’ya tıklıyoruz.
  • Ardından açılan sayfadaki yerleri doldurup , kaydettiğimizde aslında Jira ile entegrasyonumuzu aktif etmiş oluyoruz.

GitLab’da geliştirmeleri yaparken nasıl Jira’da yer alan issueda gözükecek?

Yaptığımız commit ve merge requestlerde Jira issuesunun IDsini eklediğimizde artık Jira’da çalıştığımız issue altında bir GitLab linki oluşmuş oluyor.

https://docs.gitlab.com/ee/user/project/integrations/jira.html#configuring-jira

Peki Jenkins konuya nereden dahil oldu?

Jenkins kaba tabiriyle bir CI(Continous Integration) aracıdır.

Diyelim ki sunucuya erişimimiz yok ya da olsa bile sürekli sunucuya gidip güncelleme yapmak çok gereksiz bir işi yükü , fakat geliştirmelerimizi güncel tutmak zorundayız. Bu noktada Jenkins işe dahil oluyor. GitLab ve Jenkins arası entegrasyonunu yaptığımızda, artık GitLab repomuzda yaptığımız tüm değişiklikleri Jenkins aracılığıyla sunucuda güncelleyebiliyoruz.

Gitlab-Jenkins Entegrasyonu nasıl yapılıyor?

  • Ilk olarak bir Access Token generate ediyoruz.

Gitlab → User Settings → Access Token

  • Jenkins’te Global Key configure ederken , API Token olarak bir önceki adımda ürettiğimiz tokenı kullanıyoruz.

Jenkins → Credentials → System → Global Credentials → Add Credentials

  • Ardından GitLab ve Jenkins arası konfigürayonu şuradan tamamlıyoruz.

Jenkins → Manage Jenkins → Configure System → Gitlab

Ardından projenize göre Jenkins üzerinde bir Trigger build ediyoruz. Burada bir Secret Tokenımız elde ediyoruz. Bu tokenı son adımımızda yani GitLab’da webhook eklerken kullanıyoruz.

Günün sonunda ben ne elde ettim?

Kısaca özetlemek gerekirse kullandığım toolları daha verimli kullanmaya başladım.

Manuel gerçekleştirdiğimiz her işlemin otomotize yapılmasını sağlayıp , CI/CD yapısını kavramış oldum.

PS: Geliştirmeler JIRA Server için yapıldı.

Daha detaylı bilgi için ;

--

--