Partilhar via


Empacotar e publicar uma integração com o Marketplace

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Você tem uma ferramenta, serviço ou produto que se integra ao Azure DevOps ou ao Team Foundation Server (TFS)? Em caso afirmativo, ajude os usuários a encontrá-lo publicando-o no Visual Studio Marketplace. O Marketplace é um balcão único para indivíduos e equipas encontrarem ferramentas que ampliem e melhorem a experiência.

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

Nota

Se você estiver procurando empacotamento e publicação de informações para extensões, confira Pacote & Publicar extensões.

Requisitos de publicação

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

  • Instale a ferramenta de empacotamento de extensão (TFX). Execute npm install -g tfx-cli a partir de um prompt de comando.
  • Certifique-se de que as permissões adequadas são concedidas para usar quaisquer imagens, por exemplo, ícones, logotipos, capturas de tela e assim por diante.
  • Inclua um ficheiro completo overview.md para descrever o seu anúncio no Marketplace.
  • Inclua um ícone para sua extensão, que tem pelo menos 128x128 pixels de tamanho.
  • Quando você se refere a produtos da Microsoft, use nomes completos no lugar de abreviaturas, por exemplo, Azure DevOps vs. AzDO ou - qualquer outra abreviação.
  • Abster-se de usar nomes de marcas no nome da sua extensão.

Do que precisa

  1. Logótipo de 128x128 píxeis (formato PNG ou JPEG) que representa a sua integração, você próprio ou a sua empresa/organização
  2. Mínimo de uma captura de tela mostrando sua integração
  3. Call to action / URL de introdução (onde os usuários devem ir para começar a sua integração)

Passos

A publicação no Marketplace é um processo iterativo que começa com a criação de um arquivo de manifesto que define sua integração e as principais características de descoberta (como capturas de tela, logotipos e conteúdo de visão geral). Estas informações são utilizadas para apresentar a sua integração aos utilizadores no Marketplace, por exemplo:

exemplo

Jenkins para Azure DevOps

Nota: O termo, extension, é usado nas documentações mencionadas abaixo. As extensões são outro tipo de item do Marketplace e compartilham muitas semelhanças do ponto de vista da descoberta como integrações.

Precisa de ajuda para obter a sua integração no Marketplace? Contacte-nos. E, sim, esse endereço de e-mail é monitorado por pessoas reais.

Criar um editor

Todas as extensões e integrações, incluindo extensões da Microsoft, têm um editor. Qualquer pessoa pode criar um editor e publicar extensões sob ele. Você também pode dar a outras pessoas acesso ao seu editor se uma equipe estiver desenvolvendo a extensão.

Um usuário é o proprietário do editor, normalmente o usuário que o criou. Você também pode compartilhar o editor com outros usuários.

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

  2. Se ainda não for membro de um editor existente, + Criar um editor. Insira um nome no campo Nome do editor. O campo ID deve ser definido automaticamente com base no nome que você inseriu.

    Captura de ecrã a mostrar o botão realçado, Criar editor.

    Nota

    Anote o ID, pois você precisa defini-lo no arquivo de manifesto da sua extensão.

    Se você não for solicitado a criar um editor, role para baixo até a parte inferior da página e selecione Publicar extensões abaixo de Sites relacionados.

    • Especifique um identificador para o editor, por exemplo: mycompany-myteam. Esse identificador é usado como o valor para o atributo em seu arquivo de manifesto publisher de extensão.
    • Especifique um nome para exibição para seu editor, por exemplo: My Team
  3. Reveja o Contrato de Editor do Marketplace e, em seguida, selecione Criar.

    Criar editor para extensão

Depois que o editor é criado, você é direcionado para gerenciar itens, mas não há itens.

Criar uma pasta para conter o manifesto do item e outros ativos

Antes de empacotar sua integração como uma extensão, você precisará criar uma home pasta para conter alguns ativos necessários, dentro desta pasta:

  1. Crie uma pasta chamada images para conter:
    • Logótipo para a sua integração (128x128 pixels)
    • Imagens (1366x768 pixels)
  2. Criar um arquivo chamado overview.md
  3. Criar um arquivo chamado vss-integration.json
    • Este ficheiro é o ficheiro de manifesto do seu anúncio do Marketplace, contém muitas propriedades para descrever a sua extensão no seu anúncio do Marketplace. Você pode navegar pela referência do manifesto de extensão aqui

Manifesto de extensão

  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 a seguinte referência:

Estas propriedades são necessárias:

Property Description Notas
manifestVersion Um número correspondente à versão do formato de manifesto. deverá ser 1.
ID O identificador da extensão. Th ID é uma cadeia de caracteres que deve ser exclusiva entre extensões do mesmo editor. 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 especificando 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
Designação Um nome curto e legível por humanos da extensão. Limitado a 200 caracteres. Exemplo: "Fabrikam Agile Board Extension".
editora O identificador do editor. Este 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 Plans, e Azure Artifacts.

Notas:
    - 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 Tarefas de Extensão do Azure DevOps para publicar, verifique se sua versão é >= 1.2.8. Talvez seja necessário aprovar a atualização da extensão devido a alterações recentes no escopo.
    - As categorias mencionadas anteriormente estão nativamente presentes no Visual Studio Marketplace e no Azure DevOps Server 2019 & acima. Para extensões direcionadas a versões anteriores do TFS:
      - Se os clientes do TFS adquirirem sua extensão por meio do Visual Studio Marketplace (não da galeria local) em contexto conectado, use as categorias declaradas anteriormente.
      - Se você vai compartilhar a extensão diretamente (ou seja, não por meio do Visual Studio Marketplace) com um cliente usando TFS <= 2018, use as seguintes categorias: Código, Planejar e rastrear, Compilar e liberar, Testar, Colaborar e Integrar. Se você precisar compartilhar ambos via Visual Studio Marketplace e diretamente com um cliente TFS <= 2018, precisará ter 2 pacotes de extensão.
