Delen via


Verwijzing naar extensiemanifest

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

Elke extensie heeft een JSON-manifestbestand dat basisinformatie over de extensie definieert. Het bestand definieert ook hoe het de ervaring kan uitbreiden en verbeteren. In dit artikel leest u hoe u een manifest maakt voor uw extensie naar Azure DevOps.

Tip

Bekijk onze nieuwste documentatie over uitbreidingsontwikkeling met behulp van de Azure DevOps Extension SDK.

Maak een bestand met de naam vss-extension.json in de hoofdmap van de extensiemap. Dit bestand bevat vereiste kenmerken, zoals de id van de extensie en de installatiedoelen, waar het kan worden uitgevoerd. Het definieert ook de bijdragen die door uw extensie worden gedaan.

Zie het volgende voorbeeld van een typisch manifest:

{
    "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"
        }
    ]
}

Vereiste kenmerken

Deze eigenschappen zijn vereist:

Eigenschappen Beschrijving Opmerkingen
manifestVersion Een getal dat overeenkomt met de versie van de manifestindeling. Moet 1 zijn.
Id De id van de extensie. De id is een tekenreeks die uniek moet zijn tussen extensies van dezelfde uitgever. Het moet beginnen met een alfabetisch of numeriek teken en 'A' tot en met Z, 'a' tot en met 'z', '0' tot en met '9' en '-' (afbreekstreepje). Voorbeeld: sample-extension.
version Een tekenreeks die de versie van een extensie opgeeft. Moet de indeling major.minor.patchhebben, bijvoorbeeld 0.1.2 of 1.0.0. U kunt ook een vierde getal toevoegen voor de volgende notatie: 0.1.2.3
name Een korte, door mensen leesbare naam van de extensie. Beperkt tot 200 tekens. Voorbeeld: "Fabrikam Agile Board Extension".
Publisher De id van de uitgever. Deze id moet overeenkomen met de id waaronder de extensie wordt gepubliceerd. Zie Een uitgever maken en beheren.
Categorieën Matrix van tekenreeksen die de categorieën vertegenwoordigen waartoe uw extensie behoort. Er moet ten minste één categorie worden opgegeven en er is geen limiet voor het aantal categorieën dat u kunt opnemen. Geldige waarden: Azure Repos, Azure Boards, Azure Pipelines, , Azure Test Plansen Azure Artifacts.

Opmerkingen:
    - Gebruik versie >=0.6.3 van de tfx-cli als u de extensie programmatisch publiceert.
    - Als u de extensie Azure DevOps-extensietaken gebruikt om te publiceren, moet u ervoor zorgen dat de versie = 1.2.8 is >. Mogelijk moet u de extensie-update goedkeuren vanwege recente wijzigingen in het bereik.
    - De eerder genoemde categorieën zijn systeemeigen aanwezig in Visual Studio Marketplace en Azure DevOps Server 2019 en hoger. Voor extensies die gericht zijn op eerdere versies van TFS:
      - Als TFS-klanten uw extensie verkrijgen via Visual Studio Marketplace (geen lokale galerie) in verbonden context, gebruikt u de categorieën die eerder zijn vermeld.
      - Als u de extensie rechtstreeks gaat delen (dus niet via Visual Studio Marketplace) met een klant die TFS <=2018 gebruikt, gebruikt u in plaats daarvan de volgende categorieën: Code, Plannen en bijhouden, Bouwen en vrijgeven, Testen, Samenwerken en integreren. Als u zowel via Visual Studio Marketplace als rechtstreeks met een TFS <= 2018-klant wilt delen, moet u twee uitbreidingspakketten hebben.
Doelstellingen De producten en services die worden ondersteund door uw integratie of extensie. Zie installatiedoelen voor meer informatie. Een matrix met objecten, waarbij elk object een id veld bevat dat een van de volgende opties aangeeft:
    - Microsoft.VisualStudio.Services(extensies die werken met Azure DevOps of TFS),
    Microsoft.TeamFoundation.Server- (extensie die werkt met TFS),
    Microsoft.VisualStudio.Services.Integration- (integraties die werken met Azure DevOps of TFS),
    - Microsoft.TeamFoundation.Server.Integration (integraties die werken met TFS)

Voorbeelden van vereiste kenmerken

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

Optionele kenmerken

Runtimekenmerken

Eigenschappen Beschrijving Opmerkingen
Scopes Een matrix met autorisatiebereiken (tekenreeksen) met machtigingen die zijn vereist voor uw extensie. En vs.code_write geeft bijvoorbeeld vso.work aan dat uw extensie alleen-lezentoegang nodig heeft tot werkitems en lees-/schrijftoegang tot broncode (en gerelateerde resource). Bereiken worden aan de gebruiker gepresenteerd bij het installeren van uw extensie. Zie de volledige lijst met bereiken voor meer informatie.
Eisen Een matrix met vereisten (tekenreeksen) met de mogelijkheden die vereist zijn voor uw extensie. Geeft bijvoorbeeld api-version/3.0 aan dat uw extensie gebruikmaakt van api's van versie 3.0 en dus niet kan worden uitgevoerd in oudere producten die deze versie niet ondersteunen. Zie de volledige lijst met eisen voor meer informatie.
baseURI (Optioneel) basis-URL voor alle relatieve URL's die zijn opgegeven door de bijdragen van de extensie. Voorbeeld: https://myapp.com/{{account.name}}/. Deze eigenschap moet leeg blijven als de inhoud van uw extensie is verpakt met uw extensie.
Bijdragen Een matrix met bijdragen aan het systeem.
contributionTypes Een matrix met bijdragetypen die zijn gedefinieerd door de extensie
{
    "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"
            }
        }
    ]
}

