Açık kaynak proje / 2026
EnvDoctor
.env dosyalarını denetleyen, şablonları eşitleyen ve kodda kullanılıp belgelenmemiş ortam değişkenlerini arayan, sıfır bağımlılıklı bir Python aracı.
Problem
Yerelde eklenip .env.example’a yazılmayı unutulan bir değişken deploy’da üretimi çökertiyor; kullanılmayan değişkenler ise kimse gerekli olup olmadığını bilmediği için birikiyor.
Yaklaşım
EnvDoctor, .env ↔ .env.example sözleşmesini denetliyor, eksik yer tutucuları güvenle senkronize ediyor ve AST analiziyle kodda kullanılıp dokümante edilmemiş değişkenleri buluyor.
Sistem mimarisi
Yalnızca Python standart kütüphanesi; çok satırlı tırnaklı değerleri işliyor ve CI hatları için JSON çıktı üretiyor.
Kararlar ve sonuç
Strict mod, sözleşme ihlalinde derlemeyi düşürüyor — konfigürasyon kayması uyarı değil, derleme hatası olarak ele alınıyor. PyPI’da envdoctor-cli olarak kurulabiliyor. check, sync ve audit komutları yapılandırma dosyalarını karşılaştırıyor, şablonlara maskelenmiş yer tutucular ekliyor ve kaynak kodunda ortam değişkeni kullanımını arıyor; JSON çıktısı otomasyona bağlanabiliyor.
Kullanım Alanları ve Komutlar
- Python ve full-stack projelerde .env ile .env.example arasındaki eksik veya fazladan ortam değişkenlerini deploy öncesi otomatik yakalamak.
- Kaynak kodda os.getenv / os.environ üzerinden okunup belgelenmemiş ortam değişkenlerini AST analiziyle bulmak.
- CI/CD hatlarında JSON çıktı ve strict mod ile konfigürasyon kaymasını derleme hatası olarak durdurmak.
# Kurulum ve sözleşme kontrolü / Install and validate .env contract
pip install envdoctor-cli
envdoctor check --strict
# Şablonu maskeli yer tutucularla eşitle ve kodda AST denetimi yap
envdoctor sync
envdoctor audit --format json