Compartilhar via


Empacotar e publicar uma integração ao Marketplace

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Este artigo explica como publicar sua ferramenta, serviço ou produto que se integra ao Azure DevOps no Visual Studio Marketplace. A publicação no Marketplace ajuda os usuários a descobrir soluções que estendem e aprimoram sua experiência no Azure DevOps. O Marketplace serve como o hub central para indivíduos e equipes encontrarem integrações e extensões.

Navegue pelo Marketplace para ver exemplos de outras integrações e extensões.

Observação

Para obter informações de empacotamento e publicação para extensões, consulte Package &Publish Extensions.

Pré-requisitos

A lista de requisitos a seguir deve ser atendida antes de publicar no Marketplace.

Categoria Requisitos
Ferramenta de empacotamento Instale a ferramenta de empacotamento de extensão (TFX). Execute npm install -g tfx-cli em um prompt de comando.
Permissões de imagem Verifique se você tem permissões adequadas para usar qualquer imagem, como ícones, logotipos, capturas de tela e assim por diante.
Visão geral do Marketplace Inclua um arquivo completo overview.md para descrever sua listagem no Marketplace.
Ícone de extensão Inclua um ícone para sua extensão que representa sua integração, empresa ou organização, pelo menos 128 x 128 pixels de tamanho (PNG ou JPEG).
Nomes de produtos da Microsoft Use nomes completos para produtos da Microsoft (por exemplo, Azure DevOps em vez de AzDO ou outras abreviações).
Nomes de marcas Não use nomes de marca no nome da sua extensão.

Coletar ativos necessários

  • Pelo menos uma captura de tela da sua integração.
  • URL de chamada para ação ou introdução para usuários.

Observação

  • O termo extension é usado na documentação referenciada. As extensões são outro tipo de item do Marketplace e compartilham muitas semelhanças com integrações.
  • Precisa de ajuda para obter sua integração no Marketplace? Entre em contato conosco.

Criar uma conta do publicador

Cada extensão ou integração, incluindo as da Microsoft, deve ter um publicador. Qualquer pessoa pode criar um editor e publicar extensões sob ele. Você também pode compartilhar o acesso do editor com outros usuários, como sua equipe de desenvolvimento.

  1. Entre no Portal de Publicação do Visual Studio Marketplace.

  2. Se você não fizer parte de um publicador existente, selecione + Criar um editor.
    Insira um nome de editora; o campo de ID será preenchido automaticamente com base na sua entrada.

    Captura de tela mostrando o botão realçado, Criar publicador.

    Observação

    • Certifique-se de que o nome do editor não ultrapasse 16 caracteres no caso de caracteres multibyte.
    • Salve a ID do editor– você precisa dela no arquivo de manifesto da extensão.

    Se você não for solicitado a criar um publicador, role até Publicar extensões em sites relacionados.

    • Defina um identificador de editor exclusivo, como mycompany-myteam. Use esse valor para o publisher atributo em seu manifesto.
    • Defina um nome de exibição, como My Team.
  3. Examine o Contrato do Marketplace Publisher e, em seguida, selecione Criar.

    Criar editor para extensão

Depois de criar o editor, você pode gerenciar itens, embora nenhum item apareça até que você publique.

Organize seu manifesto e ativos

Para organizar seu manifesto e ativos, execute as seguintes etapas:

  1. Crie uma home pasta para armazenar os ativos necessários.
  2. Crie uma images pasta para:
    • Seu logotipo de integração (128 x 128 pixels)
    • Capturas de tela (1366 x 768 pixels)
  3. Crie um overview.md arquivo para descrever sua integração. Para obter mais informações, consulte GitHub Flavored Markdown.
  4. Crie o arquivo vss-integration.json, que é o arquivo manifesto da sua listagem no Marketplace. Para obter mais informações, consulte a referência do manifesto da extensão.

Completar o manifesto da extensão

A publicação no Marketplace começa com a criação de um arquivo de manifesto que define sua integração e seus principais detalhes de descoberta (capturas de tela, logotipos, conteúdo de visão geral). Essas informações são usadas para apresentar sua integração aos usuários no Marketplace.

  1. Preencha seu vss-integration.json arquivo com o seguinte 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"
        }
    }
    
  2. Atualize o JSON usando as seguintes referências:

As seguintes propriedades são necessárias:

Propriedade Descrição Anotações
manifestVersion Um número correspondente à versão do formato do manifesto. Deve ser 1.
ID O identificador da extensão. A ID é uma cadeia de caracteres que deve ser exclusiva entre extensões do mesmo editor. Ele deve começar com um caractere alfabético ou numérico e conter 'A' a 'Z', 'a' a 'z', '0' a '9' e '-' (hífen). Exemplo: sample-extension.
versão Uma cadeia de caracteres que especifica a versão de uma extensão. Deve estar no formato major.minor.patch, por exemplo 0.1.2 , ou 1.0.0. Você também pode adicionar um quarto número para o seguinte formato: 0.1.2.3
nome Um nome curto e legível da extensão. Limitado a 200 caracteres. Exemplo: "Fabrikam Agile Board Extension".
Publicador O identificador do publicador. Esse identificador deve corresponder ao identificador sob o qual a extensão é publicada. Consulte Criar e gerenciar um editor.
Categorias Matriz de cadeias de caracteres que representam as categorias às quais sua extensão pertence. Pelo menos uma categoria deve ser fornecida e não há limite para quantas categorias você pode incluir. Valores válidos: Azure Repos, Azure Boards, Azure Pipelines, Azure Test Planse Azure Artifacts.

Observações:
    - Use a versão >=0.6.3 do tfx-cli se você estiver publicando a extensão programaticamente.
    - Se você estiver usando a extensão Azure DevOps Extension Tasks para publicar, verifique se sua versão é >= 1.2.8. Talvez seja necessário aprovar a atualização de extensão devido a alterações de escopo recentes.
    - As categorias mencionadas anteriormente estão nativamente presentes no Visual Studio Marketplace e no Azure DevOps Server 2019 & acima.
Alvos Os produtos e serviços suportados por sua integração ou extensão. Para obter mais informações, consulte destinos de instalação. Uma matriz de objetos, em que cada objeto tem um id campo indicando um dos seguintes:
    - Microsoft.VisualStudio.Services(extensões que funcionam com o Azure DevOps),
    - Microsoft.TeamFoundation.Server (extensão que funciona com o Azure DevOps Server)
    - Microsoft.VisualStudio.Services.Integration
    - Microsoft.TeamFoundation.Server.Integration (integrações que funcionam com o Azure DevOps Server)

As seguintes propriedades opcionais ajudam os usuários a descobrir e aprender sobre sua extensão:

Propriedade Descrição Anotações
descrição Algumas frases descrevendo as extensões. Limitado a 200 caracteres. A descrição deve ser a "apresentação de elevador" da sua extensão – algumas linhas para descrever sua extensão no Marketplace e fazer com que as pessoas queiram instalá-la. Veja o exemplo abaixo
Ícones Dicionário de ícones que representam a extensão. Chaves válidas: default (128x128 pixels) do tipo BMP, GIF, EXIF, JPG, PNG e TIFF). Outras chaves, como large (512x512 pixels), podem ser suportadas no futuro. O valor de cada chave é o caminho para o arquivo de ícone na extensão
Tags Matriz de tags de string para ajudar os usuários a encontrar sua extensão. Exemplos: agile, project management, task timere assim por diante.
Capturas de tela Matriz de imagens que não puderam ser incluídas em seu conteúdo. As capturas de tela são mais valiosas quando apresentadas em seu conteúdo e devem ser usadas para ajudar a criar uma página de detalhes de mercado de qualidade para sua extensão. Use capturas de tela para imagens menos importantes não apresentadas em seu conteúdo. Cada imagem deve ter 1366x768 pixels. O path de cada item é o caminho para o arquivo na extensão.
conteúdo Dicionário de arquivos de conteúdo que descrevem sua extensão para os usuários. Cada extensão deve incluir conteúdo sólido. É assim que você mostrará aos usuários o que sua extensão pode fazer. Torne-o rico, consumível e inclua capturas de tela quando necessário. Inclua um overview.md arquivo como sua parte de conteúdo base. Supõe-se que cada arquivo esteja no formato GitHub Flavored Markdown . O path de cada item é o caminho para o arquivo Markdown na extensão. Chaves válidas: details. Outras chaves podem ser compatíveis no futuro.
Links Dicionário de links que ajudam os usuários a saber mais sobre sua extensão, obter suporte e mover. Chaves válidas: getstarted - primeiros passos, como configurar ou usar. learn - Conteúdo mais profundo para ajudar os usuários a entender melhor sua extensão ou serviço. license - Contrato de licença de usuário final. privacypolicy - Política de privacidade para uma extensão. support - Obtenha ajuda e suporte para uma extensão. O valor de cada chave é um objeto com um uri campo, que é a URL absoluta do link
repositório Dicionário de propriedades que descrevem o repositório de código-fonte para a extensão Chaves válidas: type - Tipo de repositório. Exemplo: git. uri - URL absoluta do repositório.
Emblemas Matriz de links para selos de metadados externos, como TravisCI, Appveyor e assim por diante, nos sites de selos aprovados Chaves válidas: href - Link para o qual o usuário navega ao selecionar o distintivo. uri - O URL absoluto da imagem do selo a ser exibida. description – Descrição do selo, que é exibida ao passar o mouse.
Marca Dicionário de propriedades relacionadas à marca. Chaves válidas: color - cor primária da extensão ou editor; pode ser um hexadecimal (#ff00ff), RGB (rgb(100,200,50)) ou nomes de cores HTML suportados (azul). theme - complementa a cor; use escuro para cores de marca escuras ou claro para cores de marca mais claras.

Entender a página de detalhes

  • 1 - Descrição
  • 2 - ícone
  • 3 - Categorias
  • 4 - capturas de tela
  • 5 - Conteúdo (detalhes)
  • 6 – links
  • 7 - Branding

A captura de tela mostra o cartão de detalhes da extensão no Visual Studio Marketplace.

Aviso

Defina o public atributo como false ou omita-o para impedir que sua integração fique visível para todos os usuários do Marketplace antes que você esteja pronto.

Empacotar seu manifesto e ativos

Instalar a ferramenta de pacote (tfx-cli)

Instale ou atualize a CLI multiplataforma do Azure DevOps (tfx-cli) usando npm:

npm i -g tfx-cli

Empacotar sua integração em um arquivo .vsix

tfx extension create --manifest-globs vss-extension.json

Observação

Incremente a versão da sua extensão ou integração a cada atualização.
Se você ainda não atualizou a versão em seu manifesto, use a opção --rev-version de linha de comando. Essa opção incrementa automaticamente o número da versão do patch e salva a nova versão no manifesto.

Publicar sua integração ao Marketplace

Depois que a extensão for empacotada, você poderá enviá-la ao Marketplace sob um publicador. O publisher identificador especificado no arquivo de manifesto da extensão deve corresponder ao identificador do publicador no qual a extensão é carregada.

  1. No portal de gerenciamento, selecione seu editor no menu suspenso localizado no topo da página.

  2. Selecione Nova extensão>Azure DevOps.

    Captura de tela mostrando o menu suspenso Nova extensão e a seleção realçada do Azure DevOps.

  3. Arraste e solte o arquivo ou selecione-o para localizar o arquivo VSIX, que você criou na etapa de empacotamento anterior e escolha Carregar.

    Captura de tela mostrando o upload da nova extensão para o Azure DevOps.

    Após a validação rápida, sua extensão aparece na lista de extensões publicadas. Não se preocupe, a extensão só está visível para você.

    Captura de tela mostrando a extensão na lista de extensões publicadas.

Neste ponto, sua extensão não está visível para nenhuma conta. Para torná-la visível para outras pessoas, você precisa compartilhar a extensão.

Observação

A Microsoft executa uma verificação de vírus em cada pacote de extensão novo e atualizado publicado. Até que a verificação esteja clara, não publicaremos a extensão no Marketplace para uso público. Dessa forma, também evitamos exibir conteúdo inadequado ou ofensivo nas páginas do Marketplace.

Compartilhe a sua integração

Antes de instalar uma integração em uma organização do Azure DevOps, compartilhe-a com essa organização. O compartilhamento é necessário para desenvolvimento e teste, pois é a única maneira de executar uma integração durante esses estágios.

Para compartilhar uma integração, execute as seguintes etapas:

  1. Selecionar uma integração na lista de itens exibidos
  2. Selecione o botão Compartilhar
  3. Especifique o nome da organização para tornar essa integração visível. Por exemplo, para tornar uma integração visível à organização dev.azure.com/fabrikam-fiber-inc , especifique fabrikam-fiber-inc.

Atualizar um item

Para atualizar uma extensão que você já publicou, execute as seguintes etapas:

Dica

Atualize sua extensão em vez de removê-la e recarregá-la. É recomendável manter duas extensões: publisher.extensionpública no Marketplace para clientes e publisher.extension-dev, privada, compartilhada apenas com sua organização para desenvolvimento e teste. Você não precisa de duas cópias do código-fonte, apenas manter arquivos de manifesto separados para cada extensão. Durante o processo de empacotamento, forneça o arquivo de manifesto apropriado para o utilitário tfx-cli. Para obter mais informações, consulte os comandos de extensão TFX.

  1. Selecione sua extensão na lista de itens exibidos.
  2. Clique com o botão direito do mouse e selecione Atualizar para a versão de desenvolvimento, como publisher.extension-dev.
  3. Valide sua extensão.
  4. Aplique as mesmas atualizações à versão de produção, como publisher.extension.
  5. Navegue até o arquivo .vsix para sua extensão e faça o upload.

O Azure DevOps instala automaticamente a versão atualizada para todas as contas que já têm a extensão. As novas instalações também recebem a versão mais recente.

Tornar sua integração pública

Para obter informações sobre como tornar sua integração visível a todos, consulte Tornar sua listagem pública.