Документация

Настройки репозитория и веток

С какой ветки работает Coroid, куда поступают запросы на объединение и как называются ветки.

Каждый проект указывает на один репозиторий. Настройки этого репозитория определяют, как Coroid взаимодействует с вашей моделью ветвления.

Их можно найти в настройках проекта.

Синхронизированный или локальный режим

Режим репозитория определяет, может ли Coroid записывать данные в GitHub или GitLab.

  • Синхронизированный (режим по умолчанию): Coroid создает ветку для каждой задачи и открывает pull-запросы в вашу базовую ветку.
  • Только локальный: Coroid клонирует репозиторий и получает из него данные, но никогда не записывает туда информацию. Никаких push-операций, веток на удалённом сервере, pull-запросов, комментариев, рецензий, проверок или вебхуков, слияний и запусков пайплайнов. Все ветки, коммиты, рецензии, этапы QA и предварительные просмотры выполняются внутри Coroid.

Синхронизировано

CoroidGitHub
  • Загружает данные из GitHub
  • Отправляет ветки и открывает пулл-реквесты

Только локально

CoroidGitHub
  • Загружает данные из GitHub
  • Никогда не отправляет данные, не добавляет комментарии и не открывает пулл-реквесты
  • Вы получаете доступ к его веткам через собственный git-сервер Coroid
Режим «только локально» позволяет опробовать Coroid на реальном репозитории: он считывает данные из GitHub и сохраняет все ветки, коммиты и результаты проверки внутри Coroid. Синхронизацию начните тогда, когда потребуется создать пулл-реквесты.

Выберите нужный режим при создании проекта, а затем измените его в настройках проекта. Проект в режиме «Только локальный» отображает Только локальный рядом с названием репозитория.

Режим «Только локальный» — безопасный способ протестировать возможности Coroid на реальном репозитории. Задачи и планы проходят все этапы вплоть до рецензии. Там, где обычно находился бы pull request, отображается Хранятся в Coroid и одно действие — Начать синхронизацию. Для утверждения требуется синхронизированный проект, так как утверждение означает слияние с вашей базовой веткой; в рамках плана задачи всё равно объединяются в ветке плана внутри Coroid. Копия вашей базовой ветки в Coroid остаётся идентичной удалённой версии, поэтому ничто не попадёт туда без предварительного открытия pull request.

Чтобы посмотреть результаты работы на своём компьютере, откройте Клонировать и экспортировать в настройках репозитория, создайте токен доступа и получите ветки Coroid из его собственного Git-репозитория:

git remote add coroid https://coroid@git.coroid.ai/git/<project-id>.git
git fetch coroid

Начать синхронизацию переключает проект в режим «Синхронизированный». С этого момента новая работа будет отправляться и превращаться в pull-запросы. Работа, уже сохранённая в Coroid, останется на месте: откройте соответствующий pull request на странице рецензии (Создать pull request для задачи, Открыть pull request для плана). Переключение обратно в режим «Только локальный» вступает в силу немедленно.

В режиме «Только локальный» ничего не зависит от областей действия вашего токена: Coroid блокирует любую запись в сам репозиторий, независимо от возможностей подключения. Этот режим привязан к настройкам ветвления проекта в переносимость настроек.

Базовая ветка

Coroid формирует ветки из вашей базовой ветки и открывает запросы на объединение обратно в неё. По умолчанию используется стандартная ветка репозитория.

Измените её, если требуется объединение в другое место — например, в develop ветку, ветку выпуска или долгоживущую интеграционную ветку. Неправильная настройка — самая распространённая ошибка конфигурации; в результате запросы на объединение попадают в ветку, которую никто не проверяет.

Когда меняется целевая ветка

В плане сохраняется коммит базовой ветки, с которого он начался. Если базовая ветка изменится до объединения pull request плана, Coroid приостановит процесс объединения; подробнее см. Когда перемещается базовая ветка. Эта настройка определяет дальнейшие действия:

  • Приостановить для проверки (по умолчанию) — кто-то просматривает новые коммиты и либо принимает их, либо просит Coroid объединить их и повторно проверить.
  • Объединить и повторно проверить — Coroid объединяет изменения в ветку плана и запускает разработчика, специалиста по QA и рецензента заново, не дожидаясь участия людей. Это расходует часы работы агентов. Если объединение или повторная проверка завершатся ошибкой, решение снова принимается человеком.

В любом случае ничего не объединяется, пока план не будет проверен против текущей базовой ветки или человек не примет различия. Эта настройка входит в параметры ветвления проекта, поэтому она сохраняется при его переносе в переносимость настроек.

Рабочие ветки

Каждая задача работает в собственной ветке. Ветки создаются для каждой задачи и отправляются в репозиторий, когда работа завершена (в проекте с режимом «Только локально» они хранятся в Coroid). Таким образом, две одновременно выполняемые задачи никогда не используют одну ветку и не видят результатов друг друга.

Ничто никогда не коммитится напрямую в вашу базовую ветку. Это не настройка; так устроена работа Coroid.

Одна ветка на одну задачу. Две задачи никогда не используют одну ветку.

Ваши требования к рецензированию и проверкам сохраняются без изменений.

Вы объединяете в main

Каждая задача работает в отдельной ветке от вашей базовой ветки. Результатом становится только pull request, через механизмы защиты веток, уже установленные у вас.

Защита веток

Существующая защита веток применяется без изменений. Coroid открывает обычный запрос на объединение, поэтому обязательные проверки, проверки статуса и ограничения на объединение работают точно так же, как и для вашей команды.

Если правила защиты требуют подписанного коммита или конкретной проверки статуса, которую не может обеспечить Coroid, запрос на объединение pull request откроется и останется неслитым — это работа ваших правил, а не сбой Coroid.

Очистка

Ветки завершённых задач можно удалить после того, как соответствующий запрос pull request будет слит или закрыт. Если вы используете названия веток для аудита или инструментов выпуска, проверьте этот параметр перед его включением.

Изменение подключения

Если подключение к репозиторию изменится — токен будет обновлён, приложение переустановлено или репозиторий переименован — проект сохранит свою идентичность и историю. Перенаправьте его на новое подключение вместо создания нового проекта, чтобы не потерять контекст, настройки и предыдущую работу.

Настройки конвейера релизов

Базовая ветка определяет место, где Coroid создаёт запросы на объединение. Для развертывания используется отдельный проект. Релиз Конфигурация релиза включает в себя среду, политику готовности, а также, при необходимости, ссылку на конвейер GitHub Actions или GitLab, а также задание по развертыванию. Эта ссылка должна указывать на зафиксированный коммит релиза перед тем, как Coroid инициирует его выполнение. Необходимо настроить учетные данные для обратного вызова в рамках среды, чтобы конвейер мог сообщить о результате; сама по себе связь с репозиторием не подтверждает факт развертывания. Внешние конвейеры могут передавать события без разрешения на запуск от Coroid.