---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/en/sourcecraft/operations/code-review.md
  - https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/code-review.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/code-review.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt
    rel: describedby
title: Настроить правила ревью кода в репозитории SourceCraft
description: Инструкция по настройке обязательных правил ревью кода в репозитории SourceCraft с помощью конфигурационного файла.
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt


# Настроить правила ревью кода в репозитории SourceCraft

<!-- source: ru/_includes/sourcecraft/configuration-tip.md -->
{% note tip %}

Настройка и просмотр конфигураций репозитория доступны в интерфейсе SourceCraft в разделе ![image](../../_assets/console-icons/gear.svg) **Настройки репозитория** в секции ![image](../../_assets/console-icons/nut-hex.svg) **Конфигурации**. Подробнее в инструкции [Настроить конфигурации репозитория в виде кода](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configuration-edit.md).

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/configuration-tip.md -->

<!-- source: ru/_includes/sourcecraft/code-review-intro.md -->
SourceCraft позволяет гибко настраивать обязательные _правила ревью кода_, прежде чем код может быть добавлен в целевую ветку репозитория.
<!-- endsource: ru/_includes/sourcecraft/code-review-intro.md -->

Подробнее на странице [Правила ревью кода в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/code-review.md).

<!-- source: ru/_includes/sourcecraft/code-review-file.md -->
Конфигурация правил ревью кода задается для конкретного репозитория и хранится в файле `.sourcecraft/review.yaml`. Вы также можете задать [конфигурацию на уровне организации SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/org-config.md).
<!-- endsource: ru/_includes/sourcecraft/code-review-file.md -->

