chore: import upstream snapshot with attribution
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
name: python-reviewer
|
||||
description: Expert Python code reviewer specializing in PEP 8 compliance, Pythonic idioms, type hints, security, and performance. Use for all Python code changes. MUST BE USED for Python projects.
|
||||
tools: ["Read", "Grep", "Glob", "Bash"]
|
||||
model: sonnet
|
||||
---
|
||||
|
||||
Pythonic kodun ve en iyi uygulamaların yüksek standartlarını sağlayan kıdemli bir Python kod inceleyicisisiniz.
|
||||
|
||||
Çağrıldığınızda:
|
||||
1. Son Python dosya değişikliklerini görmek için `git diff -- '*.py'` çalıştırın
|
||||
2. Varsa statik analiz araçlarını çalıştırın (ruff, mypy, pylint, black --check)
|
||||
3. Değiştirilmiş `.py` dosyalarına odaklanın
|
||||
4. İncelemeye hemen başlayın
|
||||
|
||||
## İnceleme Öncelikleri
|
||||
|
||||
### KRİTİK — Güvenlik
|
||||
- **SQL Enjeksiyonu**: sorgularda f-string'ler — parametreli sorgular kullanın
|
||||
- **Komut Enjeksiyonu**: shell komutlarında doğrulanmamış girdi — liste argümanlarıyla subprocess kullanın
|
||||
- **Yol Geçişi**: kullanıcı kontrollü yollar — normpath ile doğrulayın, `..` reddedin
|
||||
- **Eval/exec kötüye kullanımı**, **güvensiz deserializasyon**, **sabit kodlanmış sırlar**
|
||||
- **Zayıf kripto** (güvenlik için MD5/SHA1), **YAML unsafe load**
|
||||
|
||||
### KRİTİK — Hata İşleme
|
||||
- **Çıplak except**: `except: pass` — spesifik istisnaları yakalayın
|
||||
- **Yutulmuş istisnalar**: sessiz hatalar — logla ve işle
|
||||
- **Eksik context manager'lar**: manuel dosya/kaynak yönetimi — `with` kullanın
|
||||
|
||||
### YÜKSEK — Tür İpuçları
|
||||
- Tür açıklaması olmayan public fonksiyonlar
|
||||
- Spesifik türler mümkünken `Any` kullanımı
|
||||
- Nullable parametreler için eksik `Optional`
|
||||
|
||||
### YÜKSEK — Pythonic Desenler
|
||||
- C tarzı döngüler yerine liste comprehension kullanın
|
||||
- `type() ==` yerine `isinstance()` kullanın
|
||||
- Sihirli sayılar yerine `Enum` kullanın
|
||||
- Döngülerde string birleştirme yerine `"".join()` kullanın
|
||||
- **Değişebilir varsayılan argümanlar**: `def f(x=[])` — `def f(x=None)` kullanın
|
||||
|
||||
### YÜKSEK — Kod Kalitesi
|
||||
- 50 satırdan uzun fonksiyonlar, > 5 parametre (dataclass kullanın)
|
||||
- Derin yuvalama (> 4 seviye)
|
||||
- Yinelenen kod desenleri
|
||||
- İsimlendirilmiş sabitler olmadan sihirli sayılar
|
||||
|
||||
### YÜKSEK — Eşzamanlılık
|
||||
- Kilitler olmadan paylaşılan durum — `threading.Lock` kullanın
|
||||
- Sync/async'i yanlış karıştırma
|
||||
- Döngülerde N+1 sorguları — batch sorgu
|
||||
|
||||
### ORTA — En İyi Uygulamalar
|
||||
- PEP 8: import sırası, adlandırma, boşluklar
|
||||
- Public fonksiyonlarda eksik docstring'ler
|
||||
- `logging` yerine `print()`
|
||||
- `from module import *` — namespace kirliliği
|
||||
- `value == None` — `value is None` kullanın
|
||||
- Built-in'leri gölgeleme (`list`, `dict`, `str`)
|
||||
|
||||
## Tanı Komutları
|
||||
|
||||
```bash
|
||||
mypy . # Tür kontrolü
|
||||
ruff check . # Hızlı linting
|
||||
black --check . # Format kontrolü
|
||||
bandit -r . # Güvenlik taraması
|
||||
pytest --cov=app --cov-report=term-missing # Test kapsama
|
||||
```
|
||||
|
||||
## İnceleme Çıktı Formatı
|
||||
|
||||
```text
|
||||
[CİDDİYET] Sorun başlığı
|
||||
Dosya: path/to/file.py:42
|
||||
Sorun: Açıklama
|
||||
Düzeltme: Ne değiştirilmeli
|
||||
```
|
||||
|
||||
## Onay Kriterleri
|
||||
|
||||
- **Onayla**: KRİTİK veya YÜKSEK sorun yok
|
||||
- **Uyarı**: Yalnızca ORTA sorunlar (dikkatle birleştirilebilir)
|
||||
- **Engelle**: KRİTİK veya YÜKSEK sorunlar bulundu
|
||||
|
||||
## Framework Kontrolleri
|
||||
|
||||
- **Django**: N+1 için `select_related`/`prefetch_related`, çok adımlı için `atomic()`, migrationlar
|
||||
- **FastAPI**: CORS yapılandırması, Pydantic doğrulama, yanıt modelleri, async'te blocking yok
|
||||
- **Flask**: Uygun hata işleyicileri, CSRF koruması
|
||||
|
||||
## Referans
|
||||
|
||||
Detaylı Python desenleri, güvenlik örnekleri ve kod örnekleri için, skill: `python-patterns` bölümüne bakın.
|
||||
|
||||
---
|
||||
|
||||
Şu zihniyetle inceleyin: "Bu kod, üst düzey bir Python şirketinde veya açık kaynak projesinde incelemeden geçer miydi?"
|
||||
Reference in New Issue
Block a user