Commit Dashboard, GitHub ve GitLab üzerinden commitleri otomatik olarak çekip, belirli kriterlere göre filtreleyen ve bunları bir veritabanına kaydeden bir Java uygulamasıdır. Kullanıcı dostu bir arayüz sağlamak için Thymeleaf kullanılarak görselleştirme yapılmıştır.
Bu proje, cronjob kullanılarak GitHub ve GitLab commitlerini otomatik olarak çekmektedir. Varsayılan olarak, cronjob her saat başında çalışacak şekilde ayarlanmıştır.
Eğer cronjob çalışma zamanını değiştirmek isterseniz, cron paketinde bulunan CommitCronJob sınıfında yer alan cronjob ifadelerini düzenleyebilirsiniz.
Her saat başında çalışacak cronjob (varsayılan):
@Scheduled(cron = "0 0 * * * ?") // Her saat başında çalışır- GitHub ve GitLab üzerinden commitleri otomatik olarak çekme.
- Commit metadatalarını veritabanına kaydetme.
- Thymeleaf ile:
- Commit detaylarını görüntüleme.
- Son commitleri listeleme.
- Geliştirici bilgilerini görüntüleme.
- Commit listesini platforma göre filtreleme özelliği eklenmiştir.
- Kullanıcı, "GitHub", "GitLab" veya "All" seçeneklerini seçerek yalnızca istediği platformdaki commitleri görüntüleyebilir.
- Commit listesi, sayfalara bölünerek daha düzenli bir görünüm sağlanmıştır.
- Kullanıcı, her sayfada belirli sayıda commit görüntüleyebilir ve "Next/Previous" butonlarıyla sayfalar arasında gezinebilir.
Projeye merkezi bir hata yönetimi sistemi eklendi.
- Global Exception Handling: Tüm hatalar tek bir yapı üzerinden ele alınıyor.
- Hata Türleri:
ResourceNotFoundException: Kaynak bulunamadığında (404 Not Found).ApiException: API hataları için (400 Bad Request).- Genel hatalar için (
500 Internal Server Error).
- Kullanıcı Dostu Mesajlar: Anlaşılır hata mesajları ile kullanıcı bilgilendiriliyor.
- Java 17: Backend geliştirme için.
- Spring Boot: Uygulama geliştirme framework'ü.
- Hibernate/JPA: Veritabanı işlemleri için ORM.
- MySQL: Commit ve geliştirici verilerini saklamak için ilişkisel veritabanı.
- Thymeleaf: Web arayüzü geliştirme.
- REST API: GitHub ve GitLab'dan commitleri çekmek için.
- Projeyi Klonlayın
git clone https://github.com/kullanici-adiniz/commit-dashboard.git cd commit-dashboard
-
MySQL'de bir veritabanı oluşturun (ör.
commit_dashboard). -
Projede yer alan
application.propertiesdosyasını aşağıdaki gibi düzenleyin:spring.datasource.url=jdbc:mysql://localhost:3306/veritabanı adı spring.datasource.username=veritabani_kullanici_adi spring.datasource.password=veritabani_sifre
- URL: http://localhost:8080/developer
- Geliştirici bilgilerini ve toplam commit sayısını gösterir.
- URL: http://localhost:8080/developer/commits
- Son commitlerin listesini gösterir.
- URL: http://localhost:8080/developer/commits/{id}
- Belirli bir commit ile ilgili detayları gösterir.


