summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/ru/permissions.mdx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-09 11:34:35 -0600
committerGitHub <[email protected]>2026-02-09 11:34:35 -0600
commitdc53086c1e73d43d3a28fc4cdf161e83d09b1877 (patch)
tree45a1d0e38de958d0886a5120b2806b21db74145b /packages/web/src/content/docs/ru/permissions.mdx
parentf74c0339cc6315f7e7743e26b7eab47ce026c239 (diff)
downloadopencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.tar.gz
opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.zip
wip(docs): i18n (#12681)
Diffstat (limited to 'packages/web/src/content/docs/ru/permissions.mdx')
-rw-r--r--packages/web/src/content/docs/ru/permissions.mdx237
1 files changed, 237 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/ru/permissions.mdx b/packages/web/src/content/docs/ru/permissions.mdx
new file mode 100644
index 000000000..104aaf657
--- /dev/null
+++ b/packages/web/src/content/docs/ru/permissions.mdx
@@ -0,0 +1,237 @@
+---
+title: Разрешения
+description: Контролируйте, какие действия требуют одобрения для выполнения.
+---
+
+OpenCode использует конфигурацию `permission`, чтобы решить, должно ли данное действие выполняться автоматически, запрашивать вас или блокироваться.
+
+Начиная с `v1.1.1`, устаревшая логическая конфигурация `tools` устарела и была объединена с `permission`. Старая конфигурация `tools` по-прежнему поддерживается для обеспечения обратной совместимости.
+
+---
+
+## Действия
+
+Каждое правило разрешения разрешается в одно из:
+
+- `"allow"` — запуск без одобрения
+- `"ask"` — запрос на одобрение
+- `"deny"` — заблокировать действие
+
+---
+
+## Конфигурация
+
+Вы можете устанавливать разрешения глобально (с помощью `*`) и переопределять определенные инструменты.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "*": "ask",
+ "bash": "allow",
+ "edit": "deny"
+ }
+}
+```
+
+Вы также можете установить все разрешения одновременно:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": "allow"
+}
+```
+
+---
+
+## Детальные правила (синтаксис объекта)
+
+Для большинства разрешений вы можете использовать объект для применения различных действий на основе входных данных инструмента.
+
+```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"
+ }
+ }
+}
+```
+
+Правила оцениваются по шаблону, при этом **выигрывает последнее совпадающее правило**. Обычно сначала ставится универсальное правило `"*"`, а после него — более конкретные правила.
+
+### Подстановочные знаки
+
+В шаблонах разрешений используется простое сопоставление с подстановочными знаками:
+
+- `*` соответствует нулю или более любого символа.
+- `?` соответствует ровно одному символу
+- Все остальные символы совпадают буквально
+
+### Расширение домашнего каталога
+
+Вы можете использовать `~` или `$HOME` в начале шаблона для ссылки на ваш домашний каталог. Это особенно полезно для правил [`external_directory`](#external-directories).
+
+- `~/projects/*` -> `/Users/username/projects/*`
+- `$HOME/projects/*` -> `/Users/username/projects/*`
+- `~` -> `/Users/username`
+
+### Внешние каталоги
+
+Используйте `external_directory`, чтобы разрешить вызовы инструментов, затрагивающие пути за пределами рабочего каталога, в котором был запущен OpenCode. Это применимо к любому инструменту, который принимает путь в качестве входных данных (например, `read`, `edit`, `list`, `glob`, `grep` и многие команды `bash`).
+
+Расширение дома (например, `~/...`) влияет только на запись шаблона. Он не делает внешний путь частью текущего рабочего пространства, поэтому пути за пределами рабочего каталога все равно должны быть разрешены через `external_directory`.
+
+Например, это позволяет получить доступ ко всему, что находится под `~/projects/personal/`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "external_directory": {
+ "~/projects/personal/**": "allow"
+ }
+ }
+}
+```
+
+Любой каталог, разрешенный здесь, наследует те же настройки по умолчанию, что и текущая рабочая область. Поскольку для [`read` по умолчанию установлено значение `allow`](#defaults), чтение также разрешено для записей под `external_directory`, если оно не переопределено. Добавьте явные правила, когда инструмент должен быть ограничен в этих путях, например, блокировать редактирование при сохранении чтения:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "external_directory": {
+ "~/projects/personal/**": "allow"
+ },
+ "edit": {
+ "~/projects/personal/**": "deny"
+ }
+ }
+}
+```
+
+Держите список сосредоточенным на доверенных путях и добавляйте дополнительные правила разрешения или запрета по мере необходимости для других инструментов (например, `bash`).
+
+---
+
+## Доступные разрешения
+
+Разрешения OpenCode привязаны к имени инструмента, а также к нескольким мерам безопасности:
+
+- `read` — чтение файла (соответствует пути к файлу)
+- `edit` — все модификации файлов (охватывает `edit`, `write`, `patch`, `multiedit`)
+- `glob` — подстановка файла (соответствует шаблону подстановки)
+- `grep` — поиск по контенту (соответствует шаблону регулярного выражения)
+- `list` — список файлов в каталоге (соответствует пути к каталогу)
+- `bash` — запуск команд оболочки (соответствует проанализированным командам, например `git status --porcelain`)
+- `task` — запуск субагентов (соответствует типу субагента)
+- `skill` — загрузка навыка (соответствует названию навыка)
+- `lsp` — выполнение запросов LSP (в настоящее время не детализированных)
+- `todoread`, `todowrite` — чтение/обновление списка дел.
+- `webfetch` — получение URL-адреса (соответствует URL-адресу)
+- `websearch`, `codesearch` — поиск в сети/коде (соответствует запросу)
+- `external_directory` — срабатывает, когда инструмент касается путей за пределами рабочего каталога проекта.
+- `doom_loop` — срабатывает, когда один и тот же вызов инструмента повторяется 3 раза с одинаковым вводом.
+
+---
+
+## По умолчанию
+
+Если вы ничего не укажете, OpenCode запустится с разрешенных значений по умолчанию:
+
+- Большинство разрешений по умолчанию имеют значение `"allow"`.
+- `doom_loop` и `external_directory` по умолчанию равны `"ask"`.
+- `read` — это `"allow"`, но файлы `.env` по умолчанию запрещены:
+
+```json title="opencode.json"
+{
+ "permission": {
+ "read": {
+ "*": "allow",
+ "*.env": "deny",
+ "*.env.*": "deny",
+ "*.env.example": "allow"
+ }
+ }
+}
+```
+
+---
+
+## Что означает «Спросить»
+
+Когда OpenCode запрашивает одобрение, пользовательский интерфейс предлагает три результата:
+
+- `once` — утвердить только этот запрос
+- `always` — одобрять будущие запросы, соответствующие предложенным шаблонам (до конца текущего сеанса OpenCode).
+- `reject` — отклонить запрос
+
+Набор шаблонов, которые одобрит `always`, предоставляется инструментом (например, утверждения bash обычно включают в белый список безопасный префикс команды, такой как `git status*`).
+
+---
+
+## Агенты
+
+Вы можете переопределить разрешения для каждого агента. Разрешения агента объединяются с глобальной конфигурацией, и правила агента имеют приоритет. [Подробнее](/docs/agents#permissions) о разрешениях агента.
+
+:::примечание
+Более подробные примеры сопоставления с образцом см. в разделе [Детальные правила (синтаксис объекта)](#granular-rules-object-syntax) выше.
+:::
+
+```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"
+ }
+ }
+ }
+ }
+}
+```
+
+Вы также можете настроить разрешения агента в Markdown:
+
+```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.
+```
+
+:::кончик
+Используйте сопоставление с образцом для команд с аргументами. `"grep *"` разрешает `grep pattern file.txt`, а сам `"grep"` блокирует его. Такие команды, как `git status`, работают по умолчанию, но требуют явного разрешения (например, `"git status *"`) при передаче аргументов.
+:::