Condividi tramite


Riferimento al manifesto dell'estensione

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Ogni estensione ha un file manifesto JSON che definisce le informazioni di base sull'estensione. Il file definisce anche come può estendere e migliorare l'esperienza. Questo articolo illustra come creare un manifesto per l'estensione in Azure DevOps.

Suggerimento

Vedere la documentazione più recente sullo sviluppo di estensioni con Azure DevOps Extension SDK.

Creare un file denominato vss-extension.json nella radice della cartella dell'estensione. Questo file contiene attributi obbligatori, ad esempio l'ID dell'estensione e le destinazioni di installazione, in cui può essere eseguito. I contributi apportati dalla tua estensione vengono anche definiti.

Vedere l'esempio seguente di un manifesto tipico:

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "categories": [
        "Azure Boards"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "content": {
        "details": {
            "path": "readme.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ],
    "files": [
        {
            "path": "launch.html",
            "addressable": true
        },        
        {
            "path": "node_modules/vss-web-extension-sdk/lib",
            "addressable": true,
            "packagePath": "lib"
        }
    ]
}

Per informazioni sugli input, vedere ...

Attributi obbligatori

Sono necessarie le proprietà seguenti:

Proprietà Descrizione Note
manifestVersion Numero corrispondente alla versione del formato manifesto. deve essere 1.
ID Identificatore dell'estensione. L'ID è una stringa che deve essere univoca tra le estensioni dello stesso editore. Deve iniziare con un carattere alfabetico o numerico e contenere 'A' fino a 'Z', 'a' da 'z', '0' a '9' e '-' (trattino). Esempio: sample-extension.
versione Stringa che specifica la versione di un'estensione. Deve essere nel formato major.minor.patch, ad esempio 0.1.2 o 1.0.0. È anche possibile aggiungere un quarto numero per il formato seguente: 0.1.2.3
nome Nome breve e leggibile dell'estensione. Massimo 200 caratteri. Esempio: "Fabrikam Agile Board Extension".
editore Identificatore dell'editore. Questo identificatore deve corrispondere all'identificatore in cui viene pubblicata l'estensione. Vedere Creare e gestire un server di pubblicazione.
Categorie Matrice di stringhe che rappresentano le categorie a cui appartiene l'estensione. È necessario specificare almeno una categoria e non è previsto alcun limite al numero di categorie che è possibile includere. Valori validi: Azure Repos, Azure Boards, Azure PipelinesAzure Test Plans, e Azure Artifacts.

Note:
    - Usare la versione >=0.6.3 di tfx-cli se si pubblica l'estensione a livello di codice.
    - Se si usa l'estensione Azure DevOps Extension Tasks per pubblicare, assicurarsi che la versione sia >= 1.2.8. Potrebbe essere necessario approvare l'aggiornamento dell'estensione a causa di modifiche recenti dell'ambito.
    : le categorie indicate in precedenza sono presenti in modo nativo in Visual Studio Marketplace e azure DevOps Server 2019 & precedenti.
Obiettivi Prodotti e servizi supportati dall'integrazione o dall'estensione. Per altre informazioni, vedere Destinazioni di installazione. Matrice di oggetti, in cui ogni oggetto ha un id campo che indica uno dei seguenti:
    - Microsoft.VisualStudio.Services (estensioni che funzionano con Azure DevOps),
    - Microsoft.TeamFoundation.Server (estensione che funziona con Azure DevOps Server),
    - Microsoft.VisualStudio.Services.Integration,
    - Microsoft.TeamFoundation.Server.Integration (integrazioni che funzionano con Azure DevOps Server)

Esempi di attributi obbligatori

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Attributi facoltativi

Attributi di runtime

Proprietà Descrizione Note
Ambiti Matrice di ambiti di autorizzazione (stringhe) che elencano le autorizzazioni richieste dall'estensione. Ad esempio, vso.work e vs.code_write indica che l'estensione richiede l'accesso in sola lettura agli elementi di lavoro e l'accesso in lettura/scrittura al codice sorgente (e alla risorsa correlata). Gli ambiti vengono presentati all'utente durante l'installazione dell'estensione. Per altre informazioni, vedere l'elenco completo degli ambiti.
Richieste Matrice di richieste (stringhe) che elenca le funzionalità richieste dall'estensione. Ad esempio, api-version/3.0 indica che l'estensione usa le API versione 3.0 e quindi non può essere eseguita in prodotti meno recenti che non supportano questa versione. Per altre informazioni, vedere l'elenco completo delle richieste.
baseUri (Facoltativo) URL di base per tutti gli URL relativi specificati dai contributi dell'estensione. Ad esempio: https://myapp.com/{{account.name}}/. Questa proprietà deve essere lasciata vuota se il contenuto dell'estensione è integrato nella tua estensione.
Contributi Matrice di contributi al sistema.
tipologieDiContributo Matrice di tipi di contributo definiti dall'estensione
{
    "scopes": [
        "vso.work",
        "vso.code_write",
        "vso.build_execute"
    ],
    "demands": [
        "api-version/3.0"
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}

Attributi di individuazione

Le proprietà facoltative seguenti consentono agli utenti di individuare e ottenere informazioni sull'estensione:

Proprietà Descrizione Note
descrizione Alcune frasi che descrivono le estensioni. Massimo 200 caratteri. La descrizione deve essere la "presentazione lampo" dell'estensione: un paio di righe per descrivere l'estensione nel Marketplace e far sì che gli utenti vogliano installarla. Vedere l'esempio seguente
Icone Dizionario di icone che rappresentano l'estensione. Chiavi valide: default (128x128 pixel) di tipo BMP, GIF, EXIF, JPG, PNG e TIFF. Altre chiavi, large ad esempio (512x512 pixel) potrebbero essere supportate in futuro. Il valore di ogni chiave è il percorso del file icona nell'estensione
Etichette Array di tags di stringhe per aiutare gli utenti a trovare la tua estensione. Esempi: agile, project management, task timere così via.
screenshot Collezione di immagini che non sono state incluse nel contenuto. Gli screenshot sono più utili quando sono presenti nel contenuto e devono essere usati per creare una pagina dei dettagli di mercato di qualità per l'estensione. Usare screenshot per immagini meno importanti non presenti nel contenuto. Ogni immagine deve essere di 1366x768 pixel. Il path di ciascun elemento è il percorso del file nell'estensione.
contenuto Dizionario di file di contenuto che descrivono l'estensione per gli utenti. Ogni estensione deve includere contenuto solido. Questo è il modo in cui mostrerai agli utenti cosa può fare l'estensione. Renderlo ricco, utilizzabile e includere screenshot dove necessario. Includere un overview.md file come parte del contenuto di base. Si presuppone che ogni file sia in formato GitHub Flavored Markdown . L'elemento path di ogni oggetto è il percorso del file Markdown nell'estensione. Chiavi valide: details. Altre chiavi potrebbero essere supportate in futuro.
collegamenti Dizionario di collegamenti che consentono agli utenti di ottenere altre informazioni sull'estensione, ottenere supporto e spostare. Chiavi valide: getstarted - primi passaggi, come configurare o usare. learn - Contenuto più approfondito per aiutare gli utenti a comprendere meglio l'estensione o il servizio. license - Contratto di licenza per l'utente finale. privacypolicy - informativa sulla privacy per un'estensione. support : ottenere assistenza e supporto per un'estensione. Il valore di ogni chiave è un oggetto con un uri campo, ovvero l'URL assoluto del collegamento
deposito Dizionario delle proprietà che descrivono il repository del codice sorgente per l'estensione Chiavi valide: type - Tipo di repository. Esempio: git. uri - URL assoluto del repository.
Distintivi Elenco di collegamenti a badge di metadati esterni come TravisCI, Appveyor e così via, dai siti di badge approvati Chiavi valide: href - Il link a cui l'utente viene indirizzato quando seleziona il badge. uri - L'URL assoluto dell'immagine del badge da visualizzare. description - Descrizione del badge da visualizzare al passaggio del mouse.
Branding Dizionario delle proprietà correlate al marchio. Chiavi valide: color - colore principale dell'estensione o del server di pubblicazione; può essere un esadecimale (#ff00ff), RGB (rgb(100,200,50)) o nomi di colori HTML supportati (blu). theme - integra il colore; utilizzare scuro per colori di personalizzazione scuri o chiaro per colori di personalizzazione più chiari.

Contrassegnare un'estensione come pubblica

Per impostazione predefinita, tutte le estensioni in Azure DevOps Marketplace sono private. Sono nascosti dalla visualizzazione pubblica e sono visibili solo all'editore e a specifici account condivisi dall'editore. Se il tuo publisher è verificato, puoi rendere pubblica l'estensione impostando il flag Public nel manifesto dell'estensione.

{
    "galleryFlags": [
        "Public"
    ]
}            

O:

{
    "public": true
}            

Per altre informazioni, vedere Package/Publish/Install.

Contrassegnare un'estensione da visualizzare in anteprima

Se l'estensione è pronta per gli utenti nel Marketplace per provare, ma si stanno ancora lavorando alcuni bug o aggiungendo una funzione, è possibile contrassegnarla come preview:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Contrassegnare un'estensione come anteprima a pagamento

Se si intende vendere l'estensione nel Marketplace, contrassegnarla come anteprima a pagamento. Non è possibile modificare un'estensione contrassegnata come gratuita in pagamento.

{
    "galleryFlags": [
        "Paid",
        "Preview"
    ]
}            

Segna un'estensione come a pagamento

Se vuoi vendere la tua estensione sul Marketplace, puoi contrassegnarla con il flag Paid e il tag __BYOLENFORCED (che inizia con due caratteri di sottolineatura):

{
    "galleryFlags": [
        "Paid"        
    ],
     "tags": [        
        "__BYOLENFORCED"
    ]
}            

Sia il Paid flag che il __BYOLENFORCED tag devono essere presenti per contrassegnare un'estensione come a pagamento nel Marketplace. Bring-Your-Own-License (BYOL) indica che l'editore dell'estensione fornisce il meccanismo di fatturazione e licenza per l'estensione, perché non viene fornito dalle estensioni Microsoft per Azure DevOps. Tutte le estensioni a pagamento sono necessarie per definire l'informativa sulla privacy, i criteri di supporto e un contratto di licenza per l'utente finale. I server di pubblicazione devono fornire contenuto per la scheda prezzi in Marketplace come indicato di seguito:

{
    "content": {
        "details": {
            "path": "overview.md"
        }, 
        "pricing": {
            "path": "pricing.md"
        }
    }
}          

È anche necessario aggiungere una nuova sezione nel manifesto dell'estensione per eseguire l'override delle licenze a pagamento. In futuro, rimuoveremo il controllo delle licenze a pagamento e non richiederemo più l'override. Per il momento, assicurati che l'estensione venga visualizzata come previsto. Ogni override è costituito da un "ID" e un "comportamento". Fai in modo che l'ID corrisponda all'ID dei contributi definiti nel manifest.

"licensing": {

      "overrides": [

        { "id": "my-hub", "behavior": " AlwaysInclude" }
      ]
    }

Se l'estensione BYOL a pagamento offre un periodo di valutazione (è consigliabile), è possibile specificare la lunghezza della versione di valutazione in giorni:

{
    "galleryproperties": {
        "trialDays": "30"
    } 
}          

Nota

Se si vuole usare Azure DevOps come destinazione, ma non si vuole visualizzare un'opzione Download per l'estensione, aggiungere il __DoNotDownload tag (inizia con due caratteri di sottolineatura) al manifesto dell'estensione. Se si sta spostando un'estensione dalla fatturazione e dalle licenze offerte in precedenza da Microsoft al modello Bring Your Own License (BYOL), contattaci per i passaggi appropriati.

Esempio di altre proprietà

{
    "description": "Awesome tools to help you and your team do great things everyday.",
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "license-terms.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/tools"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ]
}

Esempio di pagina dei dettagli

  • 1 - descrizione
  • 2 - Icona
  • 3 - Categorie
  • 4 - schermate
  • 5 - Contenuto (dettagli)
  • 6 - Collegamenti
  • 7 - Personalizzazione

carta

Domande e risposte del Marketplace - Proprietà di CustomerQnASupport

Tutte le estensioni in Visual Studio Marketplace hanno una sezione Domande e risposte (Q & A) per consentire conversazioni pubbliche uno-su-uno tra utenti di estensioni e editori. Gli editori possono scegliere tra domande e risposte del Marketplace, problemi di GitHub o un URL di domande e risposte personalizzato. È possibile disabilitare Q & A nel Marketplace usando la CustomerQnASupport proprietà nel manifesto.

Esperienza predefinita (non sono necessarie modifiche al manifesto)

  • Per le estensioni con un repository GitHub, Marketplace reindirizza gli utenti nella sezione domande e risposte ai problemi di GitHub associati.
  • Per le estensioni senza un repository GitHub, Marketplace Q&A è abilitato.

Per un'esperienza diversa rispetto a una delle opzioni predefinite, usare la CustomerQnASupport proprietà nel manifesto.

{
    "CustomerQnASupport": {
        "enablemarketplaceqna": true,
        "url": "http://uservoice.visualstudio.com"
    } 
}

Proprietà

Proprietà per la sezione domande e risposte del supporto clienti:

  • enablemarketplaceqna : campo booleano, impostato su true per marketplace o Q&A personalizzato; false per disabilitare Q&A
  • url - stringa, URL per domande e risposte personalizzate

Esempi che illustrano l'utilizzo del supporto Q & A

Esempio: Estensione con domande e risposte personalizzate

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true",
        "url": "http://uservoice.visualstudio.com"
    } 
}

