diff options
Diffstat (limited to 'packages/web/src/content/docs/pl/permissions.mdx')
| -rw-r--r-- | packages/web/src/content/docs/pl/permissions.mdx | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/pl/permissions.mdx b/packages/web/src/content/docs/pl/permissions.mdx new file mode 100644 index 000000000..d824a2ec5 --- /dev/null +++ b/packages/web/src/content/docs/pl/permissions.mdx @@ -0,0 +1,237 @@ +--- +title: Uprawnienia +description: Kontroluj, które Akcje wymagają zatwierdzenia do uruchomienia. +--- + +OpenCode używa `permission`, aby uniknąć, czy dana akcja została wykonana automatycznie, zachowana monit lub została zablokowana. + +Od `v1.1.1` starsza stworzona logiczna `tools` jest przestarzała i została stworzona scalona z `permission`. Stara wersja `tools` jest nadal obsługiwana w celu zapewnienia zgodności wstecznej. + +--- + +## Działania + +Każda reguła uprawnień skutkuje jedną z: + +- `"allow"` — uruchamiany bez zgody +- `"ask"` — monit o zatwierdzenie +- `"deny"` — zablokuj akcję + +--- + +## Konfiguracja + +Możesz zainstalować uprawnienia globalnie (za pomocą `*`) i znajdującego się w nim narzędzia. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "*": "ask", + "bash": "allow", + "edit": "deny" + } +} +``` + +Możesz także zainstalować wszystkie uprawnienia na raz: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": "allow" +} +``` + +--- + +## Szczegółowe reguły (składnia obiektu) + +Można skorzystać z różnych działań, które zależą od danych użytkowych. + +```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" + } + } +} +``` + +Reguły są zalecane na podstawie odpowiedniego wzorca, przy czym **ostatnia wynikaca reguła wygrywa**. Powszechnym wzorcem jest umieszczenie na pierwszym miejscu odpowiedniego catch-all `"*"`, a po bardziej szczegółowe zasady. + +### Symbole wieloznaczne + +Wzorce uprawnień z prostych dopasowywania symboli wieloznacznych: + +- `*` dopasowuje zero lub więcej dowolnego znaku +- `?` odpowiada dokładnie jednemu znakowi +- Wszystkie pozostałe znaki pasują dosłownie + +### Rozszerzenie katalogu domowego + +Możesz używać `~` lub `$HOME` na początku wzorca, aby zastosować się do swojego katalogu domowego. Jest to szczególnie szczególne w przypadku reguły [`external_directory`](#external-directories). + +- `~/projects/*` -> `/Users/username/projects/*` +- `$HOME/projects/*` -> `/Users/username/projects/*` +- `~` -> `/Users/username` + +### Katalogi zewnętrzne + +Użycie `external_directory`, aby zezwolić na wywołanie narzędzia, które obsługuje obsługę poza katalogiem roboczym, z uruchomieniem OpenCode. Dotyczy każdego narzędzia, które jako dane wejściowe zostało przyjęte (na przykład `read`, `edit`, `list`, `glob`, `grep` i wiele założycieli `bash`). + +Rozszerzenie domu (jak `~/...`) wpływa tylko na sposób za zwyczajowy wzorca. Nie powoduje to, że strategie zewnętrzne stają się stosowane przez `external_directory`. + +Na przykład umożliwia dostęp do wszystkiego pod `~/projects/personal/`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "external_directory": { + "~/projects/personal/**": "allow" + } + } +} +``` + +Każdy dopuszczony tutaj katalog jest dziedziczy tych samych ustawień, co dostęp do obszaru roboczego. Ponieważ [`read` ma wartość domyślną `allow`](#defaults), odczyty są również dostępne dla wpisów poniżej `external_directory`, chyba że zagłębione. Dodaj dodatkowe rozwiązanie, kiedy narzędzie powinno być rozwiązaniem w tych ścieżkach, np. blokowanie edycji przy zachowaniu odczytów: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "external_directory": { + "~/projects/personal/**": "allow" + }, + "edit": { + "~/projects/personal/**": "deny" + } + } +} +``` + +Skoncentruj listę na zaufanych ścieżkach i dodaj dodatkowe zezwolenie lub odmowę, jeśli jest potrzebne w innych narzędziach (na przykład `bash`). + +--- + +## Dostępne uprawnienia + +Uprawnienia OpenCode są określane na podstawie nazwy narzędzia i kilku zabezpieczeń: + +- `read` — odczyt pliku (odpowiada ścieżce pliku) +- `edit` — wszystkie modyfikacje plików (obejmuje `edit`, `write`, `patch`, `multiedit`) +- `glob` — maglowanie plików (pasuje do wzorców globowania) +- `grep` — wyszukiwanie treści (pasuje do wzorca regularnego) +- `list` — wyświetlanie listy plików w katalogu (pasuje do katalogu) +- `bash` — uruchamianie poleceń powłoki (pasuje do poleceń przeanalizowanych, takich jak `git status --porcelain`) +- `task` — uruchamianie podagentów (odpowiada typowi podagenta) +- `skill` — ładowanie umiejętności (pasuje do nazwy umiejętności) +- `lsp` — uruchamianie zapytań LSP (obecnie nieszczegółowych) +- `todoread`, `todowrite` — czytanie/aktualizacja list rzeczy do wykonania +- `webfetch` — pobieranie adresu URL (pasuje do adresu URL) +- `websearch`, `codesearch` — wyszukiwanie sieci/kodu (pasuje do zapytań) +- `external_directory` — wywoływacz, gdy narzędzie jest dostępne poza katalogiem roboczym projektu +- `doom_loop` — wyzwalane, gdy samo wywołanie narzędzia zostanie powtórzone 3 razy z tymi samymi danymi podstawowymi + +--- + +## Domyślne + +Jeżeli nic nie jest określone, OpenCode zostanie uruchomione od dopuszczalnych rozwiązań diagnostycznych: + +- Dostępne uprawnienia ma wartość domyślną `"allow"`. +- `doom_loop` i `external_directory` zamek ma wartość `"ask"`. +- `read` do `"allow"`, ale pliki `.env` są odrzucane: + +```json title="opencode.json" +{ + "permission": { + "read": { + "*": "allow", + "*.env": "deny", + "*.env.*": "deny", + "*.env.example": "allow" + } + } +} +``` + +--- + +## Co robi „Zapytaj”. + +Gdy OpenCode poprosi o zatwierdzenie, interfejs użytkownika oferujący trzy wyniki: + +- `once` — zatwierdź tylko tę prośbę +- `always` — zastosowanie, które następuje po zastosowaniu sugerowanych wzorców (przez następczą bieżącą sesję OpenCode) +- `reject` — odrzucić + +Zestaw wzorców, które `always` zatwierdziłby, jest udostępniony przez narzędzie (na przykładzie zatwierdzenia bash zazwyczaj umieszczają na częstotliwości bezpiecznej prefiksy polecenia, takie jak `git status*`). + +--- + +## Agenci + +Można uzyskać dostęp do poszczególnych agentów. Uprawnienia agenta są skalowane z konfiguracją globalną, a następnie agenta ma pierwszeństwo. [Dowiedz się więcej](/docs/agents#permissions) o prawach agenta. + +:::note +Bardziej szczegółowe przykłady dopasowywania wzorców można znaleźć w sekcji [Reguły szczegółowe (składnia obiektu) (#granular-rules-object-syntax) powyżej. +::: + +```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" + } + } + } + } +} +``` + +Możesz także mieć pozwolenie na agenta w 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. +``` + +:::tip +zastosowanie dopasowywania wzorców dla pierwotnych z argumentami. `"grep *"` pozwala na `grep pattern file.txt`, podczas gdy sam `"grep"` blokuje to. Polecenia takie jak `git status` w przypadku postępowania dyscyplinarnego, ale ostatecznego zastosowania (np. `"git status *"`) podczas stosowania argumentów. +::: |
