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


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

Вы можете управлять общими [правилами ревью кода](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/code-review.md) и [политиками веток](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/branch-policies.md) для всех репозиториев [организации](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#org) с помощью специального репозитория с названием `.sourcecraft`.

Подробнее на странице [Правила ревью кода и политики веток на уровне организации в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/org-config.md).


## Создать репозиторий .sourcecraft {#create-repo}

Чтобы [создать](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/repo-create.md) репозиторий `.sourcecraft` для управления правилами ревью кода и политиками веток организации:

{% list tabs group=instructions %}

- Интерфейс SourceCraft {#src}

  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="M8 1.75a.75.75 0 0 1 .75.75v4.75h4.75a.75.75 0 0 1 0 1.5H8.75v4.75a.75.75 0 0 1-1.5 0V8.75H2.5a.75.75 0 0 1 0-1.5h4.75V2.5A.75.75 0 0 1 8 1.75" clip-rule="evenodd"/></svg> **Создать репозиторий**.
  1. В открывшемся окне выберите **Пустой репозиторий**.
  1. В поле **Название** укажите `.sourcecraft`.
  1. Нажмите **Создать репозиторий**.

  {% note info %}

  Вы можете сделать репозиторий `.sourcecraft` публичным, внутренним или приватным — конфигурация в любом случае будет применяться ко всем репозиториям организации.

  {% endnote %}

{% endlist %}


## Настроить правила ревью кода для организации {#configure-code-review}

Чтобы настроить единые правила ревью кода для всех репозиториев организации:

{% list tabs group=instructions %}

- Интерфейс SourceCraft {#src}

  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. Выберите репозиторий `.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="M10.218 3.216a.75.75 0 0 0-1.436-.431l-3 10a.75.75 0 0 0 1.436.43zM4.53 4.97a.75.75 0 0 1 0 1.06L2.56 8l1.97 1.97a.75.75 0 0 1-1.06 1.06l-2.5-2.5a.75.75 0 0 1 0-1.06l2.5-2.5a.75.75 0 0 1 1.06 0m6.94 6.06a.75.75 0 0 1 0-1.06L13.44 8l-1.97-1.97a.75.75 0 0 1 1.06-1.06l2.5 2.5a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 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="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. Выберите ветку для внесения изменений.
  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.5 3h7A1.5 1.5 0 0 1 13 4.5v7a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 3 11.5v-7A1.5 1.5 0 0 1 4.5 3m-3 1.5a3 3 0 0 1 3-3h7a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3h-7a3 3 0 0 1-3-3zm7.25 1a.75.75 0 0 0-1.5 0v1.75H5.5a.75.75 0 1 0 0 1.5h1.75v1.75a.75.75 0 0 0 1.5 0V8.75h1.75a.75.75 0 0 0 0-1.5H8.75z" 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="M11 13.5H5A1.5 1.5 0 0 1 3.5 12V4A1.5 1.5 0 0 1 5 2.5h2V5a3 3 0 0 0 3 3h2.5v4a1.5 1.5 0 0 1-1.5 1.5m1.303-7a1.5 1.5 0 0 0-.242-.318L8.818 2.939a1.5 1.5 0 0 0-.318-.242V5A1.5 1.5 0 0 0 10 6.5zm.818-1.379A3 3 0 0 1 14 7.243V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h2.757a3 3 0 0 1 2.122.879z" clip-rule="evenodd"/></svg> **Файл**.
  1. В открывшемся окне введите имя файла `.sourcecraft/review.yaml` и нажмите **Создать файл**.
  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 -->
  1. В правом верхнем углу нажмите **Сохранить изменения**.
  1. В открывшемся окне настройте параметры внесения изменений:
      * В поле **Сообщение об изменениях** укажите комментарий, который опишет внесенные изменения.
      * В блоке **Ветка изменений** выберите главную ветку по умолчанию.
      * В блоке **Действие после сохранения изменений** выберите `Просто сохранить`.
  1. Подтвердите внесение изменений.

- Командная строка {#cli}

  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`:

      ```bash
      nano .sourcecraft/review.yaml
      ```

  1. Сформируйте файл по шаблону:

      <!-- 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 -->
  1. Добавьте файл конфигурации в индекс `git`, сделайте коммит и отправьте изменения в главную ветку по умолчанию:

      ```bash
      git add .sourcecraft/review.yaml
      git commit -m "Добавлен файл с правилами ревью кода для организации"
      git push -u origin <имя_главной_ветки>
      ```

{% endlist %}

## Настроить политики веток для организации {#configure-branch-policies}

Чтобы настроить единые политики веток для всех репозиториев организации:

{% list tabs group=instructions %}

- Интерфейс SourceCraft {#src}

  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. Выберите репозиторий `.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="M10.218 3.216a.75.75 0 0 0-1.436-.431l-3 10a.75.75 0 0 0 1.436.43zM4.53 4.97a.75.75 0 0 1 0 1.06L2.56 8l1.97 1.97a.75.75 0 0 1-1.06 1.06l-2.5-2.5a.75.75 0 0 1 0-1.06l2.5-2.5a.75.75 0 0 1 1.06 0m6.94 6.06a.75.75 0 0 1 0-1.06L13.44 8l-1.97-1.97a.75.75 0 0 1 1.06-1.06l2.5 2.5a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 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="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. Выберите ветку для внесения изменений.
  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.5 3h7A1.5 1.5 0 0 1 13 4.5v7a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 3 11.5v-7A1.5 1.5 0 0 1 4.5 3m-3 1.5a3 3 0 0 1 3-3h7a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3h-7a3 3 0 0 1-3-3zm7.25 1a.75.75 0 0 0-1.5 0v1.75H5.5a.75.75 0 1 0 0 1.5h1.75v1.75a.75.75 0 0 0 1.5 0V8.75h1.75a.75.75 0 0 0 0-1.5H8.75z" 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="M11 13.5H5A1.5 1.5 0 0 1 3.5 12V4A1.5 1.5 0 0 1 5 2.5h2V5a3 3 0 0 0 3 3h2.5v4a1.5 1.5 0 0 1-1.5 1.5m1.303-7a1.5 1.5 0 0 0-.242-.318L8.818 2.939a1.5 1.5 0 0 0-.318-.242V5A1.5 1.5 0 0 0 10 6.5zm.818-1.379A3 3 0 0 1 14 7.243V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h2.757a3 3 0 0 1 2.122.879z" clip-rule="evenodd"/></svg> **Файл**.
  1. В открывшемся окне введите имя файла `.sourcecraft/branches.yaml` и нажмите **Создать файл**.
  1. В файле `.sourcecraft/branches.yaml` опишите политики веток по шаблону:

      <!-- source: ru/_includes/sourcecraft/branch-policies-config-template.md -->
      ```yaml
      branch_protection:
        policies:
          - target: <тип_защищаемого_ресурса>
            matches: "<фильтр>"
            message: "<сообщение_пользователю_при_срабатывании>"
            rules:
              - <правило_1>
              - <правило_2>
      ```

      Где:

      * `target` — тип защищаемого ресурса. Обязательный параметр. Возможные значения:
        * `default_branch` — основная ветка, например `master` или `main`.
        * `branch` — ветка.
        * `tag` — тег.

      * `matches` — фильтр или список фильтров по имени защищаемого ресурса. Обязательный параметр для `target: branch` и `target: tag`. 
      * `message` — сообщение, которое будет показываться пользователю при срабатывании политики. Обязательный параметр.
      * `rules` — правило или список правил, которые будут применены к защищаемому ресурсу. Обязательный параметр. Возможные значения:
        * `prevent_force_push` — нельзя переписывать историю коммитов в ветке (выполнять `force push`). 
        * `prevent_non_pr_changes` — нельзя напрямую вносить правки в ветку (выполнять `push`), только через [предложение изменений](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#pr).
        * `prevent_all_changes` — нельзя выполнять любые действия с веткой или тегом.

            <!-- source: ru/_includes/sourcecraft/branch-policies-deprecated-rule.md -->
            {% note warning %}

            Правило `prevent_all_changes` устарело. Вместо него используйте связку правил `prevent_creation` и `prevent_update`.

            {% endnote %}
            <!-- endsource: ru/_includes/sourcecraft/branch-policies-deprecated-rule.md -->

        * `prevent_deletion` — нельзя удалять ветку или тег.
        * `prevent_creation` — нельзя создавать ветку или тег.
        * `prevent_update` — нельзя вносить изменения в ветку или тег после создания (запрещены `push`, `force push`, удаление и слияние через предложение изменений).
      <!-- endsource: ru/_includes/sourcecraft/branch-policies-config-template.md -->

      Синтаксис настроек на уровне организации идентичен синтаксису настроек на уровне репозитория.

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

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

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

  1. В правом верхнем углу нажмите **Сохранить изменения**.
  1. В открывшемся окне настройте параметры внесения изменений:
      * В поле **Сообщение об изменениях** укажите комментарий, который опишет внесенные изменения.
      * В блоке **Ветка изменений** выберите главную ветку по умолчанию.
      * В блоке **Действие после сохранения изменений** выберите `Просто сохранить`.
  1. Подтвердите внесение изменений.

- Командная строка {#cli}

  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/branches.yaml`:

      ```bash
      nano .sourcecraft/branches.yaml
      ```

  1. Сформируйте файл по шаблону:

      <!-- source: ru/_includes/sourcecraft/branch-policies-config-template.md -->
      ```yaml
      branch_protection:
        policies:
          - target: <тип_защищаемого_ресурса>
            matches: "<фильтр>"
            message: "<сообщение_пользователю_при_срабатывании>"
            rules:
              - <правило_1>
              - <правило_2>
      ```

      Где:

      * `target` — тип защищаемого ресурса. Обязательный параметр. Возможные значения:
        * `default_branch` — основная ветка, например `master` или `main`.
        * `branch` — ветка.
        * `tag` — тег.

      * `matches` — фильтр или список фильтров по имени защищаемого ресурса. Обязательный параметр для `target: branch` и `target: tag`. 
      * `message` — сообщение, которое будет показываться пользователю при срабатывании политики. Обязательный параметр.
      * `rules` — правило или список правил, которые будут применены к защищаемому ресурсу. Обязательный параметр. Возможные значения:
        * `prevent_force_push` — нельзя переписывать историю коммитов в ветке (выполнять `force push`). 
        * `prevent_non_pr_changes` — нельзя напрямую вносить правки в ветку (выполнять `push`), только через [предложение изменений](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#pr).
        * `prevent_all_changes` — нельзя выполнять любые действия с веткой или тегом.

            <!-- source: ru/_includes/sourcecraft/branch-policies-deprecated-rule.md -->
            {% note warning %}

            Правило `prevent_all_changes` устарело. Вместо него используйте связку правил `prevent_creation` и `prevent_update`.

            {% endnote %}
            <!-- endsource: ru/_includes/sourcecraft/branch-policies-deprecated-rule.md -->

        * `prevent_deletion` — нельзя удалять ветку или тег.
        * `prevent_creation` — нельзя создавать ветку или тег.
        * `prevent_update` — нельзя вносить изменения в ветку или тег после создания (запрещены `push`, `force push`, удаление и слияние через предложение изменений).
      <!-- endsource: ru/_includes/sourcecraft/branch-policies-config-template.md -->

      Синтаксис настроек на уровне организации идентичен синтаксису настроек на уровне репозитория.

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

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

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

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

      ```bash
      git add .sourcecraft/branches.yaml
      git commit -m "Добавлен файл с политиками веток для организации"
      git push -u origin <имя_главной_ветки>
      ```

{% endlist %}


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

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