Esempio: estensione con repository GitHub, ma utilizzando domande e risposte su Marketplace anziché problemi di GitHub.

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"true"
    } 
}

Esempio: estensione che disabilita la sezione Q & A

{
     "CustomerQnASupport": {
        "enablemarketplaceqna":"false"
    } 
}

Ambiti

Nell'estensione è possibile definire uno o più ambiti. Questi ambiti determinano le risorse a cui l'estensione può accedere e le operazioni consentite per l'esecuzione su tali risorse. Gli ambiti specificati nel manifesto dell'estensione sono gli ambiti impostati sui token di accesso rilasciati all'estensione. Per altre informazioni, vedere Autenticazione e sicurezza.

Se non vengono specificati ambiti, viene fornito alle estensioni solo l'accesso ai dati del profilo utente e dell'estensione.

Ambiti supportati

Categoria Ambito Nome Privilegi elevati Descrizione Eredita da
Sicurezza avanzata vso.advsec SicurezzaAvanzata (leggibile) Concede la possibilità di leggere avvisi, istanze di risultati, e istanze di risultati dell'analisi.
vso.advsec_write SicurezzaAvanzata (lettura e scrittura) Concede la possibilità di caricare analisi in sarif. vso.advsec
vso.advsec_manage AdvancedSecurity (lettura, scrittura e gestione) Concede la possibilità di caricare analisi in sarif. vso.advsec_write
Pool di agenti vso.agentpools Pool di agenti (lettura) Concede la possibilità di visualizzare attività, pool, code, agenti e lavori attualmente in esecuzione o recentemente completati per gli agenti.
vso.agentpools_manage Pool di agenti (leggere, gestire) Offre la possibilità di gestire gruppi, code e agenti. vso.agentpools
vso.environment_manage Ambiente (leggi, gestisci) Conferisce la possibilità di gestire pool, code, agenti e ambienti. vso.agentpools_manage
Analitica vso.analytics Analisi (lettura) Concede la possibilità di eseguire query sui dati di analisi.
Revisione vso.auditlog Registro di controllo (lettura) Concede la possibilità di leggere il log di controllo agli utenti.
vso.auditstreams_manage Flussi di verifica (lettura) Concede la possibilità di gestire i flussi di controllo agli utenti. vso.auditlog
Costruire vso.build Creazione (lettura) Concede la possibilità di accedere agli artefatti di compilazione, inclusi i risultati di compilazione, le definizioni e le richieste e la possibilità di ricevere notifiche sugli eventi di compilazione tramite hook del servizio. vso.hooks_write
vso.build_execute Compilazione (lettura ed esecuzione) Concede la possibilità di accedere agli artefatti di compilazione, inclusi i risultati di compilazione, le definizioni e le richieste e la possibilità di accodare una compilazione, aggiornare le proprietà di compilazione e la possibilità di ricevere notifiche sugli eventi di compilazione tramite hook del servizio. vso.build
Codice vso.code Codice (letto) Concede la possibilità di leggere il codice sorgente e i metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di cercare il codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.hooks_write
vso.code_write Codice (lettura e scrittura) Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente, accedere ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire richieste pull e revisioni del codice e di ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.code
vso.code_manage Codice (lettura, scrittura e gestione) Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente, accedere ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire repository di codice, creare e gestire richieste pull e revisioni del codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.code_write
vso.code_full Codice (completo) Concede l'accesso completo al codice sorgente, ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire repository di codice, creare e gestire richieste pull e revisioni del codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. Include anche il supporto limitato per le API OM client. vso.code_manage
vso.code_status Codice (stato) Concede la possibilità di leggere e scrivere lo stato di commit e pull request.
Server connesso vso.connected_server Server collegato Concede la possibilità di accedere agli endpoint necessari da un server connesso locale.
Diritti vso.entitlements Diritti (lettura) Fornisce accesso in sola lettura all'endpoint delle autorizzazioni di licenza per ottenere le autorizzazioni account.
vso.memberentitlementmanagement Gestione dei Diritti dei Membri (lettura) Concede la possibilità di leggere i dati sugli utenti, le loro licenze, così come su progetti ed estensioni a cui possono accedere.
vso.memberentitlementmanagement_write Gestione dei diritti del membro (scrittura) Concede la possibilità di gestire gli utenti, le licenze e i progetti e le estensioni a cui possono accedere. vso.memberentitlementmanagement
Estensioni vso.extension Estensioni (leggi) Concede la possibilità di leggere le estensioni installate. vso.profile
vso.extension_manage Estensioni (leggere e gestire) Concede la possibilità di installare, disinstallare ed eseguire altre azioni amministrative sulle estensioni installate. vso.extension
vso.extension.data Dati di estensione (lettura) Concede la possibilità di leggere i dati (impostazioni e documenti) archiviati dalle estensioni installate. vso.profile
vso.extension.data_write Dati di estensione (lettura e scrittura) Concede la possibilità di leggere e scrivere dati (impostazioni e documenti) archiviati dalle estensioni installate. vso.extension.data
Connessioni GitHub vso.githubconnections GitHub Connections (leggi) Concede la possibilità di leggere le connessioni GitHub e i dati dei repository GitHub.
vso.githubconnections_manage Connessioni GitHub (lettura e gestione) Concede la possibilità di leggere e gestire le connessioni GitHub e i dati dei repository GitHub vso.githubconnections
Grafico e identità vso.graph Grafico (lettura) Consente di leggere le informazioni su utenti, gruppi, ambiti e appartenenze ai gruppi.
vso.graph_manage Grafico (gestire) Concede la possibilità di leggere informazioni su utenti, gruppi, ambito e appartenenza a gruppi e aggiungere utenti, gruppi e gestire le appartenenze ai gruppi. vso.graph
vso.identity Identità (lettura) Concede la possibilità di leggere identità e gruppi.
vso.identity_manage Gestione dell'identità Concede la possibilità di leggere, scrivere e gestire identità e gruppi. vso.identity
Gruppo di macchine vso.machinegroup_manage Gruppo di distribuzione (leggere, gestire) Consente di gestire gruppi di distribuzione e pool di agenti. vso.agentpools_manage
Piattaforma di mercato vso.gallery Mercato Concede l'accesso in lettura a elementi pubblici e privati e agli editori. vso.profile
vso.gallery_acquire Marketplace (acquisire) Concede l'accesso in lettura e la possibilità di acquisire oggetti. vso.gallery
vso.gallery_publish Marketplace (pubblica) Concede l'accesso in lettura e la possibilità di caricare, aggiornare e condividere elementi. vso.gallery
vso.gallery_manage Marketplace (gestire) Consente l'accesso in lettura e la possibilità di pubblicare e gestire elementi e editori. vso.gallery_publish
Notifiche vso.notification Notifiche (lettura) Fornisce l'accesso in lettura alle sottoscrizioni e ai metadati degli eventi, inclusi i valori dei campi filtrabili. vso.profile
vso.notification_write Notifiche (scrivere) Fornisce l'accesso in lettura e scrittura alle sottoscrizioni e l'accesso in lettura ai metadati degli eventi, inclusi i valori di campo filtrabili. vso.notification
vso.notification_manage Gestisci notifiche Fornisce l'accesso in lettura, scrittura e gestione alle sottoscrizioni e l'accesso in lettura ai metadati degli eventi, inclusi i valori dei campi filtrabili. vso.notification_write
vso.notification_diagnostics Notifiche (diagnostica) Fornisce l'accesso ai log di diagnostica correlati alle notifiche e consente di abilitare la diagnostica per le singole sottoscrizioni. vso.notification
Imballaggio vso.packaging Imballaggio (lettura) Consente la possibilità di leggere i feed e i pacchetti. vso.profile
vso.packaging_write Imballaggio (lettura e scrittura) Concede la possibilità di creare e leggere feed e pacchetti. vso.packaging
vso.packaging_manage Gestione dei pacchetti (lettura, scrittura e gestione) Concede la possibilità di creare, leggere, aggiornare ed eliminare feed e pacchetti. vso.packaging_write
Risorse della pipeline vso.pipelineresources_use Utilizzo delle risorse della pipeline Concede la possibilità di approvare la richiesta di una pipeline di usare una risorsa protetta: pool di agenti, ambiente, coda, repository, file protetti, connessione al servizio e gruppo di variabili.
vso.pipelineresources_manage Risorse della pipeline (uso e gestione) Concede la possibilità di gestire una risorsa protetta o una richiesta di una pipeline di usare una risorsa protetta: pool di agenti, ambiente, coda, repository, file protetti, connessione al servizio e gruppo di variabili. vso.pipelineresources_use
Progetto e team vso.project Progetto e team (in lettura) Concede la possibilità di leggere progetti e squadre.
vso.project_write Progetto e team (leggere e scrivere) Concede la possibilità di leggere e aggiornare progetti e team. vso.project
vso.project_manage Progetto e team (leggere, scrivere e gestire) Concede la possibilità di creare, leggere, aggiornare ed eliminare progetti e team. vso.project_write
Rilascio vso.release Rilascio (lettura) Concede la facoltà di leggere gli artefatti del rilascio, inclusi i rilasci, le definizioni di rilascio e gli ambienti di rilascio. vso.profile
vso.release_execute Rilascio (lettura, scrittura ed esecuzione) Concede la possibilità di leggere e aggiornare gli artefatti di rilascio, inclusi i rilasci, le definizioni di rilascio e l'ambiente di rilascio, e la possibilità di mettere in coda un nuovo rilascio. vso.release
vso.release_manage Rilascio (lettura, scrittura, esecuzione e gestione) Concede la possibilità di leggere, aggiornare ed eliminare artefatti di rilascio, inclusi i rilasci, le definizioni di rilascio e l'ambiente di rilascio, e la possibilità di accodare e approvare un nuovo rilascio. vso.release_execute
File sicuri vso.securefiles_read File protetti (lettura) Concede la possibilità di leggere file protetti.
vso.securefiles_write File protetti (lettura, creazione) Concede la possibilità di leggere e creare file sicuri. vso.securefiles_read
vso.securefiles_manage File protetti (lettura, creazione e gestione) Concede la possibilità di leggere, creare e gestire file sicuri. vso.securefiles_write
Sicurezza vso.security_manage Sicurezza (gestione) Concede la possibilità di leggere, scrivere e gestire le autorizzazioni di sicurezza.
Connessioni al servizio vso.serviceendpoint Punti di accesso al servizio (lettura) Concede la possibilità di leggere gli endpoint di servizio. vso.profile
vso.serviceendpoint_query Endpoint di servizio (lettura e query) Concede la possibilità di leggere ed eseguire query sugli endpoint del servizio. vso.serviceendpoint
vso.serviceendpoint_manage Endpoint del servizio (leggere, interrogare e gestire) Concede la possibilità di leggere, eseguire query e gestire gli endpoint di servizio. vso.serviceendpoint_query
Agganci di servizio vso.hooks Hook dei servizi (lettura) Concede la possibilità di leggere le sottoscrizioni e i metadati del webhook, inclusi eventi supportati, consumatori e azioni. (Non più pubblico. vso.profile
vso.hooks_write Service Hook (lettura e scrittura) Concede la possibilità di creare e aggiornare sottoscrizioni agli hook di servizio e leggere i metadati, inclusi gli eventi supportati, i consumatori e le azioni. (Non più pubblico. vso.hooks
vso.hooks_interact Ganci del servizio (interattività) Concede la possibilità di interagire ed eseguire azioni sugli eventi ricevuti tramite hook del servizio. (Non più pubblico. vso.profile
Impostazioni vso.settings Impostazioni (lettura) Concede la possibilità di leggere le impostazioni.
vso.settings_write Impostazioni (lettura e scrittura) Concede la possibilità di leggere e scrivere impostazioni. vso.settings
Simboli vso.symbols Simboli (leggi) Concede la possibilità di leggere i simboli. vso.profile
vso.symbols_write Simboli (lettura e scrittura) Concede la possibilità di leggere e scrivere simboli. vso.symbols
vso.symbols_manage Simboli (lettura, scrittura e gestione) Concede la possibilità di leggere, scrivere e gestire i simboli. vso.symbols_write
Gruppi di attività vso.taskgroups_read Gruppi di compiti (lettura) Fornisce la capacità di leggere i gruppi di compiti.
vso.taskgroups_write Gruppi di compiti (lettura, creazione) Concede la possibilità di leggere e creare gruppi di attività. vso.taskgroups_read
vso.taskgroups_manage Gruppi di attività (leggere, creare e gestire) Concede la possibilità di leggere, creare e gestire gruppi di attività. vso.taskgroups_write
Team Dashboard vso.dashboards Dashboard della squadra (solo lettura) Concede la possibilità di leggere le informazioni del dashboard del team.
vso.dashboards_manage Dashboard del team (gestisci) Concede la possibilità di gestire le informazioni del dashboard del team. vso.dashboards
Gestione dei test vso.test Gestione dei test (lettura) Concede la possibilità di leggere piani di test, case, risultati e altri artefatti correlati alla gestione dei test. vso.profile
vso.test_write Gestione dei test (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare piani di test, case, risultati e altri artefatti correlati alla gestione dei test. vso.test
Discussioni vso.threads_full Discussioni sulle pull request Concede la possibilità di leggere e scrivere nei thread di commento delle richieste di pull.
Token vso.tokens Token di Autorizzazione Delegata Concede la possibilità di gestire i token di autorizzazione delegati agli utenti.
vso.tokenadministration Amministrazione dei token Concede la possibilità di gestire (visualizzare e revocare) i token esistenti agli amministratori dell'organizzazione.
Profilo utente vso.profile Profilo utente (lettura) Concede la possibilità di leggere il profilo, gli account, le raccolte, i progetti, i team e altri artefatti dell'organizzazione di primo livello.
vso.profile_write Scrittura del profilo utente Concede la possibilità di scrivere nel profilo. vso.profile
Gruppi di variabili vso.variablegroups_read Gruppi di Variabili (leggi) Concede la possibilità di leggere gruppi di variabili.
vso.variablegroups_write Gruppi di variabili (leggere, creare) Concede la possibilità di leggere e creare gruppi di variabili. vso.variablegroups_read
vso.variablegroups_manage Gruppi di variabili (lettura, creazione e gestione) Concede la possibilità di leggere, creare e gestire gruppi di variabili. vso.variablegroups_write
Wiki vso.wiki Wiki (leggi) Concede la possibilità di leggere wiki, pagine wiki e allegati wiki. Concede inoltre la possibilità di cercare pagine wiki.
vso.wiki_write Wiki (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare wiki, pagine wiki e allegati wiki. vso.wiki
Elementi di lavoro vso.work Elementi di lavoro (lettura) Concede la possibilità di visualizzare elementi di lavoro, query, lavagne, percorsi di area e iterazione e altri metadati correlati al tracciamento degli elementi di lavoro. Concede inoltre la possibilità di eseguire interrogazioni, cercare elementi di lavoro e ricevere notifiche sugli eventi degli elementi di lavoro tramite ganci di servizio. vso.hooks_write
vso.work_write Elementi di lavoro (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare elementi di lavoro e query, aggiornare i metadati della bacheca, leggere i percorsi delle aree e delle iterazioni di altri metadati correlati al tracciamento degli elementi di lavoro, eseguire query e ricevere notifiche sugli eventi degli elementi di lavoro tramite hook di servizio. vso.work
vso.work_full Elementi di lavoro (completo) Concede l'accesso completo agli elementi di lavoro, alle query, ai backlog, ai piani e ai metadati di tracciamento degli elementi di lavoro. Offre anche la possibilità di ricevere notifiche sugli eventi degli elementi di lavoro tramite hook di servizio. vso.work_write
Impersonificazione utente user_impersonation Impersonazione utente Avere accesso completo alle API REST di Visual Studio Team Services. Richiedi e/o consenti questo ambito con cautela perché è molto potente!

Modifica dell'ambito dell'estensione pubblicata

È possibile modificare l'ambito di un'estensione pubblicata. Se in precedenza è stata installata l'estensione (e autorizzato il set di ambiti precedente), autorizzare i nuovi ambiti prima di poter eseguire l'aggiornamento alla versione più recente.

La sezione Azione necessaria dell'hub delle impostazioni dell'estensione indica all'utente se le estensioni installate richiedono l'autorizzazione.

modifica dell'ambito

Un amministratore può quindi esaminare e autorizzare il nuovo set di ambiti:

finestra di dialogo per la modifica dell'ambito

Destinazioni di installazione

Come suggerisce il nome, le destinazioni di installazione definiscono i prodotti e i servizi in cui è possibile installare l'estensione. Microsoft.VisualStudio.Services è la destinazione di installazione più comune e indica che l'estensione può essere installata in Azure DevOps.

Le destinazioni di installazione per un'estensione o un'integrazione vengono specificate tramite il targets campo nel manifesto.

Identificatori supportati per le estensioni:

  • Microsoft.VisualStudio.Services.Cloud: viene installato in Azure DevOps Services
  • Microsoft.TeamFoundation.Server: viene installato in Azure DevOps Server
  • Microsoft.VisualStudio.Services: viene installato in entrambi i dispositivi. Scorciatoia per Microsoft.VisualStudio.Services.Cloud e Microsoft.TeamFoundation.Server versione [14.2,)

Identificatori supportati per le integrazioni:

  • Microsoft.VisualStudio.Services.Cloud.Integration: si integra con Azure DevOps Services
  • Microsoft.TeamFoundation.Server.Integration: si integra con Azure DevOps Server
  • Microsoft.VisualStudio.Services.Integration: si integra con entrambi. Scorciatoia per Microsoft.VisualStudio.Services.Cloud.Integration e Microsoft.TeamFoundation.Server.Integration

Per altre informazioni, vedere Punti di estendibilità.

Esempi di destinazioni di installazione

Esempio: estensione che funziona con Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Esempio: estensione che funziona solo con Azure DevOps Services

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        }
    ]
}

Le destinazioni di installazione possono essere usate anche nel manifesto delle integrazioni. Ad esempio, prodotti, app o strumenti che funzionano con, ma non vengono installati in Azure DevOps.

Esempio: Integrazione compatibile con Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ]
}

Esempio: Integrazione che funziona solo con Azure DevOps Server

{
    "targets": [
        {
            "id": "Microsoft.TeamFoundation.Server.Integration"
        }
    ]
}

Versioni di destinazione dell'installazione

Alcuni identificatori di destinazione di installazione, ad esempio Microsoft.TeamFoundation.Server e Microsoft.TeamFoundation.Server.Integration, supportano un intervallo di versioni facoltativo. Questo intervallo di versioni facoltativo chiarisce ulteriormente le versioni supportate in cui è supportata l'estensione o l'integrazione.

La versione o l'intervallo di versione viene specificato tramite il campo version nell'oggetto di destinazione dell'installazione. Questo valore può essere:

  • Una versione specifica, ad esempio: 15.0 (solo 2017 RTM)
  • Intervallo di versioni supportate, ad esempio: [14.0) (2015 RTM e versioni successive), [14.3,15.1] (da 2015 Update 3 a 2017 Update 1). I valori di intervallo vengono perfezionati usando:
    • [: versione minima inclusiva
    • ]: numero massimo di versioni incluse
    • (: versione minima esclusiva
    • ): versione massima esclusiva

Numeri di versione per Azure DevOps Server:

Rilascio Rilasci Versione
2010 Tutte le versioni 10.0
2012 Tutte le versioni 11.0
2013 RTM e aggiornamenti 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM e aggiornamenti 14.0, 14.1, 14.2, 14.3
2017 RTM e aggiornamenti 15.0, 15.1
2018 RTM e aggiornamenti 16,0
2019 RTM e aggiornamenti 17.0
2020 RTM e aggiornamenti 18,0

Esempi che illustrano le versioni

Esempio: estensione che funziona con Azure DevOps

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[15.0,)"
        }
    ]
}

