5. Github Görev Yönetimi (Issues) ve Organizasyon
Yapılacak işleri, sorunları kaydedebileceğimiz, listeleyebileceğimiz, yönetebileceğimiz bir ekran.
Issues’lar projelerimizin görevlerini, geliştirmelerini,hatalarını izlemek için harika bir yoldur.
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.
Yukarıda görevlere etiket verilmiş ve bütün görevler açıktır. (open)
Milestone’ları aşağıdaki gibi oluşturabiliriz.
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.
Etiketleri de kendimiz yönetebiliriz, yeni etiket oluşturabilir, olan etiketlerin ismini değiştirebiliriz.
Bir issue’de olması gereken özellikleri aşağıdaki resimde özet olarak görebiliriz.
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:
Öncelikle New organization diyerek yeni bir organizasyon oluşturuyoruz.
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.
- Admin : Bütün repository’lere yeni kişi ekleme,clone, pull, push etme gibi yetkileri vardır.
- Write : Bütün repository’leri clone, pull, push etme yetkileri vardır.
- Read : Bütün repository’leri clone, pull etme yetkileri var.
- 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.
Davet ettiğimiz kişiye mail gidiyor ve eğer daveti kabul ederse, gruba üye olarak ekleniyor.
Grup içinde takımlar oluşturabiliriz ve bu takımlara kişiler ekleyebiliriz.
Organizasyondaki kişileri ve takımları özetleyecek olursak :
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.
Tehlikeli bir işlem olduğundan emin olmak için transfer edeceğimiz projenin ismini soruyor. Ayrıca nereye transfer edeceğimizi soruyor.
Bu repository’i grubun hangi takımları erişebilsin, onu seçiyoruz.
Böylece GrupOrnek, BorsaOtomasyonu repository’sine erişmiş oluyor ve bu grubun altında gözüküyor.