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

Вы можете управлять общими правилами ревью кода и политиками веток для всех репозиториев организации с помощью специального репозитория с названием .sourcecraft.

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

Создать репозиторий .sourcecraft

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

  1. Откройте главную страницу SourceCraft.
  2. На панели слева нажмите Создать репозиторий.
  3. В открывшемся окне выберите Пустой репозиторий.
  4. В поле Название укажите .sourcecraft.
  5. Нажмите Создать репозиторий.

Примечание

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

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

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

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

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

  3. Выберите репозиторий .sourcecraft.

  4. На странице репозитория в разделе Код перейдите в секцию Обзор.

  5. Выберите ветку для внесения изменений.

  6. Над списком файлов в ветке нажмите .

  7. Выберите Файл.

  8. В открывшемся окне введите имя файла .sourcecraft/review.yaml и нажмите Создать файл.

  9. В файле .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 # Игнорировать одобрения от автора предложения изменений
    

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

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

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

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

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

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

    Совет

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

  11. В правом верхнем углу нажмите Сохранить изменения.

  12. В открывшемся окне настройте параметры внесения изменений:

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

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

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

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

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

    4. В правом верхнем углу нажмите кнопку Клонировать.

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

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

      git clone <ссылка_для_клонирования_репозитория>
      
    7. Перейдите в склонированный репозиторий:

      cd <имя_репозитория>
      
  2. Создайте файл конфигурации правил ревью кода .sourcecraft/review.yaml:

    nano .sourcecraft/review.yaml
    
  3. Сформируйте файл по шаблону:

    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 # Игнорировать одобрения от автора предложения изменений
    

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

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

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

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

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

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

    Совет

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

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

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

Настроить политики веток для организации

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

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

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

  3. Выберите репозиторий .sourcecraft.

  4. На странице репозитория в разделе Код перейдите в секцию Обзор.

  5. Выберите ветку для внесения изменений.

  6. Над списком файлов в ветке нажмите .

  7. Выберите Файл.

  8. В открывшемся окне введите имя файла .sourcecraft/branches.yaml и нажмите Создать файл.

  9. В файле .sourcecraft/branches.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), только через предложение изменений.
      • prevent_all_changes — нельзя выполнять любые действия с веткой или тегом.
      • prevent_deletion — нельзя удалять ветку или тег.
      • prevent_creation — нельзя создавать ветку или тег.

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

  10. В правом верхнем углу нажмите Сохранить изменения.

  11. В открывшемся окне настройте параметры внесения изменений:

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

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

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

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

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

    4. В правом верхнем углу нажмите кнопку Клонировать.

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

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

      git clone <ссылка_для_клонирования_репозитория>
      
    7. Перейдите в склонированный репозиторий:

      cd <имя_репозитория>
      
  2. Создайте файл конфигурации политик веток .sourcecraft/branches.yaml:

    nano .sourcecraft/branches.yaml
    
  3. Сформируйте файл по шаблону:

    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), только через предложение изменений.
      • prevent_all_changes — нельзя выполнять любые действия с веткой или тегом.
      • prevent_deletion — нельзя удалять ветку или тег.
      • prevent_creation — нельзя создавать ветку или тег.

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

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

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

См. также