Scorciatoie

Microsoft.VisualStudio.Services è una scorciatoia per Azure DevOps.

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ]
}

Equivale a:

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Cloud"
        },
        {
            "id": "Microsoft.TeamFoundation.Server",
            "version": "[14.2,)"
        }
    ]
}

Uso di obiettivi e richieste di installazione

Le destinazioni e le richieste di installazione vengono usate insieme per presentare agli utenti una visualizzazione corretta dei prodotti e dei servizi con cui è compatibile l'estensione o l'integrazione. Ad esempio, specificando una destinazione di installazione di Microsoft.VisualStudio.Services con una richiesta di api-version/3.0 significa che l'estensione funziona con Azure DevOps.

Suggerimento

Per ulteriori informazioni sulle API REST, consultare il Riferimento API REST.

Esempio: estensione che usa le API versione 3.0

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ]
}

Determina le seguenti destinazioni di installazione:

  1. Microsoft.VisualStudio.Services.Cloud
  2. Microsoft.TeamFoundation.ServerVersione: [15.0,)

Esempio: Integrazione che usa le API della versione 2.0

{
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services.Integration"
        }
    ],
    "demands": [
        "api-version/2.0"
    ]
}

Determina le seguenti destinazioni di installazione:

  1. Microsoft.VisualStudio.Services.Cloud.Integration
  2. Microsoft.TeamFoundation.Server.IntegrationVersione: [14.0,)

