---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://sourcecraft.dev/portal/docs/en/code-assistant/operations/agent/codeassistantignore.md
  - https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/codeassistantignore.md
  - href: ru/code-assistant/operations/agent/codeassistantignore.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
title: Использование .codeassistantignore для управления доступом к файлам в SourceCraft Code Assistant
description: Как использовать файл .codeassistantignore для управления доступом SourceCraft Code Assistant к файлам и директориям проекта.
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Использование .codeassistantignore для управления доступом к файлам в SourceCraft Code Assistant

<!-- source: ru/_includes/code-assistant/only-in-vscode.md -->
{% note warning %}

Функциональность доступна только в Visual Studio Code.

{% endnote %}
<!-- endsource: ru/_includes/code-assistant/only-in-vscode.md -->

Файл `.codeassistantignore` — это ключевая функция для управления взаимодействием Code Assistant с файлами вашего проекта. Он позволяет указывать файлы и директории, к которым Code Assistant не должен получать доступ или вносить изменения, аналогично тому, как `.gitignore` работает для git.

Файл `.codeassistantignore` предназначен для защиты конфиденциальной информации, предотвращения случайных изменений артефактов сборки или больших файлов, а также определения области действия Code Assistant в вашем рабочем пространстве.

Создайте файл с именем `.codeassistantignore` в корневом каталоге вашего рабочего пространства VS Code. Укажите в этом файле шаблоны, чтобы сообщить Code Assistant, какие файлы и директории игнорировать.

Файл `.codeassistantignore` влияет как на инструменты Code Assistant, так и на упоминания контекста, например вложения `@directory`.

Code Assistant постоянно отслеживает файл `.codeassistantignore`. Любые изменения, которые вы вносите, автоматически загружаются, гарантируя, что Code Assistant всегда использует самые актуальные правила. Сам файл `.codeassistantignore` всегда игнорируется по умолчанию, поэтому Code Assistant не может изменить свои собственные правила доступа.

## Синтаксис шаблонов {#syntax}

Синтаксис для `.codeassistantignore` идентичен `.gitignore`. Распространенные примеры:
* `node_modules/` — игнорируется весь каталог `node_modules`.
* `*.log` — игнорируются все файлы, оканчивающиеся на `.log`.
* `config/secrets.json` — игнорируется конкретный файл.
* `build/` — игнорируется каталог `build`.
* `docs/**/*.md` — игнорируются все файлы с расширением `.md` в каталоге `docs` и его подкаталогах.

Для полного руководства по синтаксису обратитесь к [документации git о .gitignore](https://git-scm.com/docs/gitignore).

### Исключения {#excludes}

По умолчанию Code Assistant игнорирует и не добавляет в контекст файлы и папки, указанные в `.codeassistantignore` и `.gitignore`, если эти файлы и папки не упомянуты напрямую в запросе пользователя.

В некоторых случаях может понадобиться частично или полностью разблокировать для Code Assistant доступ к игнорируемым файлам. Для этого используйте в `.codeassistantignore` паттерн отрицания `!`.

Отрицания, приведенные в `.codeassistantignore`, будут учтены как для `.gitignore`, так и для самого `.codeassistantignore`.

> Например, с помощью `.gitignore` игнорируются следующие папки и файлы:
>
> ```text
> generated/
> vendor/
> *.log
> ```
>
> При этом нам важно, чтобы некоторые вложенные папки и файлы были доступны Code Assistant, а некоторые мы хотим исключить дополнительно к тому, что указано в `.gitignore`. В таком случае `.codeassistantignore` можно составить следующим образом:
>
> ```text
> # Скрытие папки от Code Assistant дополнительно к тому, что указано в .gitignore
> tests/integration/
>
> # Раскрытие для Code Assistant одного файла из скрытой папки
> !tests/integration/readme.md
>
> # Частичное раскрытие для Code Assistant папок, скрытых в .gitignore
> !generated/api/
> !vendor/internal/utils.go
>
> # Раскрытие для Code Assistant одного файла из всех, попадающих в шаблон в .gitignore
> !important.log
>
> # Раскрытие для Code Assistant всех proto-файлов
> !**/*.proto
> ```

## Как инструменты Code Assistant взаимодействуют с .codeassistantignore {#how-it-works}

Правила `.codeassistantignore` применяются ко многим инструментам Code Assistant:

### Строгое соблюдение (чтение и запись) {#write-and-read}

Эти инструменты напрямую проверяют `.codeassistantignore` перед любой операцией с файлами. Если файл игнорируется, операция блокируется:
* `read_file` — игнорируемые файлы не будут читаться.
* `write_to_file` — игнорируемые файлы не будут записываться или создаваться.
* `apply_diff` — к игнорируемым файлам не будет применяться быстрое редактирование.
* `insert_content` — в игнорируемые файлы не будет вестись запись.
* `search_and_replace` — в игнорируемых файлах не будет вестись поиск и замена.
* `list_code_definition_names` — в игнорируемых файлах не будет проводиться анализ на наличие символов кода.

### Обнаружение и перечисление файлов {#list-files}

* `list_files` и вложения `@directory` — когда Code Assistant перечисляет файлы или вы используете вложения `@directory`, игнорируемые файлы исключаются или помечаются символом 🔒. Оба инструмента используют одинаковую логику фильтрации.
* Детали окружения — информация о вашем рабочем пространстве, например открытые вкладки и структура проекта, предоставляемая Code Assistant, фильтруется для исключения или пометки игнорируемых элементов.

### Упоминания контекста {#context-mentions}

* Вложения `@directory` — содержимое директорий учитывает шаблоны `.codeassistantignore`. Игнорируемые файлы фильтруются или помечаются префиксом `[🔒]` в зависимости от настройки `showCodeAssistantIgnoredFiles`.
* Упоминания отдельных файлов — игнорируемые файлы возвращают `Файл игнорируется настройками .codeassistantignore` вместо содержимого.

### Выполнение команд {#execute-command}

`execute_command` — этот инструмент проверяет, нацелен ли запрос команды из предопределенного списка, например `cat` или `grep`, на игнорируемый файл. Если да, выполнение блокируется.

## Основные ограничения и область действия {#restrictions}

Правила `.codeassistantignore` применяются только к файлам и директориям в корневой директории рабочего пространства VS Code. Файлы за пределами этой области не затрагиваются.

Защита для инструмента `execute_command` ограничена предопределенным списком команд для чтения файлов. Пользовательские скрипты или малораспространенные утилиты могут не обнаруживаться.

`.codeassistantignore` — это мощный инструмент для управления доступом Code Assistant к файлам через инструменты, но он не создает песочницу (sandbox) на уровне системы.

## Пользовательский опыт и уведомления {#user-experience}

В списках файлов и во вложениях `@directory` файлы, игнорируемые `.codeassistantignore`, могут быть помечены символом (🔒) в зависимости от настройки `showCodeAssistantIgnoredFiles` (по умолчанию — `true`).

Упоминания отдельных файлов возвращают `Файл игнорируется настройками .codeassistantignore` вместо содержимого.

Если операция инструмента блокируется, Code Assistant получает ошибку: `Доступ к <путь_к_файлу> заблокирован настройками файла .codeassistantignore. Попытайся продолжить выполнение задачи без использования этого файла или попроси пользователя обновить файл .codeassistantignore`.

Обычно, если действие блокируется из-за `.codeassistantignore`, об этом выводится сообщение в интерфейсе чата Code Assistant.

#### Полезные ссылки {#see-also}

[Настройка контекста чата SourceCraft Code Assistant в Visual Studio Code](https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/agent/context-mentions.md)
