# Использование глубоких ссылок для открытия приложения GitHub приложение Copilot

Используйте глубокие ссылки для запуска GitHub Copilot app из терминала, тикеты и внутренние инструменты, чтобы люди могли сразу перейти в нужный репозиторий, pull request, автоматизацию или сессию.

Глубокие ссылки помогают людям начинать работу GitHub Copilot app с меньшим количеством переключения контекста. Например, вы можете делиться запусковыми запросами, включать ссылки на приложение в файлы markdown, запускать приложение из терминальных скриптов или добавить кнопку для открытия приложения во внешних инструментах.

Вы можете открыть GitHub Copilot app ссылки из браузера, которые обертывают ссылку на приложение в размещённом лаунчере. Размещённый лаунчер открывает приложение, когда это возможно, и показывает страницу запасного варианта, если браузер не может передать данные приложению. Полный список ссылок на поддерживаемые приложения смотрите [раздел «Доступные ссылки на приложения](#available-app-links)».

## Зачем использовать глубокие ссылки

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

* Начинайте сессии с заранее заполненного стартового запроса.
* Делитесь подсказками автоматизации, чтобы товарищи могли быстро их открывать и использовать повторно.
* Добавьте кнопки запуска во внутренней документации или файлы markdown, чтобы открыть общие рабочие процессы.
* Запускайте приложение из команд терминала или скриптов в рамках локальных рабочих процессов.
* Откройте приложение через сторонние продукты, такие как Issue или Ticket Systems.

## Формат URL лаунчера

Используйте URL размещённого лаунчера с полной ссылкой приложения, закодированной в `open` параметре запроса. Размещённый лаунчер открывает приложение, когда это возможно, и показывает страницу запасного варианта, если браузер не может передать данные приложению.

```text
https://github.com/copilot/app/launch?open=ENCODED_APP_LINK
```

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

Например, чтобы открыть репозиторий, ссылка на приложение выглядит следующим образом:

```text
ghapp://github.com/OWNER/REPO
```

Закодировано в URL лаунчера, это становится:

```text
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO
```

Публичные ссылки должны использовать официальную `ghapp://` схему. Приложение также принимает `github-app://` ссылки для `gh://` совместимости, но сгенерированные и задокументированные ссылки должны использовать `ghapp://`.

## Откройте репозиторий или рабочий элемент

Чтобы открыть страницу в GitHub Copilot app, создать URL лаунчера по ссылке приложения на страницу, которую вы хотите открыть.

* Чтобы открыть репозиторий, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://github.com/OWNER/REPO
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO
   ```

* Чтобы открыть проблему, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://github.com/OWNER/REPO/issues/NUMBER
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Fissues%2F123
   ```

* Чтобы открыть pull request, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://github.com/OWNER/REPO/pull/NUMBER
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Fpull%2F123
   ```

* Чтобы возобновить задачу агента, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://github.com/OWNER/REPO/tasks/TASK_ID
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fgithub.com%2FOWNER%2FREPO%2Ftasks%2FTASK_ID
   ```

   Используйте GitHub идентификатор задачи для `TASK_ID`. Не используйте идентификатор сессии во время выполнения или URL локальной сессии приложения для ссылок, возобновляющих GitHubCopilot задачи агента.

## Открытые сессии

Чтобы начать новую сессию с глубокой ссылки, используйте `ghapp://session/new` параметры запроса для предварительного заполнения репозитория, ветки, pull request, prompt или режима. Для доступных параметров см. [раздел «Параметры сессии](#session-parameters)».

Например, чтобы начать новую интерактивную сессию с репозиторием и запросом на старт, используйте эту ссылку приложения:

```text
ghapp://session/new?repo=OWNER%2FREPO&mode=interactive&prompt=Investigate%20failing%20tests
```

Закодировано в URL лаунчера, это становится:

```text
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fsession%2Fnew%3Frepo%3DOWNER%252FREPO%26mode%3Dinteractive%26prompt%3DInvestigate%2520failing%2520tests
```

### Параметры сессии

`ghapp://session/new` Ссылки и `ghapp://session/new/OWNER/REPO` принимают эти параметры запроса.

| Parameter | Обязательный | Примечания |
| --- | --- | --- |
| `repo` | Требуется для `ghapp://session/new`; по желанию для `ghapp://session/new/OWNER/REPO` | Репозиторий в `OWNER/REPO` формате. |
| `pr` | Нет | Положительный номер pull request. Не удается объединить с `branch`. |
| `branch` | Нет | Базовая ветка для новой сессии. Не удается объединить с `pr`. |
| `prompt` | Нет | Начало игры. Не включайте секреты или чувствительный пользовательский контент в URL. |
| `mode` | Нет | Один из `plan`, `interactive`или `autopilot`. |

## Открытые автоматизации

Чтобы открыть автоматизации или создать новый черновик автоматизации по глубокой ссылке, используйте ссылки на приложения автоматизации. Для доступных параметров при создании нового черновика автоматизации см. [раздел «Параметры автоматизации](#automation-parameters)».

* Чтобы открыть страницу автоматизации, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://automations
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations
   ```

* Чтобы открыть новый черновик автоматизации, воспользуйтесь этой ссылкой приложения:

   ```text
   ghapp://automations/new?name=Daily%20triage&trigger=daily&time=09%3A00&prompt=Summarize%20new%20issues
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2Fnew%3Fname%3DDaily%2520triage%26trigger%3Ddaily%26time%3D09%253A00%26prompt%3DSummarize%2520new%2520issues
   ```

* Чтобы открыть существующую автоматизацию, используйте эту ссылку на приложение:

   ```text
   ghapp://automations/AUTOMATION_ID
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2FAUTOMATION_ID
   ```

* Чтобы открыть облачную автоматизацию, добавьте `mode=cloud` к приложению ссылку перед его кодированием:

   ```text
   ghapp://automations/AUTOMATION_ID?mode=cloud
   ```

   Закодировано в URL лаунчера, это становится:

   ```text
   https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fautomations%2FAUTOMATION_ID%3Fmode%3Dcloud
   ```

### Параметры автоматизации

Ссылка `ghapp://automations/new` открывает новый диалог автоматизации. Автоматизация создаётся только после просмотра диалога и подтверждения в приложении. Не включайте секреты или чувствительный пользовательский контент в запросы, встроенные в URL.

| Parameter | Применимо к | Примечания |
| --- | --- | --- |
| `name` | `ghapp://automations/new` | Имя службы автоматизации. |
| `prompt` | `ghapp://automations/new` | Подсказка автоматизации. Не включайте секреты или чувствительный пользовательский контент в URL. |
| `trigger` | `ghapp://automations/new` | Один из `manual`, `hourly``daily`или `weekly`. Недопустимые значения игнорируются. 
`interval` также принимается как псевдоним. |
| `time` | `ghapp://automations/new` | Время в `HH:mm` круглосуточном местном формате. Принято и `daily``weekly` триггерами. Ежедневные триггеры также принимают времена, разделённые по запятым или повторяющиеся моменты, когда все записи имеют одну и ту же минуту, например `time=08:00,13:00`. Недопустимые значения игнорируются. |
| `day` | `ghapp://automations/new` | Еженедельный день как `0`-`6` (`0` = воскресенье) или название в будний день. Недопустимые значения игнорируются. 
`schedule_day` также принимается как псевдоним, а еженедельные триггеры принимают значения, разделённые по запятой или повторяющиеся значения, такие как `schedule_day=1,3,5`. |
| `mode` | 
`ghapp://automations/AUTOMATION_ID` и `ghapp://automations/AUTOMATION_ID/RUN_ID`. | Применение `cloud` для облачных автоматизаций. Опустите его или используйте `local` для локальной автоматизации. |

## Потоки открытых плагинов

Чтобы открыть установку плагина или потоки маркетплейса по глубокой ссылке, используйте ссылки на приложение плагинов. Для доступных параметров см. [раздел «Параметры плагинов](#plugin-parameters)».

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

```text
ghapp://plugins/install?source=my-plugin%40acme
```

Закодировано в URL лаунчера, это становится:

```text
https://github.com/copilot/app/launch?open=ghapp%3A%2F%2Fplugins%2Finstall%3Fsource%3Dmy-plugin%2540acme
```

### Параметры плагинов

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

| Link | Parameter | Обязательный | Примечания |
| --- | --- | --- | --- |
| `ghapp://plugins/install` | `source` | Да | Источник плагина в `PLUGIN@MARKETPLACE` формате. URL-кодировать значение, например `source=my-plugin%40acme`, . |
| `ghapp://plugins/marketplace/add` | `source` | Да | Маркетплейс — источник в виде `OWNER/REPO` или Git-URL. URL-кодировать значение, например `source=acme%2Fplugins`, . |

## Доступные ссылки на приложения

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

| Форма ссылки приложения | Открытия | Примечания |
| --- | --- | --- |
| `ghapp://` | Дом | Открывает домашний маршрут приложения. |
| `ghapp://chats` | Чаты | Открывает чаты. |
| `ghapp://mywork` | Моя работа | Открывает проблемы и pull requests в моей работе. |
| `ghapp://github.com/OWNER/REPO` | Настройка репозитория | Открывает или клонирует репозиторий. |
| `ghapp://github.com/OWNER/REPO/issues/NUMBER` | Issue | Проблема возникает в разделе «Моя работа», когда репозиторий уже добавлен как проект. |
| `ghapp://github.com/OWNER/REPO/pull/NUMBER` | Запрос на слияние | Открывает pull request в My work, когда репозиторий уже добавлен как проект. Опциональные сегменты дорожки сохраняются. |
| `ghapp://github.com/OWNER/REPO/tasks/TASK_ID` | Задача агента | Возобновляет GitHubCopilot работу агента. Используйте GitHub ID задачи, а не локальный идентификатор сессии приложения. |
| `ghapp://automations` | Automations | Открывает автоматизации. |
| `ghapp://automations/new` | Новый проект автоматизации | Открывается новый диалог автоматизации с заранее заполнёнными поддерживаемыми параметрами запроса. См. [параметры автоматизации](#automation-parameters). |
| `ghapp://automations/AUTOMATION_ID` | Automation | По умолчанию открывает локальную автоматизацию. Добавьте `?mode=cloud` для облачной автоматизации. |
| `ghapp://automations/AUTOMATION_ID/RUN_ID` | Автоматизированный запуск | Открывает локальную автоматизацию, запущенную по умолчанию. Добавьте `?mode=cloud` для запуска облачной автоматизации. |
| `ghapp://recent` | Недавние рабочие пространства | Открывает недавние рабочие пространства. |
| `ghapp://sessions/SESSION_ID` | Сессия приложения | Открывает локальное рабочее пространство или сессию. Не используйте эту форму для возобновления GitHub задач агент Copilot. |
| `ghapp://clone/OWNER/REPO` | Настройка репозитория | Показывает подтверждение до клонирования или открытия настройки репозитория. |
| `ghapp://repo/OWNER/REPO` | Настройка репозитория | Показывает подтверждение до клонирования или открытия настройки репозитория. |
| `ghapp://session/new` | Новый сеанс | Показывает подтверждение перед созданием сессии. Используйте параметры запроса для предоставления репозитория, пулл-запроса, ветки, запроса или режима сессии. См. [параметры сессии](#session-parameters). |
| `ghapp://session/new/OWNER/REPO` | Новая сессия для репозитория | Показывает подтверждение перед созданием сессии для репозитория. См. [параметры сессии](#session-parameters). |
| `ghapp://plugins/install` | Форма установки плагинов | Отображает подтверждение, а затем открывает представление **подключаемых модулей** на вкладке **"Настройка** " с предварительно заполненной формой установки. См. [параметры плагина](#plugin-parameters). |
| `ghapp://plugins/marketplace/add` | Форма плагинного маркетплейса | Отображает подтверждение, а затем открывает представление **подключаемых модулей** на вкладке **"Настройка** " с предварительно заполненной формой Marketplace. См. [параметры плагина](#plugin-parameters). |