Objetivos Os produtos e serviços suportados pela sua integração ou extensão. Para obter mais informações, consulte destinos de instalação. Uma matriz de objetos, onde cada objeto tem um id campo que indica um dos seguintes:
    - Microsoft.VisualStudio.Services(extensões que funcionam com o Azure DevOps ou TFS),
    Microsoft.TeamFoundation.Server- (extensão que funciona com o TFS),- Microsoft.VisualStudio.Services.Integration
    (integrações que funcionam com o Azure DevOps ou TFS),
    - Microsoft.TeamFoundation.Server.Integration (integrações que funcionam com o TFS)

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

Property Description Notas
descrição Algumas frases descrevendo as extensões. Limitado a 200 caracteres. A descrição deve ser o "elevator pitch" da sua extensão - algumas linhas para descrever a 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
etiquetas Matriz de tags de cadeia de caracteres para ajudar os usuários a encontrar sua extensão. Exemplos: agile, project management, task timer, e assim por diante.
Imagens Matriz de imagens que não puderam ser incluídas no 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 que não aparecem no 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. Toda 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. Presume-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 suportadas no futuro.
ligações 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 utilizador final. privacypolicy - Política de privacidade para uma extensão. support - obter 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.
crachás Matriz de links para emblemas de metadados externos, como TravisCI, Appveyor e assim por diante, dos sites de selos aprovados Chaves válidas: href - Link ao qual o usuário navega ao selecionar o selo. uri - O URL absoluto da imagem do selo a ser exibido. description - Descrição do crachá, a ser exibido no pairar.
Criação de Marcas Dicionário de propriedades relacionadas com a 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.

Página Detalhes

  • 1 - Descrição
  • 2 - ícone
  • 3 - categorias
  • 4 - Imagens
  • 5 - conteúdo (detalhes)
  • 6 - Ligações
  • 7 - Branding

cartão

Certifique-se de que o atributo "public" seja definido como "false" (ou não esteja definido) para evitar que sua extensão ou integração se torne prematuramente visível para todos os usuários no Marketplace.

Empacote seu manifesto e ativos

Obter a ferramenta de pacote (tfx-cli)

Você pode instalar ou atualizar a CLI de plataforma cruzada para DevOps do Azure (tfx-cli) usando npmo , um componente do Node.js, na sua linha de comando.

npm i -g tfx-cli

Empacote sua integração em um arquivo .vsix

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

Nota

A versão de uma extensão/integração deve ser incrementada em cada atualização.
Se você não tiver incrementado sua extensão/integração no manifesto, deverá passar a opção de linha de --rev-version comando. Isso incrementa o número da versão do patch da sua extensão e salva a nova versão no seu manifesto.

Publique sua integração no Marketplace

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

  1. No portal de gerenciamento, selecione seu editor no menu suspenso na parte superior da página.

  2. Selecione Nova extensão>Azure DevOps.

    Captura de ecrã a mostrar o menu pendente Nova extensão e a seleção de DevOps do Azure realçada.

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

    Captura de ecrã a mostrar o Carregamento 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ó é 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 e não pode ser instalada até que você a compartilhe.

Nota

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 publicamos a extensão no Marketplace para uso público. Desta forma, também evitamos o aparecimento de conteúdo impróprio ou ofensivo nas páginas do Marketplace.

Partilhe a sua integração

Antes de instalar uma integração em uma organização no Azure DevOps ou TFS, você deve compartilhá-la com essa organização. O compartilhamento é um requisito durante o desenvolvimento e teste de uma integração, pois é a única maneira de executar uma integração.

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

  1. Selecione 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 para a organização dev.azure.com/fabrikam-fiber-inc , especifique fabrikam-fiber-inc.

Atualizar um item

Para alterar uma extensão já publicada, atualize-a.

Gorjeta

Recomendamos atualizar a extensão ao remover e recarregar. Também recomendamos ter duas extensões, por exemplo, publisher.extension e publisher.extension-dev. Publisher.extension é público no Marketplace, onde os clientes podem instalá-lo em suas organizações de DevOps do Azure. Publisher.extension-dev é mantido privado no Marketplace e pode ser compartilhado com uma organização que você possui e controla. Não é necessário manter duas cópias do código-fonte da extensão. Você pode manter dois arquivos de manifesto - um para cada extensão e durante o empacotamento da extensão você pode fornecer o respetivo arquivo de manifesto para a ferramenta tfx-cli. Para obter mais informações sobre os argumentos necessários para a ferramenta, consulte Comandos de extensão TFX.

  1. Selecione uma extensão na lista de itens exibidos.
  2. Clique com o botão direito do mouse e selecione Atualizar para o publisher.extension-dev, por exemplo.
  3. Valide a sua extensão.
  4. Faça as mesmas atualizações para a versão de produção, publisher.extensionpor exemplo.
  5. Navegue até o .vsix para sua extensão e carregue-a.

A versão atualizada da sua extensão é instalada automaticamente nas contas que já a têm instalada. Novas contas onde a extensão é instalada no futuro também recebem a versão mais recente.

Torne a sua integração pública (visível para todos)

Para obter informações sobre como tornar a sua integração pública, visite Tornar o seu anúncio público.