Чтобы настроить правила ревью кода в репозитории: 
1. Склонируйте репозиторий:

    <!-- source: ru/_includes/sourcecraft/clone-repo-workflow.md -->
    1. [Установите Git](https://git-scm.com/downloads).
    1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
    1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** в секции ![image](../../_assets/console-icons/layout-tabs.svg) **Ваша мастерская** перейдите в раздел ![image](../../_assets/console-icons/archive.svg) **Репозитории** и выберите репозиторий.

        Также вы можете открыть любой публичный репозиторий.

    1. На странице репозитория в правом верхнем углу нажмите кнопку ![image](../../_assets/console-icons/chevron-down-wide.svg) **Клонировать**.
    1. Из поля **HTTPS** или **SSH** скопируйте ![image](../../_assets/console-icons/copy.svg) ссылку для клонирования репозитория.

        В зависимости от протокола подключения для клонирования используются разные домены:

        #|
        || **Протокол** | **Домен** | **Ссылка для клонирования** ||
        || HTTPS | `git.sourcecraft.dev` | `https://git@git.sourcecraft.dev/<слаг_организации>/<слаг_репозитория>.git` ||
        || SSH | `ssh.sourcecraft.dev` | `ssh://ssh.sourcecraft.dev/<слаг_организации>/<слаг_репозитория>.git` ||
        |#

    1. В терминале выполните команду:

        ```bash
        git clone <ссылка_для_клонирования_репозитория>
        ```

        {% cut "Пример команды для клонирования репозитория с документацией SourceCraft" %}

        ```bash
        git clone https://git@git.sourcecraft.dev/sourcecraft/documentation.git
        ```

        {% endcut %}

        <!-- source: ru/_includes/sourcecraft/private-repo-clone-note.md -->
        {% note warning %}

        Чтобы склонировать [приватный или внутренний репозиторий](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos), аутентифицируйтесь с помощью [персонального токена (PAT)](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md) или [SSH-ключа](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/ssh.md).

        {% endnote %}
        <!-- endsource: ru/_includes/sourcecraft/private-repo-clone-note.md -->

    1. Перейдите в склонированный репозиторий:
        
        ```bash
        cd <имя_репозитория>
        ```
    <!-- endsource: ru/_includes/sourcecraft/clone-repo-workflow.md -->

1. Сформируйте файл конфигурации правила ревью кода `.sourcecraft/review.yaml`, например:

    <!-- source: ru/_includes/sourcecraft/code-review-config.md -->
    ```yaml
    codereview: 
      need_ships: 1 # Требуемое количество одобрений от ревьюеров
      ignore_self_ship: false # Игнорировать одобрения от автора предложения изменений
      ignore_non_reviewers_block: false # Игнорировать блокировку предложения изменений от пользователей, не являющихся ревьюерами
      auto_assign: true # Автоматически назначать ревьюеров
      disable_trust: true # Запретить резолюцию «Доверять» для предложений изменений
      rules:
        - patterns:
            - "**" # Паттерн пути в репозитории
          reviewers:
            usernames: 
              - "<имя_пользователя>" # Список ревьюеров
            assign: 1 # Количество ревьюеров, назначенных автоматически
            need_ships: 1 # Требуемое количество одобрений от ревьюеров
            ignore_self_ship: false # Игнорировать одобрения от автора предложения изменений
    ```
    <!-- endsource: ru/_includes/sourcecraft/code-review-config.md -->

    <!-- source: ru/_includes/sourcecraft/wildcard-pattern-tip.md -->
    {% note tip %}

    Для групповой фильтрации рекомендуется использовать паттерн `**`, поскольку простой паттерн `*` не предусматривает совпадения в выражениях с `/`.

    {% endnote %}
    <!-- endsource: ru/_includes/sourcecraft/wildcard-pattern-tip.md -->

1. <!-- source: ru/_includes/sourcecraft/review-patterns.md -->
   В блоке `patterns` укажите пути в репозитории, по которым будут срабатывать правила ревью кода, например:

   * `"**"` — применять правило для всего репозитория.
   * `"src/**"` — применять правило только для директории `src`.
   * `"!docs/**"` — не применять правило для директории `docs`.

   Вы можете последовательно использовать несколько паттернов, например:

   ```yaml
   - patterns:
     - "**"
     - "!docs/**"
   ```

   В таком случае правило будет применено к любым изменениям в репозитории, кроме изменений в директории `docs`.

   {% note tip %}

   При последовательном применении паттернов выставляйте паттерн `"**"` самым первым.

   {% endnote %}
   <!-- endsource: ru/_includes/sourcecraft/review-patterns.md -->

   Подробнее о синтаксисе и правилах применения фильтров по путям в разделе [Фильтры и паттерны в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/filters-by-paths.md).

1. В блоке `usernames` укажите список пользователей, ревью от одного из которых должно быть обязательным в предложении изменений.
1. Добавьте файл конфигурации правил ревью кода в индекс `git`, сделайте коммит и отправьте изменения в ветку `main`:

    ```bash
    git add .sourcecraft/review.yaml
    git commit -m "Added code review configuration"
    git push -u origin main
    ```

1. Проверьте выполнение правил ревью кода:
    1. [Создайте](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/pr-create.md) тестовое предложение изменений.
    1. В созданном предложении изменений убедитесь, что:
        * На вкладке ![image](../../_assets/console-icons/circle-exclamation.svg) **Обзор** отображается проверка **Рецензия кода** в статусе `In progress`.
        * В блоке **Рецензенты** отображается кто-то из ревьюеров, указанных в конфигурации правил ревью кода.
    1. Дождитесь одобрения предложения изменений.
    1. Чтобы выполнить слияние с основной веткой, нажмите ![image](../../_assets/console-icons/code-pull-request.svg) **Объединить**.

        Выполнять слияния могут пользователи с [ролью](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-developer) `Разработчик репозитория` и выше.

<!-- source: ru/_includes/sourcecraft/code-review-bypass.md -->
{% note warning %}

Обойти правила ревью кода и выполнить принудительное слияние могут только пользователи с [ролью](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-maintainer) `Ответственный за репозиторий` или [ролью](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-admin) `Администратор репозитория`.

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/code-review-bypass.md -->

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

* [Как начать работать с SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/quickstart.md)
* [Правила ревью кода в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/code-review.md)
* [Непрерывная интеграция и непрерывное развертывание в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)
* [Настроить CI/CD в репозитории SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/ci-cd.md)
* [Настроить политику веток в репозитории SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/branch-policies.md)
* [Настроить правила ревью кода и политики веток на уровне организации в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/org-config.md)