Richieste

Le richieste consentono di specificare funzionalità e altre funzionalità richieste dall'estensione. È possibile usare queste richieste per limitare la posizione in cui è possibile pubblicare o installare l'estensione.

Le richieste vengono usate da Visual Studio Marketplace per elencare i prodotti e gli ambienti con cui l'estensione è compatibile, che consente ai clienti di capire se l'estensione funziona con la versione di Azure DevOps, ad esempio.

Vedere l'esempio seguente di come vengono specificate le richieste nel manifesto dell'estensione.

{
    "demands": [
        "api-version/3.0",
        "contribution/ms.vss-dashboards-web.widget-catalog"
    ]
}

In questo esempio l'estensione richiede la versione 3.0 delle API, il che significa che può essere installato solo in Azure DevOps. Richiede anche che l'estensione ms.vss-dashboards-web (e il relativo widget-catalog contributo) sia installata (e abilitata) nella raccolta prima che l'estensione possa essere installata.

Richieste supportate

Tipo Descrizione Controllato durante la pubblicazione? Verificato all'installazione?
environment/cloud Richiede l'esecuzione in un ambiente cloud
environment/onprem Richiede l'esecuzione in un ambiente locale
api-version/{version} Richiede una versione api specifica (minima) NO
extension/{id} Richiede l'installazione o l'abilitazione di un'estensione specifica NO
contribution/{id} È necessario che sia disponibile un contributo specifico NO
contributionType/{id} Richiede che sia disponibile un tipo di contributo specifico NO

