Real-Time Conflict Predictor (Beta)
⚠️ BETA UYARISI: Bu extension beta aşamasındadır. Üretim ortamında kullanmadan önce kapsamlı testler yapmanız önerilir.
VS Code extension'ı olarak geliştirilmiş proaktif merge conflict tespit aracı.
🎯 Amaç
Developer'lar bir branch üzerinde çalışırken aynı dosyada master veya diğer branch'lerde yapılan değişikliklerden kaynaklanabilecek potansiyel merge conflictlerini önceden tespit etmek. Böylece zaman kaybı ve merge sırasında oluşacak hatalar azaltılır.
✨ Özellikler
📊 Dosya Bazlı Conflict Tahmini
- Açık dosyada master branch değişikliklerini kontrol eder
- GitHub'daki open PR'larda aynı dosyada yapılan değişiklikleri analiz eder
- Satır bazlı çakışma riski hesaplaması yapar
- Risk seviyesi: Yüksek (Kırmızı) / Orta (Sarı) / Düşük (Yeşil)
🎨 Görsel Uyarı Sistemi
- Status Bar: Anlık risk skoru görüntüleme
- Tree View Panel: Detaylı risk analizi ve öneriler
- Popup Uyarılar: Yüksek risk durumunda otomatik bildirim
⚡ Otomatik Analiz
- Dosya açıldığında otomatik kontrol
- Dosya kaydedildiğinde güncelleme
- Aktif editör değişiminde anlık analiz
🔧 GitHub Entegrasyonu
- Personal Access Token ile GitHub API bağlantısı
- Open PR'ları tarama
- Repository bilgilerini otomatik tespit
🚀 Kurulum
Extension Geliştirme Ortamı
Bağımlılıkları yükle:
npm install
TypeScript derle:
npm run compile
Extension'ı test et:
- VS Code'da
F5
tuşuna bas
- Yeni VS Code penceresi açılacak
- Extension Development Host ortamında test et
Konfigürasyon
VS Code ayarlarından (Ctrl/Cmd + ,
) şunları yapılandırabilirsiniz:
{
"conflictPredictor.githubToken": "ghp_your_token_here",
"conflictPredictor.enableGithubIntegration": true,
"conflictPredictor.autoCheckOnOpen": true
}
📖 Kullanım
1. Temel Kullanım
- Herhangi bir dosyayı açın
- Status bar'da conflict risk durumunu görün
- Yüksek risk durumunda uyarı alın
2. Detaylı Analiz
- Explorer panelinde "Conflict Risks" bölümünü açın
- Risk kategorilerine göre dosyaları görüntüleyin
- Her dosya için detaylı sebep ve öneriler
3. Manuel Kontrol
- Command Palette (
Ctrl/Cmd + Shift + P
)
- "Conflict Risk Kontrol Et" komutunu çalıştır
🔍 Risk Değerlendirme Algoritması
Git Analizi
- Uncommitted changes: Yerel değişiklikler tespit edilir
- Master'daki değişiklikler: Remote master branch'deki değişiklikler
- Çakışan satırlar: Aynı satırlarda değişiklik tespit edilir
- Master branch'de çalışma: Doğrudan master üzerinde çalışma riski
GitHub Analizi
- Open Pull Requests: Aynı dosyada PR'lar tespit edilir
- Remote Branches: Aktif remote branch'ler kontrol edilir
- Risk Seviyeleri: Yüksek/orta/düşük risk değerlendirmesi
Risk Seviyeleri
- Conflict Risk: 🔴 Kırmızı - Dikkatli merge gerekli
- Safe: 🟢 Yeşil - Güvenli
🛠 Geliştirme
Proje Yapısı
src/
├── extension.ts # Ana extension dosyası
├── conflictPredictor.ts # Risk analiz motoru
├── gitAnalyzer.ts # Git diff analizi
├── githubAnalyzer.ts # GitHub API entegrasyonu
├── statusBarManager.ts # Status bar yönetimi
└── conflictTreeProvider.ts # Tree view provider
demo/
├── example.js # JavaScript test dosyası
└── example.vue # Vue.js test dosyası
Ana Sınıflar
ConflictPredictor: Ana analiz motoru
- Git ve GitHub analizlerini birleştirir
- Risk seviyesini belirler
- Öneriler üretir
GitAnalyzer: Git repository analizi
- Diff hesaplama
- Satır bazlı çakışma tespiti
- Branch karşılaştırması
GithubAnalyzer: GitHub entegrasyonu
- Open PR taraması
- PR diff analizi
- Repository bilgisi alma
📊 Demo Senaryoları
Test Dosyaları
demo/example.js
: JavaScript kodu
demo/example.vue
: Vue.js komponenti
Test Adımları
- Demo dosyalarını aç
- Değişiklik yap ama commit etme
- Status bar'da risk skorunu gözlemle
- Tree view'da detayları incele
🔧 API Referansı
ConflictRisk Interface
interface ConflictRisk {
fileName: string;
filePath: string;
riskLevel: "low" | "medium" | "high";
riskScore: number;
reasons: string[];
conflictLines: number[];
recommendations: string[];
}
Commands
conflictPredictor.checkCurrentFile
: Manuel analiz
conflictPredictor.showConflictPanel
: Panel aç
🚧 Beta Sürümü Hakkında
Bu beta versiyonunda:
- ✅ Temel conflict detection algoritması
- ✅ GitHub API entegrasyonu
- ✅ Status bar ve tree view entegrasyonu
- ⚠️ Henüz tam olarak test edilmemiş edge case'ler olabilir
- ⚠️ Performans optimizasyonları devam ediyor
Gelecek Özellikler (Stable Release):
- [ ] Takım üyeleri için real-time uyarılar
- [ ] Visual diff görüntüleme
- [ ] Custom branch karşılaştırması
- [ ] Slack/Teams entegrasyonu
- [ ] Daha gelişmiş conflict detection algoritmaları
🤝 Katkıda Bulunma
- Fork'layın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature
)
- Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature'
)
- Branch'i push'layın (
git push origin feature/amazing-feature
)
- Pull Request açın
📝 Lisans
Bu proje MIT lisansı altında lisanslanmıştır.
👥 Takım
Real-Time Conflict Predictor projesi hackathon için geliştirilmiştir.
Not: Bu extension'ı üretim ortamında kullanmadan önce kapsamlı testler yapmanız önerilir.