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

SourceCraft позволяет гибко настраивать обязательные правила ревью кода, прежде чем код может быть добавлен в целевую ветку репозитория.

Подробнее см. на странице Правила ревью кода в SourceCraft.

Конфигурация правил ревью кода задается для конкретного репозитория и хранится в файле .sourcecraft/review.yaml. Вы также можете задать конфигурацию на уровне организации SourceCraft.

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

  1. Склонируйте репозиторий:

    1. Установите Git.

    2. Откройте главную страницу SourceCraft.

    3. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории и выберите репозиторий.

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

    4. На странице репозитория в правом верхнем углу нажмите кнопку Клонировать.

    5. Из поля HTTPS или SSH скопируйте ссылку для клонирования репозитория.

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

      Протокол

      Домен

      Ссылка для клонирования

      HTTPS

      git.sourcecraft.dev

      https://git@git.sourcecraft.dev/<слаг_организации>/<слаг_репозитория>.git

      SSH

      ssh.sourcecraft.dev

      ssh://ssh.sourcecraft.dev/<слаг_организации>/<слаг_репозитория>.git

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

      git clone <ссылка_для_клонирования_репозитория>
      
      Пример команды для клонирования репозитория с документацией SourceCraft
      git clone https://git@git.sourcecraft.dev/sourcecraft/documentation.git
      

      Важно

      Чтобы склонировать приватный или внутренний репозиторий, аутентифицируйтесь с помощью персонального токена (PAT) или SSH-ключа.

    7. Перейдите в склонированный репозиторий:

      cd <имя_репозитория>
      
  2. Сформируйте файл конфигурации правила ревью кода .sourcecraft/review.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 # Игнорировать одобрения от автора предложения изменений
    

    Совет

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

  3. В блоке patterns укажите пути в репозитории, по которым будут срабатывать правила ревью кода, например:

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

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

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

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

    Совет

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

  4. В блоке usernames укажите список пользователей, ревью от одного из которых должно быть обязательным в предложении изменений.

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

    git add .sourcecraft/review.yaml
    git commit -m "Added code review configuration"
    git push -u origin main
    
  6. Проверьте выполнение правил ревью кода:

    1. Создайте тестовое предложение изменений.

    2. В созданном предложении изменений убедитесь, что:

      • На вкладке Обзор отображается проверка Рецензия кода в статусе In progress.
      • В блоке Рецензенты отображается кто-то из ревьюеров, указанных в конфигурации правил ревью кода.
    3. Дождитесь одобрения предложения изменений.

    4. Чтобы выполнить слияние с основной веткой, нажмите Объединить.

      Выполнять слияния могут пользователи с ролью Разработчик репозитория и выше.

Важно

Обойти правила ревью кода и выполнить принудительное слияние могут только пользователи с ролью Ответственный за репозиторий или ролью Администратор репозитория.

См. также