Настроить триггеры конвейера
Конвейер запускает триггер. Каждый триггер — это узел на холсте, который перетаскивают из раздела Триггеры библиотеки узлов. При выборе этого узла справа открывается его инспектор — постоянного списка триггеров, вкладки триггеров и экрана триггеров не существует.
Открыть инспектор триггера
Заголовок раздела «Открыть инспектор триггера»- Перейдите в Настройки → Рабочее пространство → Шаблоны конвейеров.
- Нажмите на карандаш в строке шаблона, чтобы открыть редактор.
- Выберите узел триггера на холсте. Справа появится панель с настройками этого триггера. Если ничего не выбрано, панель скрыта.
Добавить триггер
Заголовок раздела «Добавить триггер»В разделе Триггеры библиотеки узлов каждый вид запуска представлен отдельным
узлом: ручной запуск, расписание, webhook и по одной карточке на каждое доменное
событие. Найдите merged, ticket или имя типа (PrMerged) и перетащите
карточку на холст. В новом шаблоне на входном якоре также отображается
призрачная плитка Добавить триггер — выберите из того же списка с поиском.
Триггер вставляется сразу. Новые автоматические триггеры создаются отключёнными, чтобы перетаскивание не запустило конвейер до того, как вы его настроите. Включите его переключателем Включено в инспекторе или удалите значком корзины.
Разрешить ручной запуск
Заголовок раздела «Разрешить ручной запуск»Перетащите Ручной запуск (или выберите его из призрачной плитки) и включите
Включено в его инспекторе. Именно после этого шаблон появляется в окне
запуска. Это не особый случай — переключатель записывает обычную строку триггера
с типом события manual. Она сохраняется сразу; сохранять ничего не нужно.
Тот же переключатель стоит за Ручной запуск в заголовке редактора, рядом с объявленными входными данными шаблона.
По событию
Заголовок раздела «По событию»Эти события запускают конвейер:
| Название в списке | Событие |
|---|---|
| Открыт внешний PR | ExternalPrDetected |
| PR опубликован | PullRequestPublished |
| Изменился статус PR | PullRequestStatusChanged |
| PR смержен | PrMerged |
| Получено сообщение | MessageReceived |
| Тикет создан | TicketCreated |
| Статус тикета изменён | TicketStatusChanged |
| Тикет назначен | TicketAssigned |
| Тикет выполнен | TicketCompleted |
| Сбой тикета | TicketFailed |
| Тикет отменён | TicketCancelled |
| Превышен порог бюджета | BudgetThresholdCrossed |
| Репозиторий добавлен | RepoAdded |
| Запись встречи остановлена | MeetingRecordingStopped |
| Навык обновлён | SkillUpdated |
| Пространство удалено | SpaceDeleted |
Именно на SpaceDeleted подписан встроенный конвейер очистки worktree: событие
несёт id удалённого пространства, поэтому запуск освобождает worktree ровно этого
пространства, а не обходит всё рабочее пространство.
О ключах полезной нагрузки, которые несёт каждое событие, см. в справочнике по доменным событиям.
Фильтрация триггера события
Заголовок раздела «Фильтрация триггера события»Выберите узел Изменился статус PR. Чипы статусов в инспекторе — единственный
фильтр, который можно задать в интерфейсе. Нажмите любой из merged, closed,
approved, opened, reopened; тогда триггер срабатывает, только когда
status события совпадает с одним из них. Если не выбрано ни одного чипа,
фильтра нет.
Поля для произвольного JSON-фильтра нет. Ключ фильтра, которого нет в полезной нагрузке события, не совпадёт никогда, поэтому не задавайте его вручную для ключа, который вы не проверили по справочнику доменных событий.
По расписанию
Заголовок раздела «По расписанию»Выберите узел Расписание, чтобы изменить момент срабатывания. Поля инспектора сохраняются в том виде, в каком вы их оставили:
| Поле | Описание |
|---|---|
| Расписание (cron или every:seconds) | Cron-выражение из пяти полей, например 0 9 * * 1, или интервал, например every:86400. Число без префикса приводится к виду every:<n>. |
| Часовой пояс (необязательно) | Зона IANA, например Europe/Paris. По умолчанию — UTC. |
| При пропущенных запусках | Что делать со срабатываниями, пропущенными, пока сервер был недоступен: Запустить один раз объединяет все пропущенные слоты в одно срабатывание при перезапуске (значение по умолчанию), Пропустить возобновляет работу со следующего будущего слота. |
В строке-сводке плитки на холсте интервал указывается только для формы
every:<seconds>; для cron-выражения отображается просто «Расписание».
С помощью webhook
Заголовок раздела «С помощью webhook»Перетаскивание узла Webhook создаёт случайный токен. Выберите узел, чтобы
скопировать путь POST /webhooks/<token> из инспектора.
Токен — это также секрет HMAC: запрос должен содержать
X-Hub-Signature-256: sha256=<hex>, где hex — это HMAC-SHA256(body, token).
Доставка, не прошедшая проверку, отклоняется и записывается в журнал, и её
нельзя воспроизвести повторно. Дубликаты игнорируются по их ключу дедупликации.
Каждый старт — отдельный узел графа. Провод от Расписание подключает только расписание; Ручной запуск может идти другим путём (например, через узел условия), прежде чем присоединиться к той же работе. Запуск входит в тот старт, который соответствует его типу события, и пропускает подграфы, принадлежащие другим стартам.
Как триггер приводит к запуску
Заголовок раздела «Как триггер приводит к запуску»Включённый триггер, у которого совпали и тип события, и фильтр, запускает
конвейер, а полезная нагрузка события становится полезной нагрузкой триггера
запуска — именно с ней сопоставляется {{key}} в промпте или скрипте шага.
События, несущие естественный ключ, дедуплицируются, поэтому одно и то же
событие, сработавшее дважды, не создаёт два запуска.
Отключённый шаблон отклоняется, даже если его триггер совпал. Восемь из тринадцати встроенных шаблонов поставляются отключёнными, поэтому их предустановленные триггеры срабатывают вхолостую, пока вы не включите шаблон.
Полезные схемы
Заголовок раздела «Полезные схемы»- Ограничить только ручной путь — проведите Ручной запуск через узел условия, а Расписание — напрямую к работе. У каждого старта свои провода.
- Проверять каждый новый PR — событие PR опубликован в шаблоне
pr_review. - Убирать после слияния — событие Изменился статус PR с фильтром
merged/closed/approved. Встроенный шаблонpr_merged_cleanupуже слушает именно эти события, а также тикет выполнен/отменён,SpaceDeletedи ежедневное расписание, которое принудительно включается при каждом повторном заполнении, поскольку это сборка мусора. - Ночная уборка — расписание
0 2 * * *с часовым поясом в шаблоне, первый узел которого — bash-скрипт. - Реагировать на внешнюю систему — триггер webhook, при этом вызывающая система подписывает тело запроса, как описано выше.
Связанные руководства
Заголовок раздела «Связанные руководства»- Создать шаблон конвейера
- Запустить конвейер вручную
- Мониторить запуски конвейеров
- Справочник по доменным событиям