Упаковка и публикация интеграции в Marketplace
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
У вас есть инструмент, служба или продукт, который интегрируется с Azure DevOps или Team Foundation Server (TFS)? В этом случае помогите пользователям найти его, публикуя его в Visual Studio Marketplace. Marketplace — это однократный магазин для частных лиц и команд, чтобы найти инструменты, расширяющие и расширяющие возможности.
Просмотрите Marketplace примеры других интеграции и расширений.
Примечание.
Если вы ищете сведения о упаковке и публикации расширений, проверка из пакетов и расширений публикации.
Требования к публикации
Перед публикацией в Marketplace необходимо выполнить следующий список требований.
- Установите средство упаковки расширений (TFX). Запустите
npm install -g tfx-cli
из командной строки. - Убедитесь, что необходимые разрешения предоставляются для использования изображений, например значков, логотипов, снимков экрана и т. д.
- Добавьте подробный
overview.md
файл, чтобы описать список в Marketplace. - Добавьте значок расширения, размер которого составляет не менее 128x128 пикселей.
- Если вы ссылаетесь на продукты Майкрософт, используйте полные имена вместо аббревиаций, например Azure DevOps и AzDO или любую другую аббревиацию.
- Воздерживайтесь от использования фирменной марки в имени вашего расширения.
Необходимые элементы
- Логотип пикселя 128x128 (формат PNG или JPEG), представляющий интеграцию, самостоятельно или вашу компанию или организацию
- Не менее одного снимка экрана, на котором показана интеграция
- Вызов действия или URL-адрес начала работы (где пользователи должны начать работу с интеграцией)
Шаги
Публикация в Marketplace — это итеративный процесс, который начинается с создания файла манифеста, который определяет характеристики интеграции и обнаружения ключей (например, снимки экрана, логотипы и содержимое обзора). Эта информация используется для представления интеграции пользователям в Marketplace, например:
Примечание. Термин используется extension
в документации, указанной ниже. Расширения — это другой тип элемента Marketplace и совместное использование множества сходств с точки зрения обнаружения в качестве интеграции.
Создание издателя
Все расширения и интеграции, включая расширения от Корпорации Майкрософт, имеют издателя. Любой пользователь может создать издателя и опубликовать в нем расширения. Вы также можете предоставить другим пользователям доступ к издателю, если команда разрабатывает расширение.
Пользователь владеет издателем, как правило, пользователем, создавшим его. Вы также можете поделиться издателем с другими пользователями.
Войдите на портал публикации Visual Studio Marketplace.
Если вы еще не являетесь членом существующего издателя, и создайте издателя. Введите имя в поле имени издателя. Поле идентификатора должно автоматически задаваться в зависимости от введенного имени.
Примечание.
Запишите идентификатор, так как его необходимо задать в файле манифеста расширения.
Если вам не предлагается создать издателя, прокрутите вниз до нижней части страницы и выберите "Опубликовать расширения" под связанными сайтами.
- Укажите идентификатор издателя, например:
mycompany-myteam
Этот идентификатор используется в качестве значения атрибута в файле манифестаpublisher
расширения. - Укажите отображаемое имя издателя, например:
My Team
- Укажите идентификатор издателя, например:
Просмотрите соглашение издателя Marketplace и нажмите кнопку "Создать".
После создания издателя вы будете перенаправлены для управления элементами, но нет элементов.
Создание папки для хранения манифеста элемента и других ресурсов
Прежде чем упаковать интеграцию в качестве расширения, необходимо создать папку home
для хранения некоторых необходимых ресурсов в этой папке:
- Создайте папку, вызываемую
images
для хранения:- Логотип для интеграции (128x128 пикселей)
- Снимки экрана (1366x768 пикселей)
- Создание файла с именем
overview.md
- Описание интеграции здесь
- Дополнительные сведения о Markdown см. в статье GitHub Flavored Markdown
- Создание файла с именем
vss-integration.json
- Этот файл — это файл манифеста в Marketplace, который содержит множество свойств для описания расширения в списке Marketplace. Здесь можно просмотреть ссылку на манифест расширения.
Манифест расширения
vss-integration.json
Заполните файл следующим кодом JSON:{ "manifestVersion": 1, "id": "myservice", "version": "1.0.0", "name": "My Service", "publisher": "mycompany", "description": "Awesome tools to help you and your team do great things everyday.", "targets": [ { "id": "Microsoft.VisualStudio.Services.Integration" } ], "icons": { "default": "images/service-logo.png" }, "categories": [ "Plan and track" ], "tags": [ "working", "people person", "search" ], "screenshots": [ { "path": "images/screen1.png" }, { "path": "images/screen2.png" } ], "content": { "details": { "path": "overview.md" }, "license": { "path": "fabrikam-license-terms.md" } }, "links": { "getstarted": { "uri": "https://www.mycompany.com/help/getstarted" }, "learn": { "uri": "https://www.mycompany.com/features" }, "support": { "uri": "https://www.mycompany.com/support" } }, "branding": { "color": "rgb(34, 34, 34)", "theme": "dark" } }
Обновите JSON с помощью следующей ссылки:
Свойство | Описание | Основание |
---|---|---|
manifestVersion | Число, соответствующее версии формата манифеста. | должен иметь значение 1 . |
ИД | Идентификатор расширения. | Th ID — это строка, которая должна быть уникальной среди расширений одного издателя. Он должен начинаться с алфавитного или числового символа и содержать "A" до "Z", "a" до "z", "0" до "9" и "-" (дефис). Пример: sample-extension . |
version | Строка, указывающая версию расширения. | Должен быть в формате major.minor.patch , например 0.1.2 или 1.0.0 . Вы также можете добавить четвертый номер для следующего формата: 0.1.2.3 |
name | Короткое, доступное для чтения имя расширения. Ограничено 200 символами. | Пример: "Fabrikam Agile Board Extension" . |
publisher | Идентификатор издателя. | Этот идентификатор должен соответствовать идентификатору, в котором публикуется расширение. См. статью "Создание и управление издателем". |
Категории | Массив строк, представляющих категории, к которой принадлежит расширение. Необходимо указать по крайней мере одну категорию и не ограничивать количество категорий, которые могут быть включены. | Допустимые значения: Azure Repos , , Azure Boards Azure Pipelines , Azure Test Plans и Azure Artifacts .Примечания:
— Если вы используете расширение "Задачи расширения " Azure DevOps для публикации, убедитесь, что его версия — >1.2.8. Возможно, потребуется утвердить обновление расширения из-за последних область изменений. — Категории, ранее упоминание, изначально присутствуют в Visual Studio Marketplace и Azure DevOps Server 2019 и выше. Для расширений, предназначенных для более ранних версий TFS:
— Если вы собираетесь предоставить общий доступ к расширению напрямую (то есть не через Visual Studio Marketplace) с клиентом с помощью TFS <=2018, вместо этого используйте следующие категории: код, план и отслеживание, сборка и выпуск, тестирование, совместная работа и интеграция. Если вам нужно предоставить общий доступ как через Visual Studio Marketplace, так и напрямую с клиентом TFS <= 2018, вам потребуется 2 пакета расширений. |
Цели | Продукты и службы, поддерживаемые интеграцией или расширением. Дополнительные сведения см. в разделе целевых объектов установки. | Массив объектов, где каждый объект имеет id поле, указывающее одно из следующих значений:
Microsoft.VisualStudio.Services (расширения, которые работают с Azure DevOps или TFS),Microsoft.TeamFoundation.Server - (расширение, которое работает с TFS),- Microsoft.VisualStudio.Services.Integration (интеграции, которые работают с Azure DevOps или TFS), - Microsoft.TeamFoundation.Server.Integration (интеграции, которые работают с TFS) |
Эти необязательные свойства помогают пользователям обнаруживать и узнать о расширении:
Свойство | Описание | Основание |
---|---|---|
описание | Несколько предложений, описывающих расширения. Ограничено 200 символами. | Описание должно быть вашим расширением "лифт шаг" - пару строк, чтобы описать расширение в Marketplace и сделать людей хотят установить его. См. приведенный ниже пример |
Иконки | Словарь значков, представляющих расширение. | Допустимые ключи: default (128x128 пикселей) типа BMP, GIF, EXIF, JPG, PNG и TIFF. Другие ключи, такие как large (512x512 пикселей), могут поддерживаться в будущем. Значение каждого ключа — путь к файлу значка в расширении |
теги | Массив строковых тегов, помогающие пользователям найти расширение. | Примеры: agile , project management , task timer и т. д. |
Скриншоты | Массив изображений, которые не могут быть включены в содержимое. | Снимки экрана являются более ценными при использовании в вашем контенте и должны использоваться там, чтобы помочь сделать страницу сведений о рынке качества для вашего расширения. Используйте снимки экрана для менее важных изображений, которые не представлены в содержимом. Каждое изображение должно составлять 1366x768 пикселей. Каждый path элемент — это путь к файлу в расширении. |
content | Словарь файлов содержимого, описывающих расширение для пользователей. | Каждое расширение должно содержать твердое содержимое. Вот как вы покажете пользователям, что может сделать расширение. Сделайте его богатым, потребляемым и включите снимки экрана при необходимости. overview.md Включите файл в качестве базового фрагмента содержимого. Предполагается, что каждый файл находится в формате GitHub Flavored Markdown . Каждый path элемент — это путь к файлу Markdown в расширении. Допустимые ключи: details . Другие ключи могут поддерживаться в будущем. |
ссылки | Словарь ссылок, помогающих пользователям узнать больше о расширении, получить поддержку и переместить. | Допустимые ключи: getstarted — первые шаги, как настроить или использовать. learn — более глубокое содержимое, помогающее пользователям лучше понять расширение или службу. license — лицензионное соглашение конечного пользователя. privacypolicy — политика конфиденциальности для расширения. support — получение справки и поддержки расширения. Значение каждого ключа — это объект с uri полем, которое является абсолютным URL-адресом ссылки. |
репозитории | Словарь свойств, описывающих репозиторий исходного кода для расширения | Допустимые ключи: type тип репозитория. Пример: git. uri — абсолютный URL-адрес репозитория. |
Значки | Массив ссылок на значки внешних метаданных, такие как TravisCI, Appveyor и т. д., из утвержденных сайтов индикаторов событий | Допустимые ключи: href — при выборе значка пользователь переходит к ссылке. uri — абсолютный URL-адрес отображаемого изображения значка. description — Описание эмблемы, отображаемой на наведении указателя мыши. |
Брендинг | Словарь свойств, связанных с брендом. | Допустимые ключи: color — основной цвет расширения или издателя; может быть шестнадцатеричным (#ff00ff), RGB (rgb(100 200 50)) или поддерживаемыми именами цветов HTML (синий). theme — дополняет цвет; используйте темные цвета фирменной символики или свет для более светлых цветов фирменной символики. |
Страница сведений
- 1 — описание
- 2 — значок
- 3 — категории
- 4 — снимки экрана
- 5 — содержимое (подробности)
- 6 — ссылки
- 7 — фирменная символика
Упаковка манифеста и ресурсов
Получение средства пакета (tfx-cli)
Вы можете установить или обновить кроссплатформенный интерфейс командной строки для Azure DevOps (tfx-cli) с помощью npm
компонента Node.js из командной строки.
npm i -g tfx-cli
Упаковка интеграции в VSIX-файле
tfx extension create --manifest-globs vss-extension.json
Примечание.
При каждом обновлении необходимо увеличить версию расширения или интеграции.
Если вы не добавили расширение или интеграцию в манифесте, передайте переключатель командной --rev-version
строки. Это увеличивает номер версии исправления расширения и сохраняет новую версию в манифесте.
Публикация интеграции в Marketplace
После упаковки расширения его можно отправить в Marketplace под издателем. Идентификатор publisher
, указанный в файле манифеста расширения, должен соответствовать идентификатору издателя, в котором отправляется расширение.
На портале управления выберите издателя в раскрывающемся меню в верхней части страницы.
Выберите новое расширение>Azure DevOps.
Перетащите файл или выберите его, чтобы найти файл VSIX, созданный на предыдущем шаге упаковки, а затем нажмите кнопку "Отправить".
После быстрой проверки расширение появится в списке опубликованных расширений. Не беспокойтесь, расширение видно только вам.
На этом этапе расширение не отображается для учетных записей и не может быть установлено до тех пор, пока вы не поделились им.
Примечание.
Корпорация Майкрософт выполняет проверку вирусов на каждом новом и обновленном пакете расширения, опубликованном. Пока проверка не будет ясно, мы не публикуем расширение в Marketplace для общедоступного использования. Таким образом, мы также избегаем неуместных или оскорбительных содержимого на страницах Marketplace.
Общий доступ к интеграции
Прежде чем установить интеграцию с организацией в Azure DevOps или TFS, необходимо поделиться ею с этой организацией. Общий доступ — это требование во время разработки и тестирования интеграции, так как это единственный способ выполнения интеграции.
Чтобы предоставить общий доступ к интеграции, выполните следующие задачи:
- Выбор интеграции из списка отображаемых элементов
- Нажмите кнопку "Общий доступ"
- Укажите имя организации, чтобы сделать эту интеграцию видимой.
- Например, чтобы сделать интеграцию видимой для организации dev.azure.com/fabrikam-fiber-inc , укажите
fabrikam-fiber-inc
.
- Например, чтобы сделать интеграцию видимой для организации dev.azure.com/fabrikam-fiber-inc , укажите
Обновление элемента
Чтобы изменить уже опубликованное расширение, обновите его.
Совет
Рекомендуется обновить расширение при удалении и повторной отправке. Мы также рекомендуем использовать два расширения, напримерpublisher.extension
.publisher.extension-dev
Publisher.extension
является общедоступным в Marketplace, где клиенты могут установить его в своих организациях Azure DevOps. Publisher.extension-dev
хранится в закрытом режиме в Marketplace и может быть предоставлен общий доступ к организации, которой вы владеете и управляете.
Вам не нужно поддерживать две копии исходного кода расширения. Вы можете поддерживать два файла манифеста — по одному для каждого расширения и во время упаковки расширения можно предоставить соответствующий файл манифеста средству tfx-cli. Дополнительные сведения о аргументах, необходимых для средства, см. в командах расширения TFX.
- Выберите расширение из списка отображаемых элементов.
- Щелкните правой кнопкой мыши и выберите пункт "Обновить " для
publisher.extension-dev
примера. - Проверьте расширение.
- Например,
publisher.extension
внесите те же обновления в рабочую версию. - Перейдите к VSIX для расширения и отправьте его.
Обновленная версия расширения автоматически устанавливается в учетные записи, которые уже установлены. Новые учетные записи, в которых расширение установлено в будущем, также получают последнюю версию.
Сделать интеграцию общедоступной (видимой для всех)
Сведения о том, как сделать интеграцию общедоступной, см. в разделе "Сделать список общедоступным".