Nota

  • Usare environment/cloud e environment/onprem solo quando l'estensione ha requisiti correlati alla topologia che richiedono l'esecuzione in quel particolare ambiente.
  • extensionLe richieste , contributione contributionType vengono valutate in fase di installazione e richiedono che l'estensione specificata sia già installata e abilitata nell'organizzazione o nella raccolta.

file

La files sezione consente di fare riferimento a tutti i file che si desidera includere nell'estensione. È possibile aggiungere cartelle e singoli file:

{
    "files": [
        {
            "path": "hello-world.html", "addressable": true
        },
        {
            "path": "scripts", "addressable": true
        },
        {
            "path": "images/logo.png", "addressable": true, "packagePath": "/"
        }
    ]
}

Proprietà

Proprietà per la sezione File:

  • path : percorso della risorsa su disco, che può essere relativo alla directory radice.
  • addressable : (facoltativo) Impostare su true se si vuole che il file sia indirizzabile tramite URL. Il valore predefinito è false.
  • packagePath : (facoltativo) Percorso della risorsa all'interno del pacchetto. L'impostazione predefinita è il percorso relativo sul disco nella directory principale.
  • contentType : tipo MIME (facoltativo) del file. Le impostazioni predefinite sono una stima approssimativa basata sull'estensione del file e sulle impostazioni del sistema operativo.
  • assetType : (facoltativo) Specificare il valore dell'attributo Type della voce di asset nel manifesto VSIX. Può anche essere un array di stringhe, nel qual caso vengono aggiunti più elementi di risorsa per questo file. Il valore di default viene impostato su packagePath.
  • lang : (facoltativo) Lingua di questo asset. I file localizzati vengono serviti in base all'intestazione Accept-Language. Lasciare vuoto per indicare che questo file è nella lingua di default (o di fallback). Le versioni localizzate dello stesso file devono avere lo stesso assetType.

