5. Github Görev Yönetimi (Issues) ve Organizasyon

Issues ( Görev Yönetimi)

Yapılacak işleri, sorunları kaydedebileceğimiz, listeleyebileceğimiz, yönetebileceğimiz bir ekran.

https://guides.github.com/features/issues/

Issues’lar projelerimizin görevlerini, geliştirmelerini,hatalarını izlemek için harika bir yoldur.

yeni issue

Aşağıdaki resimde bir issue örneği vardır. Bir issue’da bulunan özellikleri şöyle belirtebiliriz.
1. Bir başlık ve açıklama içerir.
2. Renk kodlu etiketler issue’ları sınıflandırmak ve filtrelemek için kullanılabilir. ( gmail’deki etiket mantığı gibi)
3. Milestone ( Kilometre taşı), issue’lar koymak için oluşturulan bir kap gibi düşünülebilir. Belirli özellikleri ya da proje fazlarını issue’larla ilişkilendirmek için yararlı bir yöntemdir. Örneğin; projenin versiyo 1.0'ı için şu issue’lar yapılacak, versiyon 2.0 için ise başka issue’lar gibi.
4. Verilen zaman içinde, verilen issue ile ilgilen kişiye ise assignee(devrelan) diyebiliriz. Bir organizasyon içinde hangi görevi kimin yapacağını assign (atama) edebiliyoruz.

Oluşturduğumuz issue’lara aşağıdaki gibi etiket atayabiliriz.

bug : kırmızı renkte ve issue’nin hata ile ilgili olduğunu gösterir.
duplicate : çiftleme ile ilgili görev, gri renktedir.
enhancement : mavi renktedir ve geliştirme içeren görevlere verilen etikettir.
help wanted : yeşil renk olup , yardım isteme ile ilgili görevlerdir.
invalid : açık gri renktedir ve geçersiz görevler için kullanılmaktadır.
question : pembe renkte olup soru ile ilgili görevler için kullanılır.
wontfix : tahmin edilemeyen bir görev için kullanılır ve beyaz renktedir.

issue’lerim

Yukarıda görevlere etiket verilmiş ve bütün görevler açıktır. (open)

Milestone’ları aşağıdaki gibi oluşturabiliriz.

milestone oluşturma

Issue’lara milestone atayarak, hangi adımların ilk, hangi adımların sonra yapılacağına dair projenin yol haritasını oluşturabilirsiniz. Bütün milestone’ların listesini aşağıdaki gibi görebiliriz.

milestone listesi

Etiketleri de kendimiz yönetebiliriz, yeni etiket oluşturabilir, olan etiketlerin ismini değiştirebiliriz.

etiket ekleme

Bir issue’de olması gereken özellikleri aşağıdaki resimde özet olarak görebiliriz.

issue’ye yorum yazma

Organizasyon

Organizasyon, birden çok kişi (projeye dahil olmalarını onayladığımız) ile proje geliştirme işlemidir diyebiliriz.

Eğer organizasyon yapısı olmasaydı süreç şöyle ilerleyecekti. Arkadaşlarınız projeyi fork edecekti. Sonra, üzerinde değişiklikler yaptıkça size pull request’ler atacaktı. Siz de bu request’leri inceleyecektiniz ki bunların bazıları otomatik birleştirebilirken bazıları otomatik birleştirilemeyecekti.

pull request at, pull request incele, pull request’i birleştir/ birleştirme gibi bir döngü olacaktı sürekli (ki bu iki kişilik senaryo). Organizasyon yapısında, kişilere proje üzerinde yetki vererek, pull request sisteminden sıyrılabiliriz. Yani yaptıkları değişiklik direk olarak projeye yansıyor.

Örnek bir organizayon yapısı oluşumunu aşağıdaki resimlerle inceleyelim:

organizasyon oluşturma

Öncelikle New organization diyerek yeni bir organizasyon oluşturuyoruz.

Organizasyonu kurma

Gruba üye eklemek için People sekmesine geliyoruz ve eklemek istediğimiz kişiyi aratıyoruz ve davet ediyoruz.

Gruba üye eklerken dört çeşit izin seviyesi var.

  1. Admin : Bütün repository’lere yeni kişi ekleme,clone, pull, push etme gibi yetkileri vardır.
  2. Write : Bütün repository’leri clone, pull, push etme yetkileri vardır.
  3. Read : Bütün repository’leri clone, pull etme yetkileri var.
  4. None : Bu üye sadece public olan repository’leri clone ve pull edebilir. Ayrıca atandığı takımın repository’lerini ve bireysel olarak atandığı repository’leri görebilir.
izin seviyeleri
üye ekleme
üyeyi davet eme

Davet ettiğimiz kişiye mail gidiyor ve eğer daveti kabul ederse, gruba üye olarak ekleniyor.

organizayona katılmayı onaylamak

Grup içinde takımlar oluşturabiliriz ve bu takımlara kişiler ekleyebiliriz.

takım oluşturma

Organizasyondaki kişileri ve takımları özetleyecek olursak :

grup üyeleri ve grubun sahibleri
grubun takımları

Organizasyon kurmadan da Collaborators ile başka kişilerle birlikte çalışabilirim. Collaborators ile projeye dahil olan kişi full haklara sahip oluyor, yani admin, owner gibi oluyor.

Nasıl Collaborators eklendiğini şu yazıda bulabilirsiniz.

Açtığımız bir repository’i bir organizasyona nasıl taşırım?

Repository’nin Settings’ine gelip, aşağıdaki gibi Transfer kısmına tıklıyorum.

projeyi transfer etme

Tehlikeli bir işlem olduğundan emin olmak için transfer edeceğimiz projenin ismini soruyor. Ayrıca nereye transfer edeceğimizi soruyor.

transfer onaylama işlemi

Bu repository’i grubun hangi takımları erişebilsin, onu seçiyoruz.

takım erişimi

Böylece GrupOrnek, BorsaOtomasyonu repository’sine erişmiş oluyor ve bu grubun altında gözüküyor.

respository’i gruba verildi.