GitHub Copilot CLI, Django projesinde terminalde copilot yazıp başlatılır; ajan proje dosyalarını okur, komutları çalıştırır ve sizin onayınızla değişiklik yapar. Django’nun uygulama, migration, ORM ve test araçları güçlü bir komut satırı döngüsü kurduğu için bu ajan iyi bir çalışma arkadaşı olur. Aşağıda kurulum, çalışma düzeni, tipik görevler, test doğrulama ve çoklu ajan kullanımı anlatılıyor. Daha önce ajanı kurmadıysanız GitHub Copilot CLI sayfasındaki başlangıç adımlarını izleyin.
Neden GitHub Copilot CLI Django işine uyar
Django’nun iş akışı zaten terminal etrafında döner: python manage.py startapp, makemigrations, migrate, test, shell. GitHub Copilot CLI aynı terminalde yaşar; copilot başlatıldığında proje dosyalarını doğrudan tarar ve manage.py komutlarını sizin yerinize önerebilir. Model–serializer–view–urls zinciri tekrarlı ve kuralı bellidir; ajan bu zinciri hızlı kurar. Ayrıca hata mesajlarını okuyup aynı oturumda düzeltebilir; migration hatasında makemigrations çıktısını görüp eksik alanı tamamlar. Gerçek bir Django projesinde en çok zaman alan kısım kod yazmak değil, doğru sırayı ve import zincirini kurmaktır; ajan bunu azaltır. Django’nun settings, apps, urls ve admin parçaları arasındaki bağımlılığı anlaması, tek başına snippet üretmesinden daha değerlidir.
Projeyi ajan için hazırlamak
GitHub Copilot CLI, proje kökünde .github/copilot-instructions.md veya AGENTS.md dosyasını okur. Django projelerinde bu dosya kısa ve buyurgan olmalı; test, lint ve migration komutları ile klasör kuralları ajanın ilk denemesinde doğru yere yazmasını sağlar. Ayrıca settings.py modülünün hangi ortamı kullandığını, testlerin nasıl koştuğunu belirtmek gerekir. Aşağıdaki örnek, gerçek bir projede işe yarayan asgari bir talimat dosyasıdır.
# Django projesi için ajan talimatları
## Komutlar
- Bağımlılık: `uv sync` (yoksa `pip install -r requirements/dev.txt`)
- Test: `pytest` (pytest-django kurulu)
- Lint: `ruff check .`
- Format: `black .`
- Tip kontrolü: `mypy .` (opsiyonel)
- Migration: `python manage.py makemigrations`, `python manage.py migrate`
- Kontrol: `python manage.py check`
## Klasör düzeni
- Yeni uygulamalar `apps/<app_name>/` altında oluşturulur.
- Her uygulamanın testleri `tests/` paketindedir.
- Ortak yardımcılar `common/` altında; yeni util yazmadan önce oraya bak.
## Django kuralları
- Model değişikliği yapınca mutlaka migration üret; mevcut migration dosyasını elle düzenleme.
- ORM sorgularında N+1 üretme; ilişkili veri için `select_related` veya `prefetch_related` kullan.
- İş mantığını view içinde bırakma; servis fonksiyonuna veya model metoduna taşı.
- DRF serializer'larında `ModelSerializer` kullan ve alan adlarını `source` ile değiştir.
- Şablonda karmaşık koşul yazma; template tag veya include ile böl.
- Testlerde `@pytest.mark.django_db` kullanmayı unutma.
Bu dosyanın yazım mantığı hakkında daha geniş bilgi için CLAUDE.md nasıl yazılır? AGENTS.md ve GEMINI.md rehberi sayfasına bakabilirsiniz. GitHub Copilot CLI için de aynı prensipler geçerlidir; dosyayı değiştirdikten sonra ajanı yeniden başlatmak en temiz sonucu verir.
Çalışma döngüsü ve örnek promptlar
Ajanla çalışırken şu sırayı koruyun: önce istenen değişikliği net tanımlayın, sonra ajanın küçük ve doğrulanabilir bir adım atmasını isteyin, testleri çalıştırın, git diff ile değişikliği gözden geçirin. Django projelerinde tek seferde hem model hem migration hem view değişikliği istemek risklidir; bunun yerine model ve migration tamamlanınca test edin, sonra DRF veya view katmanına geçin. Ajan aynı oturumda birkaç komut çalıştırabilir; yine de her adımı siz onaylayın. Daha fazla kullanım ipucu için GitHub Copilot CLI nasıl kullanılır? Adım adım rehber yazısına göz atın.
Aşağıdaki beş prompt tipik Django görevleri için başlangıç noktasıdır:
apps/ordersuygulamasını kur,OrderveOrderItemmodellerini yaz,python manage.py makemigrationsçalıştır ve oluşan migration dosyasını göster.Productmodelineslugalanı ekle, migration üret,python manage.py test apps.catalogçalıştır ve bozulan importları düzelt.ProductViewSetveProductSerializeryaz,urls.pydosyasına router ile bağla, sonrapytest apps/catalogçalıştır.- Şu view içindeki
for order in ordersdöngüsündeorder.items.all()çağrısı N+1 üretiyor;prefetch_relatedkullanarak düzelt ve sorgu sayısını çıktıda göster. - pytest-django ile
POST /api/orders/endpoint’inin stok azaltma senaryosunu yaz; test geçene kadar düzelt.
Bu promptlarda komut adlarını açıkça yazmak ajanın doğru aracı çağırmasını sağlar. Türkçe veya İngilizce fark etmez; önemli olan dosya yolu ve beklenen çıktıyı vermektir.
Ajanın iyi olduğu işler ve Django tuzakları
Ajan özellikle tekrarlı Django katmanlarında hızlıdır, ancak güvenlik ve veri bütünlüğü sizin gözetiminizde olmalıdır.
| Görev | Ajan neyi iyi yapar | Dikkat edilecek nokta |
|---|---|---|
| Model ve migration | models.py alanlarını, __str__ ve admin kaydını hızlı üretir | Mevcut migration dosyalarını düzenlemeye kalkabilir; her zaman yeni migration isteyin |
| DRF endpoint | Serializer, ViewSet, router zincirini kısa sürede kurar | Permission, throttle ve filtreleme sınıflarını unutabilir; istekte açıkça sayın |
| ORM sorgusu | select_related/prefetch_related önerebilir | Lazy relation’ları test etmeden yeterli diyebilir; sorgu sayısını doğrulayın |
| pytest-django testi | Basit fixture ve django_db marker’ını yazar | Gerçek DB yerine transactional test davranışını karıştırabilir; fixture kapsamını kontrol edin |
| Şablon ve form | Form ve template tag üretir | Şablona Python benzeri logic sıkıştırabilir; TemplateDoesNotExist hatalarını göz ardı edebilir |
Django’ya özgü en büyük tuzak migration çakışmasıdır. Ajan, var olan bir migration dosyasını değiştirmeye kalkabilir; bu üretimde geri alınamaz farklara yol açar. İkincisi settings.py ortam farkıdır: ajan test için local ayar kullanırken siz üretim değerlerini gözden kaçırabilirsiniz. Üçüncüsü ORM N+1: ajan incelemeden bırakırsa sayfa yavaşlar. Dördüncüsü DRF’de permission_classes, authentication_classes, filter_backends gibi güvenlik katmanlarını unutabilir; promptlarda bunları açıkça isteyin. Beşincisi sinyaller ve transaction sınırlarıdır; ajan post_save sinyalini yanlış yerde kullanabilir veya transaction.atomic sarmayı atlayabilir. Bu noktaları git diff ile özellikle gözden geçirin.
Django’da test ve doğrulama
Ajanın her adımından sonra üç kontrolü birlikte çalıştırın: python manage.py check, pytest, python manage.py makemigrations --check --dry-run. Birincisi Django proje yapılandırmasını, ikincisi davranışı, üçüncüsü migration eksiklerini yakalar. Ajan test geçti dese bile git diff --stat ile hangi dosyaların değiştiğini görün; özellikle migrations/ altındaki her dosyayı okuyun. pytest-django kullanan projede pytest komutu yeterli; test veritabanı oluşturulurken takılırsa ajanın --reuse-db kullanmasını isteyin. Testlerin gerçekten kritik senaryoyu kapsadığını kontrol edin; ajan bazen sadece 200 dönen yüzeysel bir test yazar. Ayrıca python manage.py check --deploy ile üretime yakın ayarları da doğrulatabilirsiniz; bu ajanın gözden kaçırdığı güvenlik ayarlarını ortaya çıkarır.
Birden çok ajanı AgentVera ile koşmak
Birden çok ajanı aynı Django projesinde koşturacaksanız AgentVera uygun bir kontrol paneli olur. Her ajan kendi git worktree’sinde çalıştığı için migration dosyaları ve apps/ klasörleri çakışmaz. Ajan bir turu bitirdiğinde ikinci model kodu inceler; bulgular doğrudan file:line olarak verilir, böylece bozuk import veya yanlış migration hızla bulunur. Tur snapshot’ları checkpoint olarak tutulur; hatalı bir değişiklik tek tıkla geri alınabilir. Token bütçeleri günlük taşmayı önler; ajan duraksasa bile konuşma geçmişi korunur. Django işlerinde bu özellikler çoklu ajan koordinasyonunu güvenli hale getirir.
Sonuç
GitHub Copilot CLI, Django projelerinde model, migration, test ve DRF döngüsünü hızlandıran pratik bir yardımcıdır. Başarı, doğru talimat dosyası ve küçük adımlarla çalışmaktan geçer. Her çıktıyı git diff ve testlerle doğrulayın; migration ve güvenlik katmanlarını asla atlamayın.