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

Как задача превращается в pull request

Полный путь от описания работы до проверенного pull request и названия всех этапов на этом пути.

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

Путь

  1. 1Спецификация

    Что будет создано и как вы узнаете, что это сработало

    АрхитекторВы можете изменить
  2. 2План

    Упорядоченные шаги, согласованные перед написанием кода

    АрхитекторВы утверждаете
  3. 3Сборка

    Код и тесты, написанные в изолированном рабочем пространстве

    Разработчик
  4. 4Проверка

    Ваш набор тестов, а также проверки и критерии качества

    Специалист по тестированию
  5. 5Рецензирование

    Автоматизированная проверка различий в коде

    Рецензент
  6. 6Запрос на объединение

    На ветке вашего репозитория, ожидает вашего решения

    Вы сливаете

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

Шесть этапов, каждый со своим ответственным. Вы вмешиваетесь на этапах спецификации, планирования и слияния.

Эти этапы одинаковы для обоих режимов выполнения задачи. В стандартном режиме платформа переводит задачу из одного этапа в другой. В режиме «Координатор» агент планирования выступает в роли координатора, передает каждый этап соответствующему агенту и определяет дальнейшие действия после получения результата, включая возврат работы на доработку. В любом случае этап завершается после прохождения собственных проверок. Подробнее — см. Роли агентов , чтобы узнать о различиях между этими двумя режимами.

Техническое задание

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

Это важно, так как критерии приемки используются для проверки результатов на соответствие требованиям на этапе верификации. Нечеткое техническое задание приводит к тому, что результаты трудно оценить.

Вы можете просматривать и редактировать техническое задание на вкладке Техническое задание задачи перед началом ее выполнения.

Руководство по разработке на основе технического задания specification-driven development guide Описывает, как составлять критерии, пригодные для тестирования, задавать границы области задачи и сохранять единое понимание успеха на этапах планирования, реализации и рецензирования.

План

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

Отклонение плана обходится недорого и является правильным решением, если выбранный подход ошибочен. Отклонение после написания кода стоит дороже. Именно на этом этапе ваше суждение оказывает максимальное влияние.

Разработка

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

Рабочее пространство является разовым и привязано к конкретной задаче. Действия агента не затрагивают вашу основную ветку, а две одновременно выполняющиеся задачи не могут видеть работу друг друга в процессе.

Проверка

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

Помимо этого, фильтры качества Запускается любой набор правил, настроенный в вашей организации: пороги покрытия кода, проверки стиля, сканирование на предмет уязвимостей, браузерные тесты на тестовом деплое. Блокирующий шлюз приостанавливает выполнение задачи; информационный шлюз фиксирует результаты и позволяет продолжить работу.

Рецензирование

Агент-рецензент анализирует изменения так же, как это сделал бы коллега, и формирует Результаты. Результаты, требующие исправления, отправляются обратно на доработку; остальные прикрепляются к pull request, чтобы вы могли их видеть.

Именно поэтому готовый к использованию Coroid pull request уже прошел рецензирование — не чтобы заменить вашу проверку, а чтобы ваша оценка не была первой.

Pull request

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

На этом этапе автоматизация задач в Coroid завершается. Объединение выполняется вручную.

После объединения

Открыть Релизы чтобы подготовить именно тот коммит, который вы планируете выпустить. Релиз может включать несколько объединённых Pull request, прямой коммит или изменения, внесённые вне Coroid. Шлюз релиза и процедуры утверждения касаются именно этого коммита и конкретной среды. Ваша система непрерывной интеграции разворачивает его; Coroid фиксирует факт успешного развертывания или получает явное подтверждение перед тем, как пометить релиз как выпущенный. Отметка COMPLETED или сам объединённый pull request ещё не подтверждают факт развертывания.

Статусы задач

Статус задачи показывает её текущее положение в описанном выше процессе:

СтатусЗначение
PENDINGПринята, ожидает освобождения слота агента
IN_PROGRESSВ процессе выполнения
PENDING_REVIEWРабота завершена и пройдена проверка, ожидает интеграции или утверждения
COMPLETEDРабота по задаче завершена; развертывание отслеживается отдельно
NEEDS_HUMAN_REVIEWCoroid не может продолжить самостоятельно и запрашивает у вас решение.
PAUSEDВременно приостановлена, может быть возобновлена
FAILEDВыполнение не удалось завершить
CANCELLEDОстановлена вами
WONT_FIXЗакрыта намеренно без выполнения работы

От чего зависит пропускная способность?

Один слот агента Один слот агента обрабатывает одну задачу за раз. Слоты определяют объем параллельно выполняемых работ; они не ускоряют завершение отдельной задачи. Длительность выполнения задачи зависит от размера изменений и времени, необходимого для запуска тестового набора.

Далее

Роли агентов — какой агент отвечает за каждый этап выполнения задачи. Затем ознакомьтесь с Релизы для отслеживания пути после слияния изменений через ваши рабочие среды.