Detectiekenmerken

Deze optionele eigenschappen helpen gebruikers bij het detecteren en leren van uw extensie:

Eigenschappen Beschrijving Opmerkingen
beschrijving Een paar zinnen met een beschrijving van de extensies. Beperkt tot 200 tekens. De beschrijving moet de 'elevator pitch' van uw extensie zijn: een paar regels om uw extensie in marketplace te beschrijven en ervoor te zorgen dat personen deze willen installeren. Zie het onderstaande voorbeeld
Pictogrammen Woordenlijst met pictogrammen die de extensie vertegenwoordigen. Geldige sleutels: default (128x128 pixels) van het type BMP, GIF, EXIF, JPG, PNG en TIFF. Andere sleutels, zoals large (512x512 pixels), kunnen in de toekomst worden ondersteund. De waarde van elke sleutel is het pad naar het pictogrambestand in de extensie
tags Matrix van tekenreekstags om gebruikers te helpen uw extensie te vinden. Voorbeelden: agile, project management, task timerenzovoort.
Screenshots Matrix met afbeeldingen die niet in uw inhoud kunnen worden opgenomen. Schermafbeeldingen zijn waardevoller wanneer deze worden weergegeven in uw inhoud en moeten daar worden gebruikt om een pagina met marktdetails van kwaliteit te maken voor uw extensie. Gebruik schermopnamen voor minder belangrijke afbeeldingen die niet in uw inhoud worden weergegeven. Elke afbeelding moet 1366x768 pixels zijn. Het path pad naar het bestand in de extensie is het pad van elk item.
Inhoud Woordenlijst met inhoudsbestanden die uw extensie beschrijven voor gebruikers. Elke extensie moet solide inhoud bevatten. Dit is hoe u gebruikers laat zien wat uw extensie kan doen. Maak het uitgebreid, verbruikbaar en neem waar nodig schermopnamen op. Neem een overview.md bestand op als basisinhoudsstuk. Voor elk bestand wordt ervan uitgegaan dat het een Markdown-indeling met gitHub Flavored heeft. Het path pad naar het Markdown-bestand in de extensie is het pad van elk item. Geldige sleutels: details. Andere sleutels kunnen in de toekomst worden ondersteund.
koppelingen Woordenlijst met koppelingen waarmee gebruikers meer te weten komen over uw extensie, ondersteuning krijgen en verplaatsen. Geldige sleutels: getstarted - eerste stappen, het instellen of gebruiken. learn - diepere inhoud om gebruikers te helpen uw extensie of service beter te begrijpen. license -Gebruiksrechtovereenkomst. privacypolicy - privacybeleid voor een uitbreiding. support - hulp en ondersteuning voor een extensie. De waarde van elke sleutel is een object met een uri veld, de absolute URL van de koppeling
Repository Woordenlijst met eigenschappen die de broncodeopslagplaats voor de extensie beschrijven Geldige sleutels: type - Type opslagplaats. Voorbeeld: git. uri - Absolute URL van de opslagplaats.
Badges Matrix van koppelingen naar externe metagegevensbadges zoals TravisCI, Appveyor, enzovoort, van de goedgekeurde badgesites Geldige sleutels: href - Koppel de gebruiker naar wanneer u de badge selecteert. uri - De absolute URL van de badgeafbeelding die moet worden weergegeven. description - Beschrijving van de badge, die bij de muisaanwijzer moet worden weergegeven.
Branding Woordenlijst van merkgerelateerde eigenschappen. Geldige sleutels: color - primaire kleur van de extensie of uitgever; kan een hex (#ff00ff), RGB (rgb(100.200,50)) of ondersteunde HTML-kleurnamen (blauw) zijn. theme - vormt een aanvulling op de kleur; gebruik donker voor donkere huisstijlkleuren of licht voor lichtere huisstijlkleuren.

Een extensie openbaar markeren

Standaard zijn alle extensies in Azure DevOps Marketplace privé. Ze zijn alleen zichtbaar voor de uitgever en accounts die door de uitgever worden gedeeld. Als uw uitgever is geverifieerd, kunt u uw extensie openbaar maken door de Public vlag in te stellen in het extensiemanifest:

{
    "galleryFlags": [
        "Public"
    ]
}            

Of:

{
    "public": true
}            

Zie Package/Publish/Install voor meer informatie.

Een extensie markeren als preview-versie

Als uw extensie gereed is voor gebruikers in Marketplace om te proberen, maar u nog een aantal bugs hebt of een functie toevoegt, kunt u deze markeren als preview:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Een extensie markeren als betaalde preview

Als u van plan bent om uw extensie op marketplace te verkopen, markeert u deze als betaalde preview. Een extensie die als gratis is gemarkeerd, kan niet worden gewijzigd in betaald.

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

Een extensie markeren als betaald

Als u uw extensie op marketplace wilt verkopen, kunt u deze markeren met de Paid vlag en __BYOLENFORCED tag (begint met twee onderstrepingstekens):

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

Zowel de vlag als __BYOLENFORCED de Paid tag moeten aanwezig zijn om een extensie te markeren als betaald in Marketplace. Bring-Your-Own-License (BYOL) betekent dat de uitgever van de extensie het facturerings- en licentiemechanisme biedt voor de extensie, omdat deze niet wordt geleverd door Microsoft voor Azure DevOps-extensies. Alle betaalde extensies zijn vereist voor het definiëren van privacybeleid, ondersteuningsbeleid en een gebruiksrechtovereenkomst voor eindgebruikers. Uitgevers moeten ook als volgt inhoud opgeven voor het tabblad Prijzen in Marketplace:

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

U moet ook een nieuwe sectie in uw extensiemanifest toevoegen om betaalde licenties te overschrijven. In de toekomst verwijderen we de betaalde licentiecontrole en hoeven we de overschrijving niet meer te overschrijven. Controleer voorlopig of uw extensie wordt weergegeven zoals verwacht. Elke onderdrukking bestaat uit een 'id' en een 'gedrag'. De id moet overeenkomen met de id van de bijdragen die in het manifest zijn gedefinieerd.

"licensing": {

      "overrides": [

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

Als uw betaalde BYOL-extensie een proefperiode biedt (dit wordt aangeraden), kunt u de duur van de proefversie in dagen opgeven:

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

Notitie

Als u Zich wilt richten op Azure DevOps, maar geen downloadoptie voor uw extensie wilt weergeven, voegt u de __DoNotDownload tag (begint met twee onderstrepingstekens) toe aan het extensiemanifest. Als u een uitbreiding verplaatst van de eerder aangeboden facturering en licenties van Microsoft naar het BYOL-model, neemt u contact met ons op voor geschikte stappen.

Voorbeeld van meer eigenschappen

{
    "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"
        }
    ]
}

Voorbeeld van pagina Met details

  • 1 - beschrijving
  • 2 - pictogram
  • 3 - categorieën
  • 4 - schermopnamen
  • 5 - inhoud (details)
  • 6 - koppelingen
  • 7 - huisstijl

Kaart

Q & A voor Marketplace - Eigenschap CustomerQnASupport

Alle extensies in Visual Studio Marketplace hebben een Q&A-sectie om een-op-een openbare gesprekken tussen extensiegebruikers en uitgevers toe te staan. Uitgevers kunnen kiezen tussen Q&A van Marketplace, GitHub-problemen of een aangepaste Q&A-URL. U kunt Q&A uitschakelen in Marketplace met behulp van de eigenschap CustomerQnASupport in het manifest.

Standaardervaring (er zijn geen wijzigingen in het manifest vereist)

  • Voor extensies met een GitHub-opslagplaats stuurt Marketplace gebruikers in de Q&A-sectie om naar de bijbehorende GitHub-problemen.
  • Voor extensies zonder een GitHub-opslagplaats is Marketplace Q&A ingeschakeld.

Gebruik voor een andere ervaring dan een van de standaardopties de eigenschap CustomerQnASupport in het manifest.

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

Eigenschappen

Eigenschappen voor de sectie Q & A-ondersteuning van klanten:

  • enablemarketplaceqna - booleaanse waarde, ingesteld op waar voor marketplace of aangepaste Q&A; onwaar voor het uitschakelen van Q&A
  • url - tekenreeks, URL voor aangepaste Q&A

Voorbeelden van het gebruik van Q &A-ondersteuning

Voorbeeld: Extensie met aangepaste Q &A

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

Voorbeeld: Extensie met GitHub-opslagplaats, maar marketplace-Q &A gebruiken in plaats van GitHub-problemen

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

Voorbeeld: Extensie uitschakelen Q &A-sectie

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

Bereiken

In uw extensie kunt u een of meer bereiken definiëren. Deze bereiken bepalen welke resources uw extensie kan openen en welke bewerkingen het is toegestaan om deze resources uit te voeren. De bereiken die u in uw extensiemanifest opgeeft, zijn de bereiken die zijn ingesteld op toegangstokens die zijn uitgegeven aan uw extensie. Zie Auth en beveiliging voor meer informatie.

Als er geen bereiken zijn opgegeven, krijgen extensies alleen toegang tot gebruikersprofiel- en extensiegegevens.

Ondersteunde bereiken

Categorie Bereik Name Beschrijving
Agentpools vso.agentpools Agentpools (lezen) Biedt de mogelijkheid om taken, pools, wachtrijen, agents en momenteel uitgevoerde of onlangs voltooide taken voor agents weer te geven.
vso.agentpools_manage Agentpools (lezen, beheren) Biedt de mogelijkheid om pools, wachtrijen en agents te beheren.
vso.environment_manage Omgeving (lezen, beheren) Biedt de mogelijkheid om pools, wachtrijen, agents en omgevingen te beheren.
Analyse vso.analytics Analyse (lezen) Verleent de mogelijkheid om query's uit te voeren op analysegegevens.
Controle vso.auditlog Auditlogboek (lezen) Verleent de mogelijkheid om het controlelogboek te lezen voor gebruikers.
vso.auditstreams_manage Streams controleren (lezen) Verleent de mogelijkheid om controlestromen voor gebruikers te beheren.
Bouwen vso.build Bouwen (lezen) Verleent de mogelijkheid om toegang te krijgen tot buildartefacten, waaronder buildresultaten, definities en aanvragen, en de mogelijkheid om meldingen te ontvangen over build-gebeurtenissen via servicehook.
vso.build_execute Bouwen (lezen en uitvoeren) Biedt de mogelijkheid om toegang te krijgen tot buildartefacten, waaronder buildresultaten, definities en aanvragen, en de mogelijkheid om een build-, update-build-eigenschappen en de mogelijkheid om meldingen te ontvangen over build-gebeurtenissen via servicehook.
Code vso.code Code (lezen) Biedt de mogelijkheid om broncode en metagegevens te lezen over doorvoeringen, wijzigingensets, vertakkingen en andere artefacten voor versiebeheer. Biedt ook de mogelijkheid om code te zoeken en meldingen te ontvangen over versiebeheer-gebeurtenissen via servicehook.
vso.code_write Code (lezen en schrijven) Biedt de mogelijkheid om broncode te lezen, bij te werken en te verwijderen, metagegevens te openen over doorvoeringen, wijzigingensets, vertakkingen en andere artefacten voor versiebeheer. Biedt ook de mogelijkheid om pull-aanvragen en codebeoordelingen te maken en te beheren en meldingen te ontvangen over versiebeheer-gebeurtenissen via servicehook.
vso.code_manage Code (lezen, schrijven en beheren) Biedt de mogelijkheid om broncode te lezen, bij te werken en te verwijderen, metagegevens te openen over doorvoeringen, wijzigingensets, vertakkingen en andere artefacten voor versiebeheer. Biedt ook de mogelijkheid om codeopslagplaatsen te maken en te beheren, pull-aanvragen en codebeoordelingen te maken en te beheren en meldingen te ontvangen over versiebeheer-gebeurtenissen via servicehook.
vso.code_full Code (volledig) Verleent volledige toegang tot broncode, metagegevens over doorvoeringen, wijzigingensets, vertakkingen en andere artefacten voor versiebeheer. Biedt ook de mogelijkheid om codeopslagplaatsen te maken en te beheren, pull-aanvragen en codebeoordelingen te maken en te beheren en meldingen te ontvangen over versiebeheer-gebeurtenissen via servicehook. Bevat ook beperkte ondersteuning voor CLIENT OM-API's.
vso.code_status Code (status) Verleent de mogelijkheid om doorvoer- en pull-aanvraagstatus te lezen en schrijven.
Verbinding maken ed Server vso.connected_server Verbinding maken ed Server Biedt de mogelijkheid om toegang te krijgen tot eindpunten die nodig zijn vanaf een on-premises verbonden server.
Rechten vso.entitlements Rechten (lezen) Biedt alleen-lezentoegang tot eindpunt voor licentierechten om accountrechten op te halen.
vso.memberentitlementmanagement MemberEntitlement Management (lezen) Verleent de mogelijkheid om gebruikers, hun licenties en projecten en extensies te lezen die ze kunnen openen.
vso.memberentitlementmanagement_write MemberEntitlement Management (schrijven) Verleent de mogelijkheid om gebruikers, hun licenties en projecten en extensies te beheren die ze kunnen openen.
Extensies vso.extension Extensies (lezen) Verleent de mogelijkheid om geïnstalleerde extensies te lezen.
vso.extension_manage Extensies (lezen en beheren) Verleent de mogelijkheid om andere beheeracties te installeren, te verwijderen en uit te voeren op geïnstalleerde extensies.
vso.extension.data Extensiegegevens (lezen) Biedt de mogelijkheid om gegevens (instellingen en documenten) te lezen die zijn opgeslagen door geïnstalleerde extensies.
vso.extension.data_write Extensiegegevens (lezen en schrijven) Biedt de mogelijkheid om gegevens (instellingen en documenten) te lezen en schrijven die zijn opgeslagen door geïnstalleerde extensies.
Grafiek en identiteit vso.graph Grafiek (lezen) Verleent de mogelijkheid om informatie over gebruikers-, groep-, bereik- en groepslidmaatschap te lezen.
vso.graph_manage Grafiek (beheren) Biedt de mogelijkheid om gebruikers-, groep-, bereik- en groepslidmaatschapsgegevens te lezen en gebruikers, groepen en groepslidmaatschappen toe te voegen en groepslidmaatschappen te beheren.
vso.identity Identiteit (lezen) Verleent de mogelijkheid om identiteiten en groepen te lezen.
vso.identity_manage Identiteit (beheren) Biedt de mogelijkheid om identiteiten en groepen te lezen, schrijven en beheren.
Machinegroep vso.machinegroup_manage Implementatiegroep (lezen, beheren) Biedt de mogelijkheid om implementatiegroep- en agentgroepen te beheren.
Marketplace vso.gallery Marketplace Verleent leestoegang tot openbare en persoonlijke items en uitgevers.
vso.gallery_acquire Marketplace (verkrijgen) Verleent leestoegang en de mogelijkheid om items te verkrijgen.
vso.gallery_publish Marketplace (publiceren) Verleent leestoegang en de mogelijkheid om items te uploaden, bij te werken en te delen.
vso.gallery_manage Marketplace (beheren) Verleent leestoegang en de mogelijkheid om items en uitgevers te publiceren en te beheren.
Meldingen vso.notification Meldingen (gelezen) Biedt leestoegang tot abonnementen en gebeurtenismetagegevens, inclusief filterbare veldwaarden.
vso.notification_write Meldingen (schrijven) Biedt lees- en schrijftoegang tot abonnementen en leestoegang tot metagegevens van gebeurtenissen, inclusief filterbare veldwaarden.
vso.notification_manage Meldingen (beheren) Biedt lees-, schrijf- en beheertoegang tot abonnementen en leestoegang tot metagegevens van gebeurtenissen, inclusief filterbare veldwaarden.
vso.notification_diagnostics Meldingen (diagnostische gegevens) Biedt toegang tot diagnostische logboeken met betrekking tot meldingen en biedt de mogelijkheid om diagnostische gegevens in te schakelen voor afzonderlijke abonnementen.
Verpakking vso.packaging Verpakking (gelezen) Verleent de mogelijkheid om feeds en pakketten te lezen.
vso.packaging_write Verpakking (lezen en schrijven) Biedt de mogelijkheid om feeds en pakketten te maken en te lezen.
vso.packaging_manage Verpakking (lezen, schrijven en beheren) Biedt de mogelijkheid om feeds en pakketten te maken, lezen, bij te werken en te verwijderen.
Pijplijnbronnen vso.pipelineresources_use Pijplijnbronnen (gebruik) Verleent de mogelijkheid om de aanvraag van een pijplijn goed te keuren voor het gebruik van een beveiligde resource: agentgroep, omgeving, wachtrij, opslagplaats, beveiligde bestanden, serviceverbinding en variabele groep.
vso.pipelineresources_manage Pijplijnbronnen (gebruiken en beheren) Verleent de mogelijkheid om een beveiligde resource of een pijplijnaanvraag te beheren voor het gebruik van een beveiligde resource: agentgroep, omgeving, wachtrij, opslagplaats, beveiligde bestanden, serviceverbinding en variabele groep.
Project en team vso.project Project en team (gelezen) Verleent de mogelijkheid om projecten en teams te lezen.
vso.project_write Project en team (lezen en schrijven) Biedt de mogelijkheid om projecten en teams te lezen en bij te werken.
vso.project_manage Project en team (lezen, schrijven en beheren) Biedt de mogelijkheid om projecten en teams te maken, lezen, bijwerken en verwijderen.
Release vso.release Release (lezen) Verleent de mogelijkheid om release-artefacten te lezen, waaronder releases, releasedefinities en releaseomgeving.
vso.release_execute Release (lezen, schrijven en uitvoeren) Biedt de mogelijkheid om releaseartefacten te lezen en bij te werken, waaronder releases, releasedefinities en releaseomgeving, en de mogelijkheid om een nieuwe release in de wachtrij te plaatsen.
vso.release_manage Release (lezen, schrijven, uitvoeren en beheren) Verleent de mogelijkheid om releaseartefacten te lezen, bij te werken en te verwijderen, waaronder releases, releasedefinities en releaseomgeving, en de mogelijkheid om een nieuwe release in de wachtrij te plaatsen en goed te keuren.
Beveiligde bestanden vso.securefiles_read Beveiligde bestanden (lezen) Biedt de mogelijkheid om beveiligde bestanden te lezen.
vso.securefiles_write Beveiligde bestanden (lezen, maken) Biedt de mogelijkheid om beveiligde bestanden te lezen en te maken.
vso.securefiles_manage Beveiligde bestanden (lezen, maken en beheren) Biedt de mogelijkheid om beveiligde bestanden te lezen, te maken en te beheren.
Beveiliging vso.security_manage Beveiliging (beheren) Verleent de mogelijkheid om beveiligingsmachtigingen te lezen, schrijven en beheren.
Serviceverbindingen vso.serviceendpoint Service-eindpunten (lezen) Verleent de mogelijkheid om service-eindpunten te lezen.
vso.serviceendpoint_query Service-eindpunten (lezen en query's) Biedt de mogelijkheid om service-eindpunten te lezen en op te vragen.
vso.serviceendpoint_manage Service-eindpunten (lezen, query's uitvoeren en beheren) Biedt de mogelijkheid om service-eindpunten te lezen, op te vragen en te beheren.
Instellingen vso.settings Instellingen (lezen) Verleent de mogelijkheid om instellingen te lezen.
vso.settings_write Instellingen (lezen en schrijven) Verleent de mogelijkheid om instellingen te maken en te lezen.
Symbolen vso.symbols Symbolen (lezen) Verleent de mogelijkheid om symbolen te lezen.
vso.symbols_write Symbolen (lezen en schrijven) Verleent de mogelijkheid om symbolen te lezen en schrijven.
vso.symbols_manage Symbolen (lezen, schrijven en beheren) Verleent de mogelijkheid om symbolen te lezen, schrijven en beheren.
Taakgroepen vso.taskgroups_read Taakgroepen (lezen) Verleent de mogelijkheid om taakgroepen te lezen.
vso.taskgroups_write Taakgroepen (lezen, maken) Verleent de mogelijkheid om taakgroepen te lezen en te maken.
vso.taskgroups_manage Taakgroepen (lezen, maken en beheren) Verleent de mogelijkheid om taskgroups te lezen, te maken en te beheren.
Teamdashboard vso.dashboards Teamdashboards (lezen) Biedt de mogelijkheid om teamdashboardgegevens te lezen.
vso.dashboards_manage Teamdashboards (beheren) Verleent de mogelijkheid om teamdashboardgegevens te beheren.
Testbeheer vso.test Testbeheer (lezen) Verleent de mogelijkheid om testplannen, cases, resultaten en andere testbeheergerelateerde artefacten te lezen.
vso.test_write Testbeheer (lezen en schrijven) Verleent de mogelijkheid om testplannen, cases, resultaten en andere testbeheergerelateerde artefacten te lezen, te maken en bij te werken.
Threads vso.threads_full PR-threads Verleent de mogelijkheid om threads met opmerkingen voor pull-aanvragen te lezen en schrijven.
Tokens vso.tokens Gedelegeerde autorisatietokens Verleent de mogelijkheid om gedelegeerde autorisatietokens te beheren aan gebruikers.
vso.tokenadministration Token Beheer istratie Verleent de mogelijkheid om bestaande tokens te beheren (weergeven en intrekken) aan organisatiebeheerders.
Gebruikersprofiel vso.profile Gebruikersprofiel (lezen) Biedt de mogelijkheid om uw profiel, accounts, verzamelingen, projecten, teams en andere organisatieartefacten op het hoogste niveau te lezen.
vso.profile_write Gebruikersprofiel (schrijven) Verleent de mogelijkheid om naar uw profiel te schrijven.
Variabelegroepen vso.variablegroups_read Variabelegroepen (lezen) Hiermee verleent u de mogelijkheid om variabelegroepen te lezen.
vso.variablegroups_write Variabelegroepen (lezen, maken) Verleent de mogelijkheid om variabele groepen te lezen en te maken.
vso.variablegroups_manage Variabelegroepen (lezen, maken en beheren) Biedt de mogelijkheid om variabelengroepen te lezen, te maken en te beheren.
Wiki vso.wiki Wiki (lezen) Biedt de mogelijkheid om wiki's, wikipagina's en wikibijlagen te lezen. Biedt ook de mogelijkheid om wikipagina's te zoeken.
vso.wiki_write Wiki (lezen en schrijven) Biedt de mogelijkheid om wiki's, wikipagina's en wikibijlagen te lezen, te maken en bij te werken.
Werkitems vso.work Werkitems (gelezen) Biedt de mogelijkheid om werkitems, query's, borden, gebieds- en iteratiepaden en andere metagegevens voor werkitems te lezen. Biedt ook de mogelijkheid om query's uit te voeren, werkitems te zoeken en meldingen te ontvangen over gebeurtenissen van werkitems via servicehook.
vso.work_write Werkitems (lezen en schrijven) Biedt de mogelijkheid om werkitems en -query's te lezen, te maken en bij te werken, metagegevens van het bord bij te werken, gebieds- en iteratiepaden te volgen, andere metagegevens voor werkitems bij te houden, query's uit te voeren en meldingen te ontvangen over werkitems via servicehook.
vso.work_full Werkitems (volledig) Verleent volledige toegang tot werkitems, query's, achterstanden, plannen en metagegevens voor het bijhouden van werkitems. Biedt ook de mogelijkheid om meldingen te ontvangen over gebeurtenissen van werkitems via servicehook.
Gebruikersimitatie user_impersonation Gebruikersimitatie Volledige toegang tot REST API's van Visual Studio Team Services. Vraag en/of toestemming voor dit bereik met voorzichtigheid omdat het zeer krachtig is!

Het bereik van de gepubliceerde extensie wijzigen

U kunt het bereik van een gepubliceerde extensie wijzigen. Als u uw extensie eerder hebt geïnstalleerd (en de vorige set bereiken hebt geautoriseerd), moet u de nieuwe bereiken autoriseren voordat u een upgrade naar de nieuwste versie kunt uitvoeren.

In de sectie Actie vereist van de hub Extensie-instellingen ziet u een gebruiker die, indien van toepassing, geïnstalleerde extensies autorisatie vereisen:

bereikwijziging

Een beheerder kan vervolgens de nieuwe set bereiken controleren en autoriseren:

scope-change-dialog

Installatiedoelen

Zoals de naam al aangeeft, definiëren installatiedoelen de producten en services waar u uw extensie kunt installeren. Microsoft.VisualStudio.Services is het meest voorkomende installatiedoel en geeft aan dat de extensie kan worden geïnstalleerd in Azure DevOps.

De installatiedoelen voor een extensie of integratie worden opgegeven via het targets veld in het manifest.

Ondersteunde id's voor extensies:

  • Microsoft.VisualStudio.Services.Cloud: wordt geïnstalleerd in Azure DevOps Services
  • Microsoft.TeamFoundation.Server: wordt geïnstalleerd in Azure DevOps Server
  • Microsoft.VisualStudio.Services: installeert in beide. Snelkoppeling voor Microsoft.VisualStudio.Services.Cloud en Microsoft.TeamFoundation.Server versie [14.2,)

Ondersteunde id's voor integraties:

  • Microsoft.VisualStudio.Services.Cloud.Integration: integreert met Azure DevOps Services
  • Microsoft.TeamFoundation.Server.Integration: integreert met Azure DevOps Server
  • Microsoft.VisualStudio.Services.Integration: integreert met beide. Snelkoppeling voor Microsoft.VisualStudio.Services.Cloud.Integration en Microsoft.TeamFoundation.Server.Integration

Zie Uitbreidbaarheidspunten voor meer informatie.

Voorbeelden van installatiedoelen

Voorbeeld: Extensie die werkt met Azure DevOps

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

Voorbeeld: Extensie die alleen werkt met Azure DevOps Services

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

Installatiedoelen kunnen ook worden gebruikt in het manifest van integraties. Bijvoorbeeld producten, apps of hulpprogramma's waarmee wordt gewerkt, maar die niet worden geïnstalleerd in Azure DevOps.

Voorbeeld: Integratie die werkt met Azure DevOps

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

Voorbeeld: Integratie die alleen werkt met Azure DevOps Server

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

Doelversies van de installatie

Sommige installatiedoel-id's, zoals Microsoft.TeamFoundation.Server en Microsoft.TeamFoundation.Server.Integration, ondersteunen een optioneel versiebereik. Dit optionele versiebereik verduidelijkt verder de ondersteunde releases van de extensie of integratie wordt ondersteund.

De versie- of versiebereik wordt opgegeven via het version veld op het doelobject voor de installatie. Deze waarde kan een van de volgende zijn:

  • Een specifieke versie, bijvoorbeeld: 15.0 (alleen 2017 RTM)
  • Een reeks ondersteunde versies, bijvoorbeeld: [14.0) (2015 RTM en hoger), [14.3,15.1] (2015 Update 3 tot en met 2017 Update 1). Bereikwaarden worden verfijnd met behulp van:
    • [: minimale versie inclusief
    • ]: maximale versie inclusief
    • (: minimale versie exclusief
    • ): exclusief maximale versie

Versienummers voor Azure DevOps Server:

Vrijgeven Releases Versie
2010 Alle releases 10.0
2012 Alle releases 11,0
2013 RTM en updates 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM en updates 14.0, 14.1, 14.2, 14.3
2017 RTM en updates 15.0, 15.1
2018 RTM en updates 16.0
2019 RTM en updates 17,0
2020 RTM en updates 18,0

Voorbeelden van versies

Voorbeeld: Extensie die werkt met Azure DevOps

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

Snelkoppelingen

Microsoft.VisualStudio.Services is een snelkoppeling voor Azure DevOps.

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

is gelijk aan:

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

Installatiedoelen en -eisen gebruiken

Installatiedoelen en -eisen worden samen gebruikt om gebruikers te presenteren met een juiste weergave van de producten/services waarmee uw uitbreiding of integratie compatibel is. Als u bijvoorbeeld een installatiedoel opgeeft van Microsoft.VisualStudio.Services een vraag naar api-version/3.0 middelen die de extensie gebruikt met Azure DevOps.

Tip

Zie de REST API-verwijzing voor meer informatie over REST API's.

Voorbeeld: Extensie die gebruikmaakt van api's van versie 3.0

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

Wordt omgezet in de volgende installatiedoelen:

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

Voorbeeld: Integratie die gebruikmaakt van api's van versie 2.0

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

Wordt omgezet in de volgende installatiedoelen:

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

Eisen

Met de vereisten kunt u mogelijkheden en andere functies opgeven die vereist zijn voor uw extensie. U kunt deze vereisten gebruiken om te beperken waar uw extensie kan worden gepubliceerd of geïnstalleerd.

Vereisten worden gebruikt door Visual Studio Marketplace om de producten en omgevingen te vermelden waarmee uw extensie compatibel is, zodat klanten kunnen begrijpen of uw extensie bijvoorbeeld werkt met hun versie van Azure DevOps.

Zie het volgende voorbeeld van hoe de vereisten worden opgegeven in het extensiemanifest.

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

In dit voorbeeld vereist de extensie versie 3.0 van de API's, wat betekent dat deze alleen kan worden geïnstalleerd in Azure DevOps. Ook moet de ms.vss-dashboards-web extensie (en widget-catalog de bijbehorende bijdrage) in de verzameling worden geïnstalleerd (en ingeschakeld) voordat uw extensie kan worden geïnstalleerd.

Ondersteunde vereisten

Type Description Gecontroleerd bij publiceren? Gecontroleerd bij installatie?
environment/cloud Vereist uitvoering in een cloudomgeving Ja Ja
environment/onprem Vereist dat deze wordt uitgevoerd in een on-premises omgeving Ja Ja
api-version/{version} Vereist een specifieke API-versie (minimaal) Nr. Ja
extension/{id} Vereist dat een specifieke extensie is geïnstalleerd/ingeschakeld Nr. Ja
contribution/{id} Vereist dat een specifieke bijdrage beschikbaar is Nr. Ja
contributionType/{id} Vereist dat een specifiek type bijdrage beschikbaar is Nr. Ja

Notitie

  • Gebruik environment/cloud en environment/onprem alleen wanneer uw extensie topologie-gerelateerde vereisten heeft die in die specifieke omgeving moeten worden uitgevoerd.
  • extension, contributionen contributionType de eisen worden geëvalueerd tijdens de installatie en vereisen dat de opgegeven extensie al is geïnstalleerd en ingeschakeld in de organisatie/verzameling.

Bestanden

In files de sectie wordt verwezen naar alle bestanden die u wilt opnemen in uw extensie. U kunt zowel mappen als afzonderlijke bestanden toevoegen:

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

Eigenschappen

Eigenschappen voor de sectie Bestanden:

  • pad - Pad naar resource op schijf, die kan relatief zijn ten opzichte van uw hoofdmap.
  • adresseerbaar – (optioneel) Ingesteld op true als u wilt dat uw bestand URL-adresseerbaar is. De standaardwaarde is onwaar.
  • packagePath : (optioneel) Pad naar de resource binnen het pakket. Standaard ingesteld op het relatieve pad op schijf vanuit uw hoofdmap.
  • contentType – (optioneel) MIME-type van het bestand. Standaard ingesteld op een schatting op basis van de bestandsextensie en besturingssysteeminstellingen.
  • assetType – (optioneel) Geef de waarde op van het kenmerk Type van de assetvermelding in het VSIX-manifest. Kan ook een matrix van tekenreeksen zijn, in welk geval meerdere assetvermeldingen worden toegevoegd voor dit bestand. Standaard ingesteld op packagePath.
  • lang – (optioneel) Taal van deze asset. Gelokaliseerde bestanden worden geleverd op basis van de header Accept-Language. Laat leeg om aan te geven dat dit bestand de standaardtaal (of terugval) heeft. Gelokaliseerde versies van hetzelfde bestand moeten hetzelfde assetType hebben.

Bijdragen

Elke bijdragevermelding heeft de volgende eigenschappen:

  • id - Een referentie-id (tekenreeks) voor de bijdrage. De id van elke bijdrage moet uniek zijn binnen een extensie. Zie verwijzingen naar bijdragen en typen.
  • type : de id van het contributionType van deze bijdrage.
  • description - (Optioneel) Een tekenreeks die beschrijft wat de bijdrage levert.
  • doelen : een matrix met bijdrage-id's waarop de bijdrage is gericht (bijdragen). Zie Targeting-bijdragen.
  • properties - (Optioneel) Een object dat eigenschappen bevat voor de bijdrage zoals gedefinieerd in het bijdragetype.

Zie het overzicht van het bijdragemodel voor meer informatie.

Bijdragetypen

Elke bijdragevermelding heeft de volgende eigenschappen:

  • id - Een verwijzings-id (tekenreeks) voor het bijdragetype. De id van elk bijdragetype moet uniek zijn binnen een extensie. Zie verwijzingen naar bijdragen en typen.
  • name - De beschrijvende naam van het bijdragetype.
  • description - (Optioneel) Een tekenreeks die meer details beschrijft waarvoor het bijdragetype is bedoeld.
  • properties - (Optioneel) Een woordenlijst waarmee eigenschapsnamen worden toegewezen aan eigenschapsbeschrijvingen. Deze eigenschappen beschrijven de vereiste en optionele eigenschappen die bijdragen van dit type kunnen gebruiken.

Beschrijvingen van eigenschappen hebben de volgende eigenschappen:

  • description - (Optioneel) Een tekenreeks die beschrijft waarvoor de eigenschap wordt gebruikt.
  • required - (Optioneel) Een Booleaanse waarde, die indien waar aangeeft dat de eigenschap is vereist voor alle bijdragen van dit type.
  • type : het type waarde dat de eigenschap kan hebben, wat een tekenreeks, uri, guid, booleaanse waarde, geheel getal, dubbele waarde, datum/tijd, matrix of object kan zijn.

Zie het overzicht van het bijdragemodel voor meer informatie.

Verwijzingen naar bijdragen en typen

Gebruik unieke id's om te verwijzen naar bijdragen en bijdragetypen. Verwijzingstypen met de type eigenschap en verwijzen naar andere bijdragen met de targets eigenschap.

  • Een volledige bijdrageverwijzing bevat de uitgever-id, extensie-id en bijdrage/type-id, gescheiden door een punt (.). Is bijvoorbeeld ms.vss-web.hub de volledige id voor de bijdrage met de id 'hub' in de extensie 'vss-web' die is gepubliceerd door de uitgever 'ms' (Microsoft).
  • Relatieve bijdrageverwijzingen kunnen worden gebruikt in een uitbreidingsmanifest voor de verwijzing van een bijdrage naar een andere bijdrage of bijdragetype binnen diezelfde uitbreiding. In dit geval zijn de uitgevers- en extensie-id's NIET opgenomen en is de id een punt (.) gevolgd door de bijdrage-id. '.hub' kan bijvoorbeeld worden gebruikt in de extensie 'vss-web' die eerder is vermeld als een snelkoppeling voor 'ms.vss-web.hub'.

Bijdragen instellen

Sommige bijdragen fungeren als containers waarop andere bijdragen betrekking hebben.

  • Hub-bijdragen kunnen zich richten op Hub-groepen. Wanneer een pagina wordt weergegeven, worden in de webgebruikersinterface alle Hub-bijdragen weergegeven die zijn gericht op de geselecteerde hubgroep. Hubgroepen richten zich op een hubgroepverzameling, die een set hubgroepen definieert die worden weergegeven in een bepaald navigatiegebied, bijvoorbeeld beheerpagina's op projectniveau.
  • Verschillende soorten bijdragen kunnen zich richten op menu's: actie, hyperlinkactie en actieprovider. Acties en hyperlinkacties bieden items voor één menu-item. Een actieprovider kan meerdere dynamische menu-items bieden. Voor een bepaald menu worden items samengevoegd voor alle bijdragen (van elk van deze typen) die gericht zijn op die specifieke menubijdrage.

Een hubpictogram toevoegen

Raadpleeg de richtlijnen voor het hubpictogram voor meer informatie over het toevoegen van een pictogram aan uw hub.

Ondersteunde badgeservices

Marketplace ondersteunt alleen badges van de volgende vertrouwde services:

  • 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/

Notitie

Vervang 'vsmarketplacebadge.apphb.com' door 'vsmarketplacebadges.dev'.

Als u een badge van een andere service wilt weergeven, neemt u contact op met vsmarketplace@microsoft.com.

Voorbeeldmanifest

De volgende extensie draagt een actie bij aan het contextmenu voor voltooide builds en een hub aan de build-hubgroep:

{
    "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"
            }
        }
    ]
}