wip(docs): i18n (#12681)

This commit is contained in:
Adam
2026-02-09 11:34:35 -06:00
committed by GitHub
parent f74c0339cc
commit dc53086c1e
642 changed files with 192745 additions and 509 deletions
@@ -0,0 +1,237 @@
---
title: İzinler
description: Hangi işlemlerin çalıştırılması için onay işlemini kontrol edin.
---
OpenCode, belirli bir eylemin otomatik olarak mı çalıştırılacağına, size sorulacağına veya engelleneceğine karar vermek için `permission` yapılandırmasını kullanır.
`v1.1.1` itibarıyla eski `tools` boolean yapılandırması kullanımdan kaldırıldı ve `permission` ile birleştirildi. Eski `tools` yapılandırması geriye dönük uyumluluk açısından hâlâ desteklenmektedir.
---
## Actions
Each permission rule resolves to one of:
- `"allow"` — onay olmadan çalıştır
- `"ask"` — onay istemi
- `"deny"` — eylemi engelle
---
## Yapılandırma
İzinleri genel olarak (`*` ile) ayarlayabilir ve belirli araçları geçersiz kılabilirsiniz.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"*": "ask",
"bash": "allow",
"edit": "deny"
}
}
```
Ayrıca tüm izinleri aynı anda ayarlayabilirsiniz:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": "allow"
}
```
---
## Granular Rules (Object Syntax)
Çoğu izin için, araç girişine bağlı olarak farklı eylemleri uygulamak için bir nesneyi kullanabilirsiniz.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"bash": {
"*": "ask",
"git *": "allow",
"npm *": "allow",
"rm *": "deny",
"grep *": "allow"
},
"edit": {
"*": "deny",
"packages/web/src/content/docs/*.mdx": "allow"
}
}
}
```
Kurallar, **son eşleşen kuralın kazanması** ile kalıp eşleşmesine göre değerlendirilir. Yaygın bir model, tümünü yakala `"*"` kuralını ilk sıraya koymak ve daha spesifik kuralları ondan sonra koymaktır.
### Wildcards
İzin kalıpları basit joker karakter eşleştirmesini kullanır:
- `*` herhangi bir karakterin sıfır veya daha fazlasıyla eşleşir
- `?` matches exactly one character
- All other characters match literally
### Ana Dizin Genişletme
Ana dizininize referans vermek için bir modelin başlangıcında `~` veya `$HOME` kullanabilirsiniz. Bu özellikle [`external_directory`](#external-directories) kuralları için kullanışlıdır.
- `~/projects/*` -> `/Users/username/projects/*`
- `$HOME/projects/*` -> `/Users/username/projects/*`
- `~` -> `/Users/username`
### Dış Dizinler
OpenCode'un başlatıldığı çalışma dizini dışındaki yollara dokunan araç çağrılarına izin vermek için `external_directory` kullanın. Bu, girdi olarak bir yolu alan tüm araçlar için geçerlidir (örneğin `read`, `edit`, `list`, `glob`, `grep` ve birçok `bash` komutu).
Ana sayfa genişletmesi (`~/...` gibi) yalnızca bir kalıbın nasıl yazıldığını etkiler. Geçerli çalışma alanının harici bir yolunu oluşturmaz, dolayısıyla çalışma dizini dışındaki yollara yine de `external_directory` aracılığıyla izin verilmesi gerekir.
Örneğin bu, `~/projects/personal/` altındaki her şeye erişime izin verir:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"external_directory": {
"~/projects/personal/**": "allow"
}
}
}
```
Burada izin verilen herhangi bir dizin, geçerli çalışma alanıyla aynı varsayılanları devralır. [`read` defaults to `allow`](#defaults)'dan bu yana, geçersiz kılınmadığı sürece `external_directory` altındaki girişler için okumalara da izin verilir. Bir aracın bu yollarda kısıtlanması gerektiğinde (okumaları tutarken düzenlemeleri engellemek gibi) açık kurallar ekleyin:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"external_directory": {
"~/projects/personal/**": "allow"
},
"edit": {
"~/projects/personal/**": "deny"
}
}
}
```
Listeyi güvenilir yollara odaklı tutun ve diğer araçlar için gereken ekstra izin verme veya reddetme kurallarını katmanlayın (örneğin `bash`).
---
## Mevcut İzinler
OpenCode izinleri araç adına ve birkaç güvenlik görevlisine göre anahtarlanır:
- `read` — bir dosyayı okumak (dosya yoluyla eşleşir)
- `edit` — tüm dosya değişiklikleri (`edit`, `write`, `patch`, `multiedit`'yi kapsar)
- `glob` — dosya genellemesi (glob düzeniyle eşleşir)
- `grep` — içerik arama (regex modeliyle eşleşir)
- `list` — bir dizideki dosyaları listeleme (dizin yoluyla eşleşir)
- `bash` — kabuk komutlarını çalıştırma (`git status --porcelain` gibi ayrıştırılmış komutlarla eşleşir)
- `task` — alt aracıların başlatılması (alt aracı türüyle eşleşir)
- `skill` — bir beceri yükleniyor (beceri adıyla eşleşir)
- `lsp` — LSP sorgularını çalıştırıyor (şu anda ayrıntılı değil)
- `todoread`, `todowrite` — reading/updating yapılacaklar listesi
- `webfetch` — URL getiriliyor (URL ile eşleşiyor)
- `websearch`, `codesearch` — web/code arama (sorguyla eşleşir)
- `external_directory` — bir araç proje çalışma dizini dışındaki yollara dokunduğunda tetiklenir
- `doom_loop` — aynı araç çağrısı aynı girdiyle 3 kez tekrarlandığında tetiklenir
---
## Defaults
Hiçbir şey belirtmezseniz OpenCode izin verilen varsayılanlardan başlar:
- Çoğu izin varsayılan olarak `"allow"` şeklindedir.
- `doom_loop` ve `external_directory` varsayılan olarak `"ask"`'dir.
- `read`, `"allow"`'dir, ancak `.env` dosyaları varsayılan olarak reddedilir:
```json title="opencode.json"
{
"permission": {
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny",
"*.env.example": "allow"
}
}
}
```
---
## “Sor” Ne Yapar?
OpenCode onay istediğinde kullanıcı arayüzü üç sonuç sunar:
- `once` — yalnızca bu isteği onayla
- `always` — önerilen kalıplarla eşleşen gelecekteki istekleri onaylayın (geçerli OpenCode oturumunun geri kalanı için)
- `reject` — isteği reddet
`always`'ın onaylayacağı kalıp seti araç tarafından sağlanır (örneğin, bash onayları genellikle `git status*` gibi güvenli bir komut önekini beyaz listeye alır).
---
## Agents
Aracı başına izinleri geçersiz kılabilirsiniz. Aracı izinleri genel yapılandırmayla birleştirilir ve aracı kuralları öncelikli olur. [Learn more](/docs/agents#permissions) temsilci izinleri hakkında.
:::note
Daha ayrıntılı desen eşleştirme örnekleri için yukarıdaki [Granular Rules (Object Syntax)](#granular-rules-object-syntax) bölümüne bakın.
:::
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"bash": {
"*": "ask",
"git *": "allow",
"git commit *": "deny",
"git push *": "deny",
"grep *": "allow"
}
},
"agent": {
"build": {
"permission": {
"bash": {
"*": "ask",
"git *": "allow",
"git commit *": "ask",
"git push *": "deny",
"grep *": "allow"
}
}
}
}
}
```
Aracı izinlerini Markdown'da da yapılandırabilirsiniz:
```markdown title="~/.config/opencode/agents/review.md"
---
description: Code review without edits
mode: subagent
permission:
edit: deny
bash: ask
webfetch: deny
---
Only analyze code and suggest changes.
```
:::tip
Bağımsız değişken içeren komutlar için kalıp eşleştirmeyi kullanın. `"grep *"`, `grep pattern file.txt`'ye izin verir, ancak `"grep"` tek başına onu engeller. `git status` gibi komutlar varsayılan davranış için çalışır ancak argümanlar aktarıldığında açık izin (`"git status *"` gibi) gerektirir.
:::