Управление плагинами
Импорт и синхронизация плагинов рабочей области из GitHub
Перед началом работы
Администраторы рабочей области могут импортировать маркетплейс плагинов из GitHub и поддерживать его плагины в актуальном состоянии относительно репозитория. Маркетплейс представляет собой каталог JSON со списком плагинов для импорта.
Эта страница описывает импорт и синхронизацию в рабочем пространстве. Чтобы настроить маркетплейсы напрямую
в локальных клиентах через управляемый из облака или системный config.toml, см. раздел
Настройка маркетплейсов плагинов и параметров по умолчанию.
Чтобы включить или отключить плагины для конкретного проекта, см. раздел Включение или отключение плагина для
репозитория.
Используйте учётную запись GitHub с доступом на чтение к репозиторию маркетплейса и всем указанным в нём репозиториям. Поддерживаются общедоступные и закрытые репозитории GitHub. Перед импортом получите все необходимые разрешения организации GitHub для доступа к репозиторию.
Перед импортом проверьте содержимое репозитория. Новые плагины изначально имеют политику установки Available и аутентификацию при установке. Для новых маркетплейсов включена автоматическая ежедневная синхронизация. При импорте обрабатываются все допустимые записи, а при последующих синхронизациях автоматически добавляются все новые плагины из репозитория.
Настройка синхронизации маркетплейса
- Откройте Admin > Plugins и выберите Add > Import marketplace.
- В поле Source введите URL репозитория, например
https://github.com/example/team-plugins. Используйте только URL репозитория, без URL ветви или папки. - Если маркетплейс находится в подкаталоге, укажите этот каталог в поле Path. Например, для
team-tools/.agents/plugins/marketplace.jsonиспользуйтеteam-tools. Для корня репозитория оставьте поле Path пустым. Не вводите имя файла манифеста. - При необходимости укажите Branch, tag, or commit. Оставьте поле пустым, чтобы использовать ветвь репозитория по умолчанию. Используйте ветвь для получения будущих коммитов; фиксированный коммит останется на выбранной ревизии.
- Выберите Import marketplace и при появлении запроса авторизуйте доступ GitHub. Первоначальный импорт очень крупных маркетплейсов может занять до часа. Последующие ежедневные синхронизации обычно занимают несколько минут.
- Проверьте Import results, затем откройте каждый импортированный плагин, чтобы настроить политику его установки и все необходимые приложения.
Чтобы запросить обновление, не дожидаясь ежедневной синхронизации, откройте маркетплейс в разделе Admin > Plugins > Marketplaces и выберите Sync now.
Поддерживаемые форматы
Выбранный каталог должен содержать один из следующих файлов:
| Файл | Формат |
|---|---|
.agents/plugins/marketplace.json |
Маркетплейс Codex с массивом plugins. |
.claude-plugin/marketplace.json |
Маркетплейс, совместимый с Claude, с массивом plugins. |
.claude-plugin/plugin.json |
Автономный плагин Claude, если манифест маркетплейса отсутствует. |
В маркетплейсе записи могут ссылаться на нативные плагины с .codex-plugin/plugin.json, плагины, совместимые с Claude, пакеты Agent Plugins 1.0 или поддерживаемые пакеты навыков.
Для маркетплейса Codex используйте локальные пути к плагинам из того же репозитория:
{
"name": "team-plugins",
"interface": {
"displayName": "Team plugins"
},
"plugins": [
{
"name": "team-tools",
"source": {
"source": "local",
"path": "./plugins/team-tools"
}
}
]
}Путь задаётся относительно выбранного корня маркетплейса, а не относительно .agents/plugins/.
Маркетплейс, совместимый с Claude, может использовать строку пути для каждого локального плагина:
{
"name": "team-plugins",
"plugins": [
{
"name": "team-tools",
"source": "./plugins/team-tools"
}
]
}Записи маркетплейса Codex также поддерживают source: "url" для плагина в корне репозитория GitHub и source: "git-subdir" для плагина в подкаталоге GitHub. Например:
{
"name": "team-tools",
"source": {
"source": "git-subdir",
"url": "https://github.com/example/team-tools.git",
"path": "./plugins/team-tools",
"ref": "main"
}
}Источники Git могут выбирать ref или полный 40-символьный хеш коммита sha. Авторизующая учётная запись GitHub должна иметь доступ на чтение ко всем указанным репозиториям. В настоящее время импорт в рабочую область поддерживает только репозитории GitHub.
Настройка доступа в рабочей области
Импорт и синхронизация GitHub не применяют политики установки или аутентификации, заданные в репозитории, включая AVAILABLE, INSTALLED_BY_DEFAULT, NOT_AVAILABLE, ON_INSTALL и ON_USE. Администраторы рабочей области настраивают эти параметры для каждого плагина. При синхронизации обновления или переводе существующего плагина под управление GitHub его политики рабочей области сохраняются.
С помощью Installation policy выберите Available или Installed для каждой подходящей роли. Необходимые приложения также должны быть включены, а участники должны иметь доступ к подключённому сервису. Импорт плагина не предоставляет доступ к приложению и не подключает учётные записи участников. Сведения о средствах управления ролями, приложениями и действиями приведены в разделе Средства управления плагинами.
Перевод существующего плагина под управление GitHub
Добавьте pluginId в запись существующего плагина в маркетплейсе:
{
"name": "team-tools",
"pluginId": "plugin_0123456789abcdef0123456789abcdef",
"source": {
"source": "local",
"path": "./plugins/team-tools"
}
}Откройте плагин в разделе Admin > Plugins и скопируйте из его URL идентификатор после /admin/plugins/. Поместите pluginId рядом с name и source в записи маркетплейса. Существующий плагин должен находиться в той же рабочей области.
Таким образом загруженный или иначе неуправляемый плагин рабочей области переводится под управление GitHub. Плагин сохраняет свой идентификатор, настройки общего доступа и политики рабочей области. Будущие обновления будут поступать из GitHub; загруженные архивы больше не смогут заменять управляемый плагин. Плагин, уже управляемый из другого источника GitHub, нельзя перевести таким способом.
Плагины только для настольного приложения
Любой импортированный плагин, объявляющий MCP servers в mcp.json или .mcp.json, помечается как Desktop only и работает только в настольном приложении ChatGPT. Это относится и к серверам, использующим удалённый URL HTTPS. Такое же ограничение применяется к другим поддерживаемым формам конфигурации MCP, например к встроенным объявлениям серверов.
Ссылка на существующее приложение с помощью .app.json
Добавьте .app.json в корень плагина. Имя файла начинается с точки; вариант app.json без точки не поддерживается.
{
"apps": {
"team-tools": {
"id": "asdk_app_example",
"required": true
}
}
}Замените asdk_app_example идентификатором существующего приложения. Поддерживаемые идентификаторы приложений начинаются с asdk_app_, connector_ или templated_apps_. Используйте идентификатор приложения, а не идентификатор plugin_.... Например, URL плагина, содержащий plugin_asdk_app_example, представляет приложение asdk_app_example.
Ключ team-tools задаёт имя ссылки в этом файле. Установите для required значение true, если плагин зависит от приложения. Можно добавить дополнительные записи со ссылками на другие существующие приложения.
Для нативного плагина задайте для apps значение ./.app.json в .codex-plugin/plugin.json. Ниже приведён полный манифест для этого примера:
{
"name": "team-tools",
"version": "1.0.0",
"description": "Use the team's approved tools.",
"author": {
"name": "Example team"
},
"apps": "./.app.json",
"interface": {
"displayName": "Team tools",
"shortDescription": "Use approved team tools",
"longDescription": "Connect to the team's existing app.",
"developerName": "Example team",
"category": "Productivity",
"capabilities": ["Read"]
}
}Сохраняйте файлы в следующей структуре:
team-plugins/
├── .agents/plugins/marketplace.json
└── plugins/team-tools/
├── .codex-plugin/plugin.json
└── .app.jsonСсылка не создаёт приложение и не предоставляет разрешения. Администраторы должны сделать приложение доступным для нужных ролей, а участники — пройти всю необходимую аутентификацию. Существующие разрешения приложения, средства управления действиями и доступ к сервису продолжают действовать.
Поддержание плагинов в актуальном состоянии
Новые маркетплейсы ежедневно проверяют наличие обновлений. Откройте Admin > Plugins > Marketplaces, выберите маркетплейс и нажмите Sync now, чтобы запросить обновление, не дожидаясь автоматической синхронизации.
Синхронизация может добавлять новые записи маркетплейса и обновлять существующие плагины. Проверяйте изменения репозитория перед их слиянием, поскольку автоматическая синхронизация импортирует все новые плагины.
После синхронизации проверьте статус и сохранённый отчёт. Статус Completed — N errors означает, что проход завершён, но некоторые плагины не удалось обработать. Если обновление существующего плагина недопустимо, сохраняется его последняя рабочая версия. Исправьте указанную проблему в GitHub, затем выберите Sync now, чтобы повторить попытку.
Удаление записи из репозитория не удаляет её импортированную копию в рабочей области. Она помечается как No longer in source. Удаление маркетплейса в ChatGPT удаляет все импортированные из него плагины.
Повторное подключение или изменение доступа GitHub
Чтобы повторно подключить доступ GitHub, сначала убедитесь, что учётная запись GitHub, использованная для импорта, по-прежнему имеет доступ к репозиторию и всем указанным в нём репозиториям. Затем администратор, изначально импортировавший маркетплейс, должен открыть плагин GitHub в ChatGPT и повторно подключить свою учётную запись, поскольку при синхронизации маркетплейса используется подключение GitHub этого администратора.
Чтобы передать маркетплейс новому владельцу, новый администратор рабочей области должен открыть Admin > Plugins > Add > Import marketplace и импортировать тот же маркетплейс с теми же значениями Source, Path и Branch, tag, or commit. При будущих синхронизациях будет использоваться его подключение GitHub.
Не удаляйте маркетплейс только для повторного подключения или смены владельца: при удалении также удаляются импортированные из него плагины.