Публикация расширения Azure DevOps из командной строки

Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Используйте кроссплатформенный интерфейс командной строки для Azure DevOps (tfx-cli), чтобы опубликовать расширение в Visual Studio Marketplace. Дополнительные сведения см. в обзоре публикации, установки и совместного использования.

Необходимые условия

Категория Требования
Инструменты CLI для Azure DevOps (tfx-cli) Cross-platform CLI для Azure DevOps (tfx-cli) установлен через npm
Аутентификация Маркер Microsoft Entra (рекомендуется) или персональный маркер доступа (PAT) в области Marketplace (publish)
Publisher Учетная запись publisher настроена в Marketplace Visual Studio

Это важно

Рассмотрите возможность использования более безопасных токенов Microsoft Entra вместо более рискованных персональных токенов доступа. Дополнительные сведения см. в разделе "Сокращение использования PAT". Просмотрите рекомендации по проверке подлинности , чтобы выбрать правильный механизм проверки подлинности для ваших потребностей.

Получите инструмент tfx-cli

  1. Если у вас его нет, скачайте и установите NodeJS. Во время настройки убедитесь, что вы оставили выбрано Добавить в PATH.

  2. Откройте командную строку и введите npm i -g tfx-cli.

Если у вас уже установлен интерфейс командной строки TFX, можно обновить до последнего выпуска, выполнив npm up -g tfx-cli.

Установка tfx-cli

npm install -g tfx-cli

Публикация с помощью токена Microsoft Entra

Расширение можно опубликовать в качестве сервисного принципала.

  1. Добавьте учетную запись службы как участника в учетную запись издателя. Получите идентификатор субъекта-службы через REST API, выполнив вход с помощью Azure CLI и запросив профиль субъекта-службы:
az login --service-principal --username <appId> --password <password> --tenant <tenant-id>
# 499b84ac-1321-427f-aa17-267ca6975798 specifies azure devops as a resource
az rest -u https://app.vssps.visualstudio.com/_apis/profile/profiles/me --resource 499b84ac-1321-427f-aa17-267ca6975798

Затем используйте идентификатор из предыдущего шага, чтобы добавить субъект-службу в качестве члена издателя.

  1. Опубликуйте расширение через TFX CLI , используя сервисного принципала. Выполните следующую команду TFX CLI, чтобы использовать его токен доступа:
tfx extension publish --publisher my-publisher --vsix my-publisher.my-extension-1.0.0.vsix --auth-type pat -t <ENTRA_TOKEN>

Публикация через личный токен доступа

Создайте личный токен доступа (PAT) с областью Marketplace (публикация).

После установки tfx-cli и наличия PAT выполните упаковку и публикацию вашего расширения.

  1. Откройте командную строку в корневом каталоге расширения.
  2. Выполните следующую команду, чтобы опубликовать расширение. При появлении запроса введите токен для аутентификации.
tfx extension publish --publisher <YOUR_PUBLISHER_ID> --manifest-js <YOUR_EXTENSION_MANIFEST> --share-with <ACCOUNT_NAME>

Возможные ошибки

Если расширение уже опубликовано, может появиться следующая ошибка:

Failed Request: Internal Server Error(500) - Version number must increase each time an extension is published. Extension: fabrikam.my-extension  Current version: 0.1.9  Updated version: 0.1.9

Добавьте --rev-version флаг, чтобы автоматически увеличить версию patch вашего расширения. Этот флаг также сохраняет новую версию в манифесте.

Заметка

Для команды create доступны все параметры, доступные для publish.

Пример

C:\vso-team-calendar>tfx extension publish --publisher publishFabrikam --manifest-js fabrikam.config.js --share-with fabrikam --rev-version
Copyright Microsoft Corporation
> Personal access token:
Checking if this extension is already published
It is, update the extension
Waiting for server to validate extension package...
Sharing extension with fabrikam.

=== Completed operation: publish extension ===
 - Packaging: C:\vso-team-calendar\fabrikam.team-calendar-0.2.6.vsix
 - Publishing: success
 - Sharing: shared with fabrikam