Contributi

Ogni voce di contributo ha le proprietà seguenti:

  • id : ID di riferimento (stringa) per il contributo. Rendere univoco ogni ID contributo all'interno di un'estensione. Vedi riferimenti a contributi e tipi.
  • type - L'ID del tipo di contributo in questo contributo.
  • description : (facoltativo) Stringa che descrive il contributo fornito.
  • targets - array di ID dei contributi a cui il contributo è destinato (a cui contribuisce). Consultare Contributi mirati.
  • properties - (Facoltativo) Oggetto che include proprietà per il contributo come definito nel tipo di contributo.

Per altre informazioni, vedere la panoramica del modello di contributo.

Tipi di contributo

Ogni voce di contributo ha le proprietà seguenti:

  • id : ID riferimento (stringa) per il tipo di contributo. Rendere univoco ogni ID del tipo di contributo all'interno di un'estensione. Vedi riferimenti a contributi e tipi.
  • name - Il nome amichevole del tipo di contributo.
  • description : (facoltativo) Stringa che descrive in modo più dettagliato il tipo di contributo.
  • properties : (facoltativo) Dizionario che esegue il mapping dei nomi delle proprietà alle descrizioni delle proprietà. Queste proprietà descrivono le proprietà obbligatorie e facoltative che possono essere usate dai contributi di questo tipo.

Le descrizioni delle proprietà hanno le proprietà seguenti:

  • description : (facoltativo) Stringa che descrive la proprietà utilizzata.
  • required - (Facoltativo) Valore booleano, che se true indica che la proprietà è necessaria per tutti i contributi di questo tipo.
  • type : tipo di valore che la proprietà può avere, che può essere stringa, uri, guid, booleano, integer, double, dateTime, matrice o oggetto.

Per altre informazioni, vedere la panoramica del modello di contributo.

Riferimenti a contributi e tipi

Usare identificatori univoci per fare riferimento a contributi e tipi di contributi. Fare riferimento ai tipi con la type proprietà e riferirsi ad altri contributi con la targets proprietà.

  • Un riferimento completo al contributo include l'identificatore dell'editore, l'identificatore di estensione e l'identificatore di contributo/tipo, separati da un punto (.). Ad esempio, ms.vss-web.hub è l'identificatore completo per il contributo con identificatore di hub nell'estensione vss-web pubblicata dall'editore "ms" (Microsoft).
  • I riferimenti relativi ai contributi possono essere usati all'interno di un manifesto dell'estensione per il riferimento di un contributo a un altro tipo di contributo o di contributo all'interno della stessa estensione. In questo caso, gli identificatori dell'autore e dell'estensione NON sono inclusi e l'identificatore è un punto (.) seguito dall'identificatore del contributo. Ad esempio, .hub può essere usato all'interno dell'estensione vss-web menzionata in precedenza come collegamento per ms.vss-web.hub.

Mira ai contributi

Alcuni contributi fungono da contenitori mirati da altri contributi.

  • I contributi dell'hub possono essere destinati ai gruppi hub. Quando viene eseguito il rendering di una pagina, l'interfaccia utente Web mostra tutti i contributi dell'hub destinati al gruppo hub selezionato. I gruppi hub mirano a una raccolta di gruppi hub, che definisce un set di gruppi hub visibili in una determinata area di navigazione, ad esempio pagine di amministrazione a livello di progetto.
  • Diversi tipi di contributi possono essere destinati ai menu: azione, azione di collegamento ipertestuale e fornitore di azioni. Azioni e azioni ipertestuali forniscono singole voci di menu. Un provider di azioni può fornire più voci di menu dinamiche. Per un determinato menu, le voci vengono aggregate in tutti i contributi (di uno di questi tipi) destinati a tale contributo di menu specifico.

Aggiungere un'icona di hub

Per informazioni sull'aggiunta di un'icona al tuo hub, consulta le linee guida sull'icona dell'hub.

Servizi di badge supportati

Il Marketplace supporta solo badge dai seguenti servizi attendibili:

  • api.travis-ci.org/
  • badge.fury.io/
  • badges.frapsoft.com/
  • badges.gitter.im/
  • badges.greenkeeper.io/
  • cdn.travis-ci.org/
  • ci.appveyor.com/
  • codeclimate.com/
  • codecov.io/
  • coveralls.io/
  • david-dm.org/
  • gemnasium.com/
  • img.shields.io/
  • isitmaintained.com/
  • marketplace.visualstudio.com/
  • snyk.io/
  • travis-ci.com/
  • travis-ci.org/
  • vsmarketplacebadges.dev/
  • bithound.io/
  • deepscan.io/
  • githost.io/
  • gitlab.com/
  • opencollective.co/

Nota

Sostituisci vsmarketplacebadge.apphb.com con vsmarketplacebadges.dev.

Per visualizzare un badge da un altro servizio, contattare il supporto tecnico presso la community degli sviluppatori.

Manifesto di esempio

L'estensione seguente aggiunge un'azione al menu di scelta rapida dei build completati e un hub al gruppo hub di compilazione.

{
    "manifestVersion": 1,
    "id": "tools",
    "version": "0.1.0",
    "name": "Fabrikam Tools",
    "publisher": "fabrikam",
    "description": "Awesome tools to help you and your team do great things everyday.",
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "demands": [
        "api-version/3.0"
    ],
    "icons": {
        "default": "images/fabrikam-logo.png"
    },
    "scopes": [
        "vso.work",
        "vso.code_write"
    ],
    "categories": [
        "Plan and track"
    ],
    "tags": [
        "working",
        "people person",
        "search"
    ],
    "branding": {
        "color": "rgb(34, 34, 34)",
        "theme": "dark"
    },
    "screenshots": [
        {
            "path": "screenshots/screen1.png"
        },
        {
            "path": "screenshots/screen2.png"
        }
    ],
    "content": {
        "details": {
            "path": "overview.md"
        },
        "license": {
            "path": "eula.md"
        }
    },
    "links": {
        "home": {
            "uri": "https://www.fabrikam-fiber-inc.com"
        },
        "getstarted": {
            "uri": "https://www.fabrikam-fiber-inc.com/help/getstarted"
        },
        "learn": {
            "uri": "https://www.fabrikam-fiber-inc.com/features"
        },
        "support": {
            "uri": "https://www.fabrikam-fiber-inc.com/support"
        },
        "repository": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools"
        },
        "issues": {
            "uri": "https://github.com/fabrikam-fiber-inc/tools/issues"
        }
    },
    "repository": {
        "type": "git",
        "uri": "https://github.com/fabrikam-fiber-inc/myextension"
    },
    "badges": [
        {
            "href": "https://travis.ci/fabrikam-fiber-inc/myextension",
            "uri": "https://travis.ci/fabrikam-fiber-inc/myextension.svg?branch=master",
            "description": "TravisCI build for the project"
        },
        {
            "href": "https://ci.appveyor.com/projects/fabrikam-fiber-inc/myextension",
            "uri": "https://ci.appveyor.com/api/projects/status/vlg2sgs2y7tsdxpj4c?svg=true",
            "description": "AppVeyor build for the project"
        }
    ],
    "contributions": [
        {
            "id": "showCommits",
            "type": "ms.vss-web.action",
            "description": "Adds a menu action from builds grid to show associated items.",
            "targets": [
                "ms.vss-build-web.completed-build-menu"
            ],
            "properties": {
                "title": "View associated items",
                "uri": "launch.html"
            }
        }
    ]
}