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


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

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

Настройка и просмотр конфигураций репозитория доступны в интерфейсе SourceCraft в разделе <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M7.199 2H8.8a.2.2 0 0 1 .2.2c0 1.808 1.958 2.939 3.524 2.034a.2.2 0 0 1 .271.073l.802 1.388a.2.2 0 0 1-.073.272c-1.566.904-1.566 3.164 0 4.069a.2.2 0 0 1 .073.271l-.802 1.388a.2.2 0 0 1-.271.073C10.958 10.863 9 11.993 9 13.8a.2.2 0 0 1-.199.2H7.2a.2.2 0 0 1-.2-.2c0-1.808-1.958-2.938-3.524-2.034a.2.2 0 0 1-.272-.073l-.8-1.388a.2.2 0 0 1 .072-.271c1.566-.905 1.566-3.165 0-4.07a.2.2 0 0 1-.073-.27l.801-1.389a.2.2 0 0 1 .272-.072C5.042 5.138 7 4.007 7 2.199c0-.11.089-.199.199-.199M5.5 2.2c0-.94.76-1.7 1.699-1.7H8.8c.94 0 1.7.76 1.7 1.7a.85.85 0 0 0 1.274.735 1.7 1.7 0 0 1 2.32.622l.802 1.388c.469.813.19 1.851-.622 2.32a.85.85 0 0 0 0 1.472 1.7 1.7 0 0 1 .622 2.32l-.802 1.388a1.7 1.7 0 0 1-2.32.622.85.85 0 0 0-1.274.735c0 .939-.76 1.7-1.699 1.7H7.2a1.7 1.7 0 0 1-1.699-1.7.85.85 0 0 0-1.274-.735 1.7 1.7 0 0 1-2.32-.622l-.802-1.388a1.7 1.7 0 0 1 .622-2.32.85.85 0 0 0 0-1.471 1.7 1.7 0 0 1-.622-2.32l.801-1.389a1.7 1.7 0 0 1 2.32-.622A.85.85 0 0 0 5.5 2.2m4 5.8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0" clip-rule="evenodd"/></svg> **Настройки репозитория** в секции <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="m13.874 8.25-2.72 4.712a.5.5 0 0 1-.434.25H5.28a.5.5 0 0 1-.433-.25L2.127 8.25a.5.5 0 0 1 0-.5l2.72-4.712a.5.5 0 0 1 .433-.25h5.44a.5.5 0 0 1 .433.25l2.72 4.712a.5.5 0 0 1 0 .5m1.3-1.25a2 2 0 0 1 0 2l-2.72 4.712a2 2 0 0 1-1.733 1H5.28a2 2 0 0 1-1.732-1L.828 9a2 2 0 0 1 0-2l2.72-4.712a2 2 0 0 1 1.732-1h5.44a2 2 0 0 1 1.732 1zM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0" clip-rule="evenodd"/></svg> **Конфигурации**. Подробнее в инструкции [Настроить конфигурации репозитория в виде кода](https://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://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/code-review.md).

<!-- source: ru/_includes/sourcecraft/code-review-file.md -->
Конфигурация правил ревью кода задается для конкретного репозитория и хранится в файле `.sourcecraft/review.yaml`. Вы также можете задать [конфигурацию на уровне организации SourceCraft](https://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. На вкладке <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M12.5 12.618c.307-.275.5-.674.5-1.118V6.977a1.5 1.5 0 0 0-.585-1.189l-3.5-2.692a1.5 1.5 0 0 0-1.83 0l-3.5 2.692A1.5 1.5 0 0 0 3 6.978V11.5A1.496 1.496 0 0 0 4.493 13H5V9.5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2V13h.507c.381-.002.73-.146.993-.382m2-1.118a3 3 0 0 1-3 3h-7a3 3 0 0 1-3-3V6.977A3 3 0 0 1 2.67 4.6l3.5-2.692a3 3 0 0 1 3.66 0l3.5 2.692a3 3 0 0 1 1.17 2.378zm-5-2A.5.5 0 0 0 9 9H7a.5.5 0 0 0-.5.5V13h3z" clip-rule="evenodd"/></svg> **Домой** в секции <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M3.999 3.5h.242c.559 0 1.049.37 1.202.907l.171.598A2.75 2.75 0 0 0 8.26 7h5.24v4a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 11V5a1.5 1.5 0 0 1 1.499-1.5m9.501 2h-1.242a1.25 1.25 0 0 1-1.201-.907l-.171-.598a3 3 0 0 0-.195-.495H12A1.5 1.5 0 0 1 13.5 5zM8.241 2H4a3 3 0 0 0-.457.035A3 3 0 0 0 2 2.764 3 3 0 0 0 1 5v6a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3zM7 3.5h1.242c.559 0 1.049.37 1.202.907l.171.598q.075.261.195.495H8.26a1.25 1.25 0 0 1-1.202-.907l-.171-.598A3 3 0 0 0 6.69 3.5z" clip-rule="evenodd"/></svg> **Ваша мастерская** перейдите в раздел <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M2.5 8h11v3a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 11zm10.697-1.5-1.851-2.777a.5.5 0 0 0-.416-.223H5.07a.5.5 0 0 0-.416.223L2.803 6.5zM15 7.408V11a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V7.408a3 3 0 0 1 .504-1.664l1.902-2.853A2 2 0 0 1 5.07 2h5.86a2 2 0 0 1 1.664.89l1.902 2.854A3 3 0 0 1 15 7.408M9.25 11a.75.75 0 0 0 0-1.5h-2.5a.75.75 0 0 0 0 1.5z" clip-rule="evenodd"/></svg> **Репозитории** и выберите репозиторий.

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

    1. На странице репозитория в правом верхнем углу нажмите кнопку <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M1.867 6.097a.75.75 0 0 1 1.036-.23L8 9.111l5.097-3.244a.75.75 0 0 1 .806 1.266l-5.5 3.5a.75.75 0 0 1-.806 0l-5.5-3.5a.75.75 0 0 1-.23-1.036" clip-rule="evenodd"/></svg> **Клонировать**.
    1. Из поля **HTTPS** или **SSH** скопируйте <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M12 2.5H8A1.5 1.5 0 0 0 6.5 4v1H8a3 3 0 0 1 3 3v1.5h1A1.5 1.5 0 0 0 13.5 8V4A1.5 1.5 0 0 0 12 2.5M11 11h1a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H8a3 3 0 0 0-3 3v1H4a3 3 0 0 0-3 3v4a3 3 0 0 0 3 3h4a3 3 0 0 0 3-3zM4 6.5h4A1.5 1.5 0 0 1 9.5 8v4A1.5 1.5 0 0 1 8 13.5H4A1.5 1.5 0 0 1 2.5 12V8A1.5 1.5 0 0 1 4 6.5" clip-rule="evenodd"/></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://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos), аутентифицируйтесь с помощью [персонального токена (PAT)](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md) или [SSH-ключа](https://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 # Автоматически назначать ревьюеров
      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://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://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/pr-create.md) тестовое предложение изменений.
    1. В созданном предложении изменений убедитесь, что:
        * На вкладке <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14m1-4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0M8.75 5a.75.75 0 0 0-1.5 0v2.5a.75.75 0 0 0 1.5 0z" clip-rule="evenodd"/></svg> **Обзор** отображается проверка **Рецензия кода** в статусе `In progress`.
        * В блоке **Рецензенты** отображается кто-то из ревьюеров, указанных в конфигурации правил ревью кода.
    1. Дождитесь одобрения предложения изменений.
    1. Чтобы выполнить слияние с основной веткой, нажмите <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M4.788 3.121a1.25 1.25 0 1 1-1.076 2.257 1.25 1.25 0 0 1 1.076-2.257M3.5 6.896l-.068-.02a2.751 2.751 0 1 1 3.415-3.533L8.219 1.97A.75.75 0 0 1 9.28 3.03l-.47.47h.69a3 3 0 0 1 1.139.224A3 3 0 0 1 12.5 6.5v2.604l.068.02a2.751 2.751 0 0 1-.818 5.376A2.75 2.75 0 0 1 11 9.104V6.5q0-.116-.017-.225A1.5 1.5 0 0 0 9.5 5h-.69l.47.47a.75.75 0 0 1-1.06 1.06L6.847 5.157a2.74 2.74 0 0 1-.88 1.242c-.282.225-.61.397-.967.497v2.208l.068.02a2.751 2.751 0 1 1-1.568-.02zm-.312 4.195a1.25 1.25 0 0 0-.182.787 1.25 1.25 0 1 0 .182-.787m7.5 0a1.25 1.25 0 0 0-.181.787 1.25 1.25 0 1 0 .18-.787" clip-rule="evenodd"/></svg> **Объединить**.

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

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

Обойти правила ревью кода и выполнить принудительное слияние могут только пользователи с [ролью](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-maintainer) `Ответственный за репозиторий` или [ролью](https://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://sourcecraft.dev/portal/docs/ru/sourcecraft/quickstart.md)
* [Правила ревью кода в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/code-review.md)
* [Непрерывная интеграция и непрерывное развертывание в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)
* [Настроить CI/CD в репозитории SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/ci-cd.md)
* [Настроить политику веток в репозитории SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/branch-policies.md)
* [Настроить правила ревью кода и политики веток на уровне организации в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/org-config.md)
