---
title: "Автоматическое создание стендов по Pull Request"
---

# Автоматическое создание стендов по Pull Request

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

В App Platform можно настроить автоматическое создание стендов при открытии Pull Request в GitHub. Для изменений из ветки будет развернута отдельная версия приложения с собственным техническим доменом. На ней можно проверить работу приложения до слияния изменений в целевую ветку.

Pull Request — это запрос на слияние изменений из одной ветки репозитория в другую. Например, из ветки с новой функцией в main. Пока Pull Request открыт, вы можете вносить изменения в исходную ветку и проверять их на стенде.

Общие условия использования описаны в [статье о стендах](https://timeweb.cloud/docs/apps/stands).

## Ограничения

-   Автоматическое создание стендов доступно только для приложений из репозиториев GitHub,[подключенных через аккаунт](https://timeweb.cloud/docs/apps/connecting-repositories#podkluchenie-repozitoriya-iz-gitlab-github-ili-bitbucket). Для репозиториев, подключенных по URL, функция недоступна.
    
-   Для одного приложения доступно не более 10 стендов. Если лимит достигнут, при открытии нового Pull Request стенд не создастся, даже если автоматическое создание стендов включено.
    
-   Автоматизация включается отдельно для каждого приложения. Если из одного репозитория развернуто несколько приложений, стенды будут создаваться только для тех, у которых включена эта настройка, с учетом путей измененных файлов.
    

### Репозитории с несколькими приложениями

Если в одном репозитории находятся несколько приложений, при открытии Pull Request App Platform сопоставляет пути измененных файлов с директорией, из которой развернуто приложение. Стенд создается, если изменения затрагивают эту директорию.

Например, в репозитории есть директории `frontend` и `backend`, а приложение в App Platform развернуто из `frontend`:

-   Если при открытии Pull Request есть изменения в `frontend`, для приложения создается стенд.
    
-   Если изменения затрагивают только `backend`, стенд для фронтенд-приложения не создается.
    
-   Если после открытия такого Pull Request добавить изменения в `frontend`, это не запустит создание стенда. Чтобы создать его, закройте Pull Request без слияния и откройте повторно либо создайте новый Pull Request, в котором уже есть изменения в `frontend`.
    

> [!NOTE]
> Если в Pull Request изменено больше 300 файлов, сравнение изменений через GitHub недоступно. В этом случае App Platform создает стенд независимо от того, какие директории затронуты изменениями.

## Настройка автоматического создания стендов

1.  Перейдите в раздел «App Platform» и выберите нужное приложение.
    
2.  Откройте вкладку «Стенды».
    
3.  Нажмите «Автоматизация».
    
4.  Включите опцию «Автоматический деплой по Pull Request».
    
5.  При необходимости включите опцию «Автоматически передавать переменные приложения».
    
6.  Нажмите «Сохранить».
    

![Включение автоматизации](https://content.timeweb.com/assets/e337ed95-9fbc-4203-952e-d5ff6868412f.png?width=2786&height=1960)

После включения автоматизации откройте Pull Request в подключенном репозитории GitHub. App Platform создаст стенд и запустит его деплой.

### Передача переменных приложения

Опция «Автоматически передавать переменные приложения» позволяет передавать переменные основного приложения в стенд при его создании. Она работает независимо от автоматического создания стендов по Pull Request.

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

Если для запуска приложения нужны [переменные](https://timeweb.cloud/docs/apps/variables), например параметры подключения к базе данных или внешнему сервису, включите их автоматическую передачу или задайте необходимые значения в настройках стенда.

> [!NOTE]
> Проверьте, к каким ресурсам обращается стенд. Если использовать те же параметры подключения, что и у основного приложения, стенд будет работать с той же базой данных или внешним сервисом. Для тестирования можно задать отдельные значения переменных.

## Настройка разрешений GitHub

Чтобы бот Timeweb Cloud Apps мог добавлять в Pull Request комментарии со ссылками на стенд, интеграции GitHub необходим доступ к Pull Request на чтение и запись. Новые интеграции уже имеют эти разрешения, в том числе после отключения и повторного подключения в панели App Platform. Для ранее подключенных интеграций может потребоваться обновить права. Без этого разрешения стенды будут создаваться, но комментарии в GitHub не появятся. Перейти к стенду можно будет из панели App Platform.

Для проверки разрешений откройте приложение в разделе «App Platform», перейдите на вкладку «Стенды» и нажмите «Автоматизация».

Если в открывшемся окне отображается предупреждение «Нет доступа к комментариям в GitHub», обновите разрешения интеграции Timeweb Cloud Apps:

1.  Нажмите «Настроить доступы» в предупреждении.
    
2.  В GitHub на вкладке «Installed GitHub Apps» найдите «Timeweb Cloud Apps» и нажмите «Configure».
    

![Конфигурация GitHub](https://content.timeweb.com/assets/f15f175b-3d59-4716-bfac-f50b0c9404be.png?width=3404&height=1970)

_Интерфейс выдачи прав [GitHub](https://github.com/)_

3.  В блоке с запросом на обновление разрешений нажмите «Review request».
    

![Конфигурация GitHub](https://content.timeweb.com/assets/91b636bb-a851-4890-9a09-6f4d4e9b3680.png?width=3414&height=1958)

_Интерфейс выдачи прав [GitHub](https://github.com/)_

4.  Проверьте запрашиваемое разрешение — «Read and write access to Pull requests» — и нажмите «Accept new permissions».
    

![Конфигурация GitHub](https://content.timeweb.com/assets/544e7e85-86f2-4fad-8ce7-f53daad8f68b.png?width=3378&height=1331)

_Интерфейс выдачи прав [GitHub](https://github.com/)_

После обновления разрешений Timeweb Cloud Apps сможет добавлять в Pull Request комментарии со ссылками на стенды.

Если предупреждения нет, обновлять разрешения не требуется.

## Жизненный цикл стенда

App Platform управляет стендом в зависимости от действий в GitHub: создает его при открытии Pull Request, обновляет при новых коммитах в исходной ветке и по умолчанию удаляет при закрытии Pull Request.

### Создание

При открытии Pull Request App Platform создает стенд для исходной ветки и запускает деплой. Стенд появляется во вкладке «Стенды» с меткой «PR». Например, для Pull Request с номером 1 создается стенд PR-1.

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

![Создание стнеда](https://content.timeweb.com/assets/c3d700cb-4386-4f4b-8658-fae020678c4d.png?width=2304&height=1782)

Бот Timeweb Cloud Apps добавляет в Pull Request комментарий с информацией о деплое и ссылками для перехода к стенду. После успешного деплоя приложение доступно по отдельному техническому домену. Его также можно найти в настройках стенда в панели управления.

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

### Обновление

Стенд создается с включенной опцией «Сборка по последнему выполненному коммиту». Когда вы отправляете новые коммиты в исходную ветку Pull Request, App Platform автоматически запускает повторный деплой этого стенда. Его адрес остается прежним.

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

### Удаление

По умолчанию стенд автоматически удаляется при закрытии Pull Request. Это происходит как при закрытии без слияния, так и при слиянии изменений.

-   При закрытии без слияния стенд удаляется, а изменения из Pull Request не попадают в целевую ветку.
    
-   При слиянии стенд удаляется, а изменения попадают в целевую ветку. Если основное приложение развернуто из этой ветки и для него включен автодеплой, оно автоматически обновится.
    

Если стенд нужен после закрытия Pull Request, заранее отключите его автоматическое удаление.

## Управление стендом

Чтобы открыть настройки, перейдите во вкладку «Стенды» приложения и нажмите на нужный стенд в списке.

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

Подробнее об этих действиях — в [инструкции по управлению стендами](https://timeweb.cloud/docs/apps/stands).

У стенда, созданного по Pull Request, нельзя изменить ветку сборки, но можно выбрать конкретный коммит. Для этого отключите опцию «Сборка по последнему выполненному коммиту», выберите коммит и сохраните настройки. Стенд перестанет автоматически обновляться, а в Pull Request появится уведомление о закреплении стенда на выбранном коммите.

Для стендов, созданных по Pull Request, можно отключить автоматическое удаление после его закрытия. 

![Конфигурация стенда](https://content.timeweb.com/assets/479c6092-93cb-4d33-9263-2c01029e2f0a.png?width=2250&height=1756)

Для сохранение стенда после закрытия Pull Request:

1.  Откройте вкладку «Настройки» стенда.
    
2.  Отключите опцию «Удалять стенд при закрытии Pull Request».
    
3.  Нажмите «Сохранить».
    

После этого закрытие или слияние Pull Request не приведет к удалению стенда. Когда он больше не понадобится, удалите его вручную.
