Erweiterungsmanifestreferenz
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019 | TFS 2018
Jede Erweiterung verfügt über eine JSON-Manifestdatei, die grundlegende Informationen zur Erweiterung definiert. Die Datei definiert auch, wie sie die Benutzeroberfläche erweitern und verbessern kann. In diesem Artikel erfahren Sie, wie Sie ein Manifest für Ihre Erweiterung für Azure DevOps erstellen.
Tipp
Sehen Sie sich unsere neueste Dokumentation zur Erweiterungsentwicklung mit dem Azure DevOps-Erweiterungs-SDK an.
Erstellen Sie eine Datei namens vss-extension.json
im Stammverzeichnis Ihres Erweiterungsordners. Diese Datei enthält erforderliche Attribute, z. B. die ID der Erweiterung und ihre Installationsziele, in denen sie ausgeführt werden kann. Außerdem wird die Beiträge definiert, die ihre Erweiterung erstellt.
Sehen Sie sich das folgende Beispiel für ein typisches Manifest an:
{
"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"
}
]
}
Erforderliche Attribute
Diese Eigenschaften sind erforderlich:Eigenschaft | BESCHREIBUNG | Hinweise |
---|---|---|
manifestVersion | Eine Zahl, die der Version des Manifestformats entspricht. | Sollte sein 1 . |
ID | Der Bezeichner der Erweiterung. | Die ID ist eine Zeichenfolge, die zwischen Erweiterungen desselben Herausgebers eindeutig sein muss. Sie muss mit einem alphabetischen oder numerischen Zeichen beginnen und "A" bis "Z", "a" bis "z", "0" bis "9" und "-" (Bindestrich) enthalten. Beispiel: sample-extension . |
version | Eine Zeichenfolge, die die Version einer Erweiterung angibt. | Sollte das Format major.minor.patch aufweisen, z. B 0.1.2 . oder 1.0.0 . Sie können auch eine vierte Zahl für das folgende Format hinzufügen: 0.1.2.3 |
name | Ein kurzer, lesbarer Name der Erweiterung. Auf 200 Zeichen beschränkt. | Beispiel: "Fabrikam Agile Board Extension" . |
publisher | Der Bezeichner des Herausgebers. | Dieser Bezeichner muss mit dem Bezeichner übereinstimmen, unter dem die Erweiterung veröffentlicht wird. Weitere Informationen finden Sie unter Erstellen und Verwalten eines Herausgebers. |
categories | Array von Zeichenfolgen, die die Kategorien darstellen, zu denen ihre Erweiterung gehört. Es muss mindestens eine Kategorie bereitgestellt werden, und es gibt keine Beschränkung für die Anzahl der Kategorien, die Sie einschließen können. | Gültige Werte: Azure Repos , Azure Boards , Azure Pipelines , Azure Test Plans und Azure Artifacts .Hinweise:
|
targets | Die Produkte und Dienste, die von Ihrer Integration oder Erweiterung unterstützt werden. Weitere Informationen finden Sie unter Installationsziele. | Ein Array von -Objekten, wobei jedes Objekt über ein id Feld verfügt, das eines der folgenden Angibt:
|
Beispiele für erforderliche Attribute
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
Optionale Attribute
Laufzeitattribute
Eigenschaft | BESCHREIBUNG | Hinweise |
---|---|---|
Bereiche | Ein Array von Autorisierungsbereichen (Zeichenfolgen), die für Ihre Erweiterung erforderlich sind. | Und gibt beispielsweise an, vso.work vs.code_write dass Ihre Erweiterung schreibgeschützten Zugriff auf Arbeitselemente und Lese-/Schreibzugriff auf Quellcode (und die zugehörige Ressource) benötigt. Bereiche werden dem Benutzer bei der Installation der Erweiterung angezeigt. Weitere Informationen finden Sie in der vollständigen Liste der Bereiche. |
Anforderungen | Ein Array von Anforderungen (Zeichenfolgen), das die funktionen auflistet, die für Ihre Erweiterung erforderlich sind. | Gibt beispielsweise an, api-version/3.0 dass Ihre Erweiterung Version 3.0-APIs verwendet und daher nicht in älteren Produkten ausgeführt werden kann, die diese Version nicht unterstützen. Weitere Informationen finden Sie in der vollständigen Liste der Anforderungen. |
baseUri | (Optional) Basis-URL für alle relativen URLs, die durch die Beiträge der Erweiterung angegeben werden. | Beispiel: https://myapp.com/{{account.name}}/ . Diese Eigenschaft sollte leer bleiben, wenn der Inhalt Ihrer Erweiterung mit Ihrer Erweiterung gepackt ist. |
Beiträge | Ein Array von Beiträge zum System. | |
contributionTypes | Ein Array von Beitragstypen, die von der Erweiterung definiert werden |
{
"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"
}
}
]
}
Ermittlungsattribute
Diese optionalen Eigenschaften helfen Benutzern, Ihre Erweiterung zu ermitteln und zu erfahren:
Eigenschaft | BESCHREIBUNG | Hinweise |
---|---|---|
Beschreibung | Einige Sätze, die die Erweiterungen beschreiben. Auf 200 Zeichen beschränkt. | Die Beschreibung sollte der "Aufzugsabstand" Ihrer Erweiterung sein– ein paar Zeilen, um Ihre Erweiterung im Marketplace zu beschreiben und die Benutzer dazu zu bringen, sie zu installieren. Sehen Sie sich das folgende Beispiel an. |
Symbole | Wörterbuch der Symbole, die die Erweiterung darstellen. | Gültige Schlüssel: default (128 x 128 Pixel) vom Typ BMP, GIF, EXIF, JPG, PNG und TIFF). Andere Schlüssel wie large (512 x 512 Pixel) können in Zukunft unterstützt werden. Der Wert jedes Schlüssels ist der Pfad zur Symboldatei in der Erweiterung. |
Tags | Array von Zeichenfolgentags, um Benutzern bei der Suche nach Ihrer Erweiterung zu helfen. | Beispiele: agile , project management , task timer usw. |
Screenshots | Array von Bildern, die nicht in Ihren Inhalt aufgenommen werden konnten. | Screenshots sind wertvoller, wenn sie in Ihren Inhalten enthalten sind, und sollten dort verwendet werden, um eine Seite mit Qualitätsmarktdetails für Ihre Erweiterung zu erstellen. Verwenden Sie Screenshots für weniger wichtige Bilder, die nicht in Ihren Inhalten enthalten sind. Jedes Bild sollte 1366 x 768 Pixel groß sein. Die path der einzelnen Elemente ist der Pfad zur Datei in der Erweiterung. |
content | Wörterbuch der Inhaltsdateien, die Ihre Erweiterung für Benutzer beschreiben. | Jede Erweiterung sollte soliden Inhalt enthalten. So zeigen Sie Benutzern, was Ihre Erweiterung tun kann. Machen Sie es reichhaltig, nutzbar, und fügen Sie bei Bedarf Screenshots hinzu. Schließen Sie eine overview.md Datei als Basisinhaltselement ein. Es wird davon ausgegangen, dass jede Datei GitHub Flavored Markdown Format aufweist. Die path der einzelnen Elemente ist der Pfad zur Markdowndatei in der Erweiterung. Gültige Schlüssel: details . Andere Schlüssel können in Zukunft unterstützt werden. |
Links | Wörterbuch der Links, die Benutzern helfen, mehr über Ihre Erweiterung zu erfahren, Support zu erhalten und zu verschieben. | Gültige Schlüssel: getstarted - erste Schritte, wie sie eingerichtet oder verwendet werden. learn – tiefere Inhalte, die Benutzern helfen, Ihre Erweiterung oder Ihren Dienst besser zu verstehen. license - Endbenutzer-Lizenzvertrag. privacypolicy - Datenschutzrichtlinie für eine Erweiterung. support – Hilfe und Support für eine Erweiterung erhalten. Der Wert jedes Schlüssels ist ein Objekt mit einem uri Feld, das die absolute URL des Links darstellt. |
Repository | Wörterbuch der Eigenschaften, die das Quellcoderepository für die Erweiterung beschreiben | Gültige Schlüssel: type - Typ des Repositorys. Beispiel: git. uri – Absolute URL des Repositorys. |
Abzeichen | Array von Links zu externen Metadaten-Badges wie TravisCI, Appveyor usw. von den genehmigten Badges-Websites | Gültige Schlüssel: href – Link, zu dem der Benutzer beim Auswählen des Badges navigiert. uri – Die absolute URL des anzuzeigenden Badgebilds. description - Beschreibung des Badges, der beim Zeigen angezeigt werden soll. |
Branding | Wörterbuch der markenbezogenen Eigenschaften. | Gültige Schlüssel: color - Primärfarbe der Erweiterung oder des Herausgebers; kann ein Hexadezimal (#ff00ff), RGB (rgb(100,200,50)) oder unterstützte HTML-Farbnamen (blau) sein. theme - ergänzt die Farbe; Verwenden Sie dunkel für dunkle Brandingfarben oder hell für hellere Brandingfarben. |
Öffentliches Markieren einer Erweiterung
Standardmäßig sind alle Erweiterungen im Azure DevOps Marketplace privat. Sie sind nur für den Herausgeber und konten sichtbar, die vom Herausgeber gemeinsam genutzt werden. Wenn Ihr Herausgeber überprüft wurde, können Sie Ihre Erweiterung öffentlich machen, indem Sie das Public
Flag in Ihrem Erweiterungsmanifest festlegen:
{
"galleryFlags": [
"Public"
]
}
Oder:
{
"public": true
}
Weitere Informationen finden Sie unter Paket/Veröffentlichen/Installieren.
Markieren einer Erweiterung als Vorschauversion
Wenn Ihre Erweiterung für Benutzer im Marketplace bereit ist, sie zu testen, sie aber noch einige Fehler ausarbeiten oder eine Funktion hinzufügen, können Sie sie als preview
markieren:
{
"galleryFlags": [
"Preview"
]
}
Markieren einer Erweiterung als kostenpflichtige Vorschau
Wenn Sie Beabsichtigen, Ihre Erweiterung im Marketplace zu verkaufen, markieren Sie sie als kostenpflichtige Vorschau. Eine als free gekennzeichnete Erweiterung kann nicht in kostenpflichtig geändert werden.
{
"galleryFlags": [
"Paid",
"Preview"
]
}
Markieren einer Erweiterung als bezahlt
Wenn Sie Ihre Erweiterung im Marketplace verkaufen möchten, können Sie sie mit dem Flag und __BYOLENFORCED
dem Paid
Tag markieren (beginnt mit zwei Unterstrichen):
{
"galleryFlags": [
"Paid"
],
"tags": [
"__BYOLENFORCED"
]
}
Sowohl das Flag __BYOLENFORCED
als auch das Paid
Tag müssen vorhanden sein, um eine Erweiterung im Marketplace als bezahlt zu kennzeichnen. Bring-Your-Own-License (BYOL) bedeutet, dass der Herausgeber der Erweiterung den Abrechnungs- und Lizenzierungsmechanismus für die Erweiterung bereitstellt, da er nicht von Microsoft für Azure DevOps-Erweiterungen bereitgestellt wird. Alle kostenpflichtigen Erweiterungen sind erforderlich, um Datenschutzrichtlinien, Supportrichtlinien und einen Endbenutzer-Lizenzvertrag zu definieren. Außerdem müssen Herausgeber Inhalte für die Registerkarte "Preise" im Marketplace wie folgt bereitstellen:
{
"content": {
"details": {
"path": "overview.md"
},
"pricing": {
"path": "pricing.md"
}
}
}
Sie müssen auch einen neuen Abschnitt in Ihrem Erweiterungsmanifest hinzufügen, um die kostenpflichtige Lizenzierung außer Kraft zu setzen. In Zukunft werden wir die kostenpflichtige Lizenzierungsüberprüfung entfernen und die Außerkraftsetzung nicht mehr erfordern. Stellen Sie vorerst sicher, dass Ihre Erweiterung wie erwartet angezeigt wird. Jede Außerkraftsetzung besteht aus einer "ID" und einem "Verhalten". Die "ID" muss mit der ID des im Manifest definierten Beiträge übereinstimmen.
"licensing": {
"overrides": [
{ "id": "my-hub", "behavior": " AlwaysInclude" }
]
}
Wenn Ihre kostenpflichtige BYOL-Erweiterung einen Testzeitraum bietet (wir empfehlen dies), können Sie die Dauer der Testversion in Tagen angeben:
{
"galleryproperties": {
"trialDays": "30"
}
}
Hinweis
Wenn Sie TFS als Ziel verwenden möchten, aber keine Download-Option für Ihre Erweiterung anzeigen möchten, fügen Sie das __DoNotDownload
Tag (beginnt mit zwei Unterstrichen) dem Erweiterungsmanifest hinzu.
Wenn Sie eine Erweiterung von der zuvor von Microsoft angebotenen Abrechnungslizenzierung & auf das BYOL-Modell umstellen, wenden Sie sich an uns, und wir stellen Ihnen die entsprechenden Schritte zur Verfügung.
Beispiel für weitere Eigenschaften
{
"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"
}
]
}
Beispiel für die Detailseite
- 1 - Beschreibung
- 2 - Symbol
- 3 - Kategorien
- 4 – Screenshots
- 5 - Inhalt (Details)
- 6 - Links
- 7. Branding
Marketplace Q & A – CustomerQnASupport-Eigenschaft
Alle Erweiterungen im Visual Studio Marketplace verfügen über einen Q&A-Abschnitt, um 1:1 öffentliche Unterhaltungen zwischen Erweiterungsbenutzern und Herausgebern zu ermöglichen. Herausgeber können zwischen Marketplace Q&A, GitHub-Problemen oder einer benutzerdefinierten Q&A-URL wählen. Sie können Q&A im Marketplace mithilfe der CustomerQnASupport-Eigenschaft im Manifest deaktivieren.
Standardumgebung (Es sind keine Änderungen am Manifest erforderlich)
- Bei Erweiterungen mit einem GitHub-Repository leitet Marketplace Benutzer im Q&A-Abschnitt an die zugehörigen GitHub-Probleme um.
- Für Erweiterungen ohne GitHub-Repository ist Marketplace Q&A aktiviert.
Verwenden Sie für eine andere Benutzeroberfläche als eine der Standardoptionen die CustomerQnASupport-Eigenschaft im Manifest.
{
"CustomerQnASupport": {
"enablemarketplaceqna": true,
"url": "http://uservoice.visualstudio.com"
}
}
Eigenschaften
Eigenschaften für den Abschnitt "Q & A Support" des Kunden:
- enablemarketplaceqna – boolesches Feld, für Marketplace oder benutzerdefinierte Q&A auf TRUE festgelegt; false zum Deaktivieren von Q&A
- url : Zeichenfolge, URL für benutzerdefinierte Q&A
Beispiele für die Verwendung von Q & A-Unterstützung
Beispiel: Erweiterung mit benutzerdefinierter Q & A
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true",
"url": "http://uservoice.visualstudio.com"
}
}
Beispiel: Erweiterung mit GitHub-Repository, aber Verwendung von Marketplace Q & A anstelle von GitHub-Problemen
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true"
}
}
Beispiel: Erweiterung zum Deaktivieren des Q & A-Abschnitts
{
"CustomerQnASupport": {
"enablemarketplaceqna":"false"
}
}
Bereiche
Ihre Erweiterung kann einen oder mehrere Bereiche angeben. Bereiche steuern, auf welche Ressourcen ihre Erweiterung zugreifen kann und welche Vorgänge Ihre Erweiterung mit diesen Ressourcen ausführen darf. Die Bereiche, die Sie in Ihrem Erweiterungsmanifest angeben, sind die Bereiche, die für Zugriffstoken festgelegt sind, die für Ihre Erweiterung ausgestellt werden. Weitere Informationen finden Sie unter Authentifizierung und Sicherheit.
Wenn keine Bereiche angegeben sind, erhalten Erweiterungen nur Zugriff auf Benutzerprofil- und Erweiterungsdaten.
Unterstützte Bereiche
Category | `Scope` | Name | BESCHREIBUNG |
---|---|---|---|
Agent-Pools | vso.agentpools |
Agentpools (lesen) | Ermöglicht das Anzeigen von Aufgaben, Pools, Warteschlangen, Agents und aktuell ausgeführten oder kürzlich abgeschlossenen Aufträgen für Agents. |
vso.agentpools_manage |
Agent-Pools (lesen, verwalten) | Gewährt die Möglichkeit, Pools, Warteschlangen und Agents zu verwalten. | |
vso.environment_manage |
Umgebung (lesen, verwalten) | Ermöglicht die Verwaltung von Pools, Warteschlangen, Agents und Umgebungen. | |
Analyse | vso.analytics |
Analyse (lesen) | Gewährt die Möglichkeit, Analysedaten abzufragen. |
Überwachung | vso.auditlog |
Überwachungsprotokoll (lesen) | Gewährt Benutzern die Möglichkeit, das Überwachungsprotokoll zu lesen. |
vso.auditstreams_manage |
Überwachungsdatenströme (lesen) | Gewährt Benutzern die Möglichkeit, Überwachungsdatenströme zu verwalten. | |
Build | vso.build |
Build (lesen) | Ermöglicht den Zugriff auf Buildartefakte, einschließlich Buildergebnissen, Definitionen und Anforderungen, sowie die Möglichkeit, Benachrichtigungen über Buildereignisse über Diensthooks zu empfangen. |
vso.build_execute |
Erstellen (Lesen und Ausführen) | Gewährt die Möglichkeit, auf Buildartefakte zuzugreifen, einschließlich Buildergebnissen, Definitionen und Anforderungen, sowie die Möglichkeit, einen Build in die Warteschlange zu stellen, Buildeigenschaften zu aktualisieren und Benachrichtigungen über Buildereignisse über Diensthooks zu empfangen. | |
Code | vso.code |
Code (Lesen) | Ermöglicht das Lesen von Quellcode und Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Code zu suchen und über Versionskontrollereignisse über Diensthooks benachrichtigt zu werden. |
vso.code_write |
Code (Lese- und Schreibzugriff) | Ermöglicht das Lesen, Aktualisieren und Löschen von Quellcode, den Zugriff auf Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Ermöglicht außerdem das Erstellen und Verwalten von Pull Requests und Code Reviews sowie das Empfangen von Benachrichtigungen zu Versionskontrollereignissen über Diensthooks. | |
vso.code_manage |
Code (Lesen, Schreiben und Verwalten) | Ermöglicht das Lesen, Aktualisieren und Löschen von Quellcode, den Zugriff auf Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pull Requests und Code Reviews zu erstellen und zu verwalten sowie Benachrichtigungen zu Versionskontrollereignissen über Diensthooks zu erhalten. | |
vso.code_full |
Code (vollständig) | Gewährt vollzugriff auf Quellcode, Metadaten zu Commits, Changesets, Branches und anderen Versionskontrollartefakten. Bietet außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pull Requests und Code Reviews zu erstellen und zu verwalten sowie Benachrichtigungen zu Versionskontrollereignissen über Diensthooks zu erhalten. Umfasst auch eingeschränkte Unterstützung für Client OM-APIs. | |
vso.code_status |
Code (status) | Gewährt die Möglichkeit, Commits und Pull Request-status zu lesen und zu schreiben. | |
Verbundener Server | vso.connected_server |
Verbundener Server | Gewährt die Möglichkeit, auf Endpunkte zuzugreifen, die von einem lokalen verbundenen Server benötigt werden. |
Ansprüche | vso.entitlements |
Berechtigungen (Lesen) | Bietet schreibgeschützten Zugriff auf den Lizenzierungsberechtigungsendpunkt, um Kontoberechtigungen abzurufen. |
vso.memberentitlementmanagement |
MemberEntitlement Management (read) | Gewährt die Möglichkeit, Benutzer, ihre Lizenzen sowie Projekte und Erweiterungen zu lesen, auf die sie zugreifen können. | |
vso.memberentitlementmanagement_write |
MemberEntitlement-Verwaltung (Schreiben) | Gewährt die Möglichkeit, Benutzer, deren Lizenzen sowie Projekte und Erweiterungen zu verwalten, auf die sie zugreifen können. | |
Erweiterungen | vso.extension |
Erweiterungen (lesen) | Gewährt die Möglichkeit, installierte Erweiterungen zu lesen. |
vso.extension_manage |
Erweiterungen (Lesen und Verwalten) | Gewährt die Möglichkeit zum Installieren, Deinstallieren und Ausführen anderer administrativer Aktionen für installierte Erweiterungen. | |
vso.extension.data |
Erweiterungsdaten (lesen) | Ermöglicht das Lesen von Daten (Einstellungen und Dokumenten), die von installierten Erweiterungen gespeichert sind. | |
vso.extension.data_write |
Erweiterungsdaten (Lese- und Schreibzugriff) | Ermöglicht das Lesen und Schreiben von Daten (Einstellungen und Dokumente), die von installierten Erweiterungen gespeichert sind. | |
Graphidentität & | vso.graph |
Graph (lesen) | Ermöglicht das Lesen von Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen. |
vso.graph_manage |
Graph (verwalten) | Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen sowie Benutzer, Gruppen hinzuzufügen und Gruppenmitgliedschaften zu verwalten. | |
vso.identity |
Identität (Lesen) | Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen. | |
vso.identity_manage |
Identität (Verwalten) | Ermöglicht das Lesen, Schreiben und Verwalten von Identitäten und Gruppen. | |
Auslastungstest | vso.loadtest |
Auslastungstest (Lesen) | Gewährt die Möglichkeit, Ihre Auslastungstestausführungen, Testergebnisse und APM-Artefakte zu lesen. |
vso.loadtest_write |
Auslastungstest (Lese- und Schreibzugriff) | Ermöglicht das Erstellen und Aktualisieren von Auslastungstestausführungen sowie das Lesen von Metadaten, einschließlich Testergebnissen und APM-Artefakten. | |
Computergruppe | vso.machinegroup_manage |
Bereitstellungsgruppe (lesen, verwalten) | Bietet die Möglichkeit, Bereitstellungsgruppen und Agentpools zu verwalten. |
Marketplace | vso.gallery |
Marketplace | Gewährt Lesezugriff auf öffentliche und private Elemente und Herausgeber. |
vso.gallery_acquire |
Marketplace (erwerben) | Gewährt Lesezugriff und die Möglichkeit, Elemente zu erwerben. | |
vso.gallery_publish |
Marketplace (veröffentlichen) | Gewährt Lesezugriff und die Möglichkeit zum Hochladen, Aktualisieren und Freigeben von Elementen. | |
vso.gallery_manage |
Marketplace (verwalten) | Gewährt Lesezugriff und die Möglichkeit, Elemente und Herausgeber zu veröffentlichen und zu verwalten. | |
Benachrichtigungen | vso.notification |
Benachrichtigungen (lesen) | Bietet Lesezugriff auf Abonnements und Ereignismetadaten, einschließlich filterbarer Feldwerte. |
vso.notification_write |
Benachrichtigungen (Schreiben) | Bietet Lese- und Schreibzugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. | |
vso.notification_manage |
Benachrichtigungen (verwalten) | Bietet Lese-, Schreib- und Verwaltungszugriff auf Abonnements und Lesezugriff auf Ereignismetadaten, einschließlich filterbarer Feldwerte. | |
vso.notification_diagnostics |
Benachrichtigungen (Diagnose) | Bietet Zugriff auf benachrichtigungsbezogene Diagnoseprotokolle und die Möglichkeit, Diagnose für einzelne Abonnements zu aktivieren. | |
Verpackung | vso.packaging |
Verpackung (lesen) | Gewährt die Möglichkeit, Feeds und Pakete zu lesen. |
vso.packaging_write |
Packen (Lesen und Schreiben) | Gewährt die Möglichkeit, Feeds und Pakete zu erstellen und zu lesen. | |
vso.packaging_manage |
Verpacken (Lesen, Schreiben und Verwalten) | Gewährt die Möglichkeit, Feeds und Pakete zu erstellen, zu lesen, zu aktualisieren und zu löschen. | |
Pipelineressourcen | vso.pipelineresources_use |
Pipelineressourcen (Verwendung) | Gewährt die Möglichkeit, die Anforderung einer Pipeline zur Verwendung einer geschützten Ressource zu genehmigen: Agentpool, Umgebung, Warteschlange, Repository, sichere Dateien, Dienstverbindung und Variablengruppe. |
vso.pipelineresources_manage |
Pipelineressourcen (Verwenden und Verwalten) | Gewährt die Möglichkeit, eine geschützte Ressource oder die Anforderung einer Pipeline zur Verwendung einer geschützten Ressource zu verwalten: Agentpool, Umgebung, Warteschlange, Repository, sichere Dateien, Dienstverbindung und Variablengruppe. | |
Projekt und Team | vso.project |
Projekt und Team (Lesen) | Gewährt die Möglichkeit, Projekte und Teams zu lesen. |
vso.project_write |
Projekt und Team (Lesen und Schreiben) | Gewährt die Möglichkeit, Projekte und Teams zu lesen und zu aktualisieren. | |
vso.project_manage |
Projekt und Team (Lesen, Schreiben und Verwalten) | Gewährt die Möglichkeit, Projekte und Teams zu erstellen, zu lesen, zu aktualisieren und zu löschen. | |
Release | vso.release |
Release (lesen) | Ermöglicht das Lesen von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung. |
vso.release_execute |
Release (Lesen, Schreiben und Ausführen) | Ermöglicht das Lesen und Aktualisieren von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung, sowie die Möglichkeit, eine neue Version in die Warteschlange zu stellen. | |
vso.release_manage |
Release (Lesen, Schreiben, Ausführen und Verwalten) | Ermöglicht das Lesen, Aktualisieren und Löschen von Releaseartefakten, einschließlich Releases, Releasedefinitionen und Releaseumgebung sowie die Möglichkeit, eine neue Version in die Warteschlange zu stellen und zu genehmigen. | |
Sichern von Dateien | vso.securefiles_read |
Sichere Dateien (lesen) | Gewährt die Möglichkeit, sichere Dateien zu lesen. |
vso.securefiles_write |
Sichere Dateien (lesen, erstellen) | Gewährt die Möglichkeit, sichere Dateien zu lesen und zu erstellen. | |
vso.securefiles_manage |
Sichern von Dateien (Lesen, Erstellen und Verwalten) | Gewährt die Möglichkeit, sichere Dateien zu lesen, zu erstellen und zu verwalten. | |
Sicherheit | vso.security_manage |
Sicherheit (Verwalten) | Gewährt die Möglichkeit zum Lesen, Schreiben und Verwalten von Sicherheitsberechtigungen. |
Verwenden einer Dienstverbindung | vso.serviceendpoint |
Dienstendpunkte (lesen) | Gewährt die Möglichkeit, Dienstendpunkte zu lesen. |
vso.serviceendpoint_query |
Dienstendpunkte (Lesen und Abfragen) | Gewährt die Möglichkeit, Dienstendpunkte zu lesen und abzufragen. | |
vso.serviceendpoint_manage |
Dienstendpunkte (Lesen, Abfragen und Verwalten) | Ermöglicht das Lesen, Abfragen und Verwalten von Dienstendpunkten. | |
Einstellungen | vso.settings |
Einstellungen (lesen) | Gewährt die Möglichkeit, Einstellungen zu lesen. |
vso.settings_write |
Einstellungen (Lese- und Schreibzugriff) | Gewährt die Möglichkeit, Einstellungen zu erstellen und zu lesen. | |
Symbols | vso.symbols |
Symbole (lesen) | Gewährt die Möglichkeit, Symbole zu lesen. |
vso.symbols_write |
Symbole (Lesen und Schreiben) | Gewährt die Möglichkeit, Symbole zu lesen und zu schreiben. | |
vso.symbols_manage |
Symbole (Lesen, Schreiben und Verwalten) | Gewährt die Möglichkeit, Symbole zu lesen, zu schreiben und zu verwalten. | |
Aufgabengruppen | vso.taskgroups_read |
Aufgabengruppen (lesen) | Gewährt die Möglichkeit, Aufgabengruppen zu lesen. |
vso.taskgroups_write |
Aufgabengruppen (lesen, erstellen) | Gewährt die Möglichkeit, Aufgabengruppen zu lesen und zu erstellen. | |
vso.taskgroups_manage |
Aufgabengruppen (Lesen, Erstellen und Verwalten) | Gewährt die Möglichkeit, Taskgruppen zu lesen, zu erstellen und zu verwalten. | |
Teamdashboard | vso.dashboards |
Teamdashboards (lesen) | Gewährt die Möglichkeit, Team- Dashboard Informationen zu lesen. |
vso.dashboards_manage |
Teamdashboards (verwalten) | Gewährt die Möglichkeit, Team-Dashboard Informationen zu verwalten. | |
Testverwaltung | vso.test |
Testverwaltung (lesen) | Ermöglicht das Lesen von Testplänen, Fällen, Ergebnissen und anderen Artefakten im Zusammenhang mit der Testverwaltung. |
vso.test_write |
Testverwaltung (Lese- und Schreibzugriff) | Ermöglicht das Lesen, Erstellen und Aktualisieren von Testplänen, Fällen, Ergebnissen und anderen Artefakten im Zusammenhang mit der Testverwaltung. | |
Threads | vso.threads_full |
PR-Threads | Gewährt die Möglichkeit zum Lesen und Schreiben von Pull Request-Kommentarthreads. |
Token | vso.tokens |
Delegierte Autorisierungstoken | Gewährt Benutzern die Möglichkeit, delegierte Autorisierungstoken zu verwalten. |
vso.tokenadministration |
Tokenverwaltung | Gewährt organization Administratoren die Möglichkeit, vorhandene Token zu verwalten (anzuzeigen und zu widerrufen). | |
Benutzerprofil | vso.profile |
Benutzerprofil (Lesen) | Gewährt die Möglichkeit, Ihr Profil, Ihre Konten, Sammlungen, Projekte, Teams und andere Organisationsartefakte auf oberster Ebene zu lesen. |
vso.profile_write |
Benutzerprofil (Schreiben) | Gewährt die Möglichkeit, in Ihr Profil zu schreiben. | |
Variablengruppen | vso.variablegroups_read |
Variablengruppen (lesen) | Gewährt die Möglichkeit, Variablengruppen zu lesen. |
vso.variablegroups_write |
Variablengruppen (lesen, erstellen) | Gewährt die Möglichkeit, Variablengruppen zu lesen und zu erstellen. | |
vso.variablegroups_manage |
Variablengruppen (Lesen, Erstellen und Verwalten) | Gewährt die Möglichkeit, Variablengruppen zu lesen, zu erstellen und zu verwalten. | |
Wiki | vso.wiki |
Wiki (lesen) | Ermöglicht das Lesen von Wikis, Wiki-Seiten und Wiki-Anlagen. Gewährt auch die Möglichkeit, Wiki-Seiten zu durchsuchen. |
vso.wiki_write |
Wiki (Lesen und Schreiben) | Gewährt die Möglichkeit, Wikis, Wiki-Seiten und Wiki-Anlagen zu lesen, zu erstellen und zu aktualisieren. | |
Arbeitselemente | vso.work |
Arbeitselemente (Lesen) | Ermöglicht das Lesen von Arbeitselementen, Abfragen, Boards, Bereichs- und Iterationspfaden und anderen Metadaten zur Nachverfolgung von Arbeitselementen. Bietet außerdem die Möglichkeit, Abfragen auszuführen, Arbeitselemente zu durchsuchen und Benachrichtigungen über Arbeitselementereignisse über Diensthooks zu erhalten. |
vso.work_write |
Arbeitselemente (Lese- und Schreibzugriff) | Ermöglicht das Lesen, Erstellen und Aktualisieren von Arbeitselementen und Abfragen, aktualisieren von Boardmetadaten, Lesebereichs- und Iterationspfaden für andere Metadaten im Zusammenhang mit der Nachverfolgung von Arbeitselementen, Ausführen von Abfragen und das Empfangen von Benachrichtigungen zu Arbeitselementereignissen über Diensthooks. | |
vso.work_full |
Arbeitselemente (Lesen, Schreiben und Verwalten) | Gewährt Vollzugriff auf Arbeitselemente, Abfragen, Backlogs, Pläne und Metadaten zur Nachverfolgung von Arbeitselementen, einschließlich Prozessvorlagenimporten. Bietet auch die Möglichkeit, Benachrichtigungen über Arbeitselementereignisse über Diensthooks zu empfangen. |
Ändern des Umfangs der veröffentlichten Erweiterung
Sie können den Bereich einer veröffentlichten Erweiterung ändern. Wenn Sie ihre Erweiterung zuvor installiert haben (und den vorherigen Satz von Bereichen autorisiert haben), müssen Sie die neuen Bereiche autorisieren, bevor Sie ein Upgrade auf die neueste Version durchführen können.
Im Abschnitt Aktion erforderlich des Erweiterungseinstellungshubs wird ein Benutzer angezeigt, für den ggf. für installierte Erweiterungen eine Autorisierung erforderlich ist:
Ein Administrator kann dann den neuen Satz von Bereichen überprüfen und autorisieren:
Installationsziele
Wie der Name schon sagt, definieren Installationsziele die Produkte und Dienste, in denen Sie Ihre Erweiterung installieren können. Microsoft.VisualStudio.Services
ist das häufigste Installationsziel und gibt an, dass die Erweiterung in Azure DevOps installiert werden kann.
Die Installationsziele für eine Erweiterung oder Integration werden über das targets
Feld im Manifest angegeben.
Unterstützte Bezeichner für Erweiterungen:
Microsoft.VisualStudio.Services.Cloud
: wird in Azure DevOps Services installiert.Microsoft.TeamFoundation.Server
: wird in TFS installiert.Microsoft.VisualStudio.Services
: wird in beiden installiert. Verknüpfung fürMicrosoft.VisualStudio.Services.Cloud
undMicrosoft.TeamFoundation.Server
Version[14.2,)
Unterstützte Bezeichner für Integrationen:
Microsoft.VisualStudio.Services.Cloud.Integration
: integriert in Azure DevOps ServicesMicrosoft.TeamFoundation.Server.Integration
: integriert in TFSMicrosoft.VisualStudio.Services.Integration
: ist in beides integriert. Tastenkombination fürMicrosoft.VisualStudio.Services.Cloud.Integration
undMicrosoft.TeamFoundation.Server.Integration
Weitere Informationen finden Sie unter Erweiterbarkeitspunkte.
Beispiele für Installationsziele
Beispiel: Erweiterung, die mit Azure DevOps funktioniert
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
Beispiel: Erweiterung, die nur mit Azure DevOps Services funktioniert
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
}
]
}
Installationsziele können auch im Manifest von Integrationen verwendet werden. Beispielsweise Produkte, Apps oder Tools, die mit funktionieren, aber nicht in Azure DevOps installiert werden.
Beispiel: Integration, die mit Azure DevOps funktioniert
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
]
}
Beispiel: Integration, die nur mit TFS funktioniert
{
"targets": [
{
"id": "Microsoft.TeamFoundation.Server.Integration"
}
]
}
Installationszielversionen
Einige Installationszielbezeichner wie Microsoft.TeamFoundation.Server
und Microsoft.TeamFoundation.Server.Integration
unterstützen einen optionalen Versionsbereich. Dieser optionale Versionsbereich verdeutlicht die unterstützten Releases, für die die Erweiterung oder Integration unterstützt wird.
Die Version oder der Versionsbereich wird über das version
Feld im Installationszielobjekt angegeben. Dieser Wert kann wie folgt sein:
- Eine bestimmte Version, z. B.:
15.0
(nur 2017 RTM) - Eine Reihe unterstützter Versionen, z. B.:
[14.0)
(2015 RTM und höher),[14.3,15.1]
(Update 3 bis 2017 Update 1) Bereichswerte werden wie folgt optimiert:[
: Mindestversion inklusive]
: Maximale Version inklusive(
: Mindestversion exklusiv)
: maximale Version exklusiv
Versionsnummern für Azure DevOps Server:
Freigabe | Releases | Version |
---|---|---|
2010 | Alle Releases | 10.0 |
2012 | Alle Releases | 11.0 |
2013 | RTM und Updates | 12.0, 12.1, 12.2, 12.3, 12.4 |
2015 | RTM und Updates | 14.0, 14.1, 14.2, 14.3 |
2017 | RTM und Updates | 15.0, 15.1 |
2018 | RTM und Updates | 16,0 |
2019 | RTM und Updates | 17.0 |
2020 | RTM und Updates | 18.0 |
Beispiele für Versionen
Beispiel: Erweiterung, die mit Azure DevOps funktioniert
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
},
{
"id": "Microsoft.TeamFoundation.Server",
"version": "[15.0,)"
}
]
}
Verknüpfungen
Microsoft.VisualStudio.Services
ist eine Verknüpfung für Azure DevOps.
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
]
}
entspricht:
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Cloud"
},
{
"id": "Microsoft.TeamFoundation.Server",
"version": "[14.2,)"
}
]
}
Verwenden von Installationszielen und -anforderungen
Installationsziele und -anforderungen werden gemeinsam verwendet, um Benutzern eine korrekte Sicht auf die Produkte/Dienste zu bieten, mit denen Ihre Erweiterung oder Integration kompatibel ist. Die Angabe eines Installationsziels von Microsoft.VisualStudio.Services
mit einer Anforderung von api-version/3.0
bedeutet, dass die Erweiterung mit Azure DevOps funktioniert.
Tipp
Weitere Informationen zu REST-APIs finden Sie in der REST-API-Referenz.
Beispiel: Erweiterung, die ApIs der Version 3.0 verwendet
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"demands": [
"api-version/3.0"
]
}
Löst zu den folgenden Installationszielen auf:
Microsoft.VisualStudio.Services.Cloud
Microsoft.TeamFoundation.Server
Version:[15.0,)
Beispiel: Integration mit ApIs der Version 2.0
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
],
"demands": [
"api-version/2.0"
]
}
Löst zu den folgenden Installationszielen auf:
Microsoft.VisualStudio.Services.Cloud.Integration
Microsoft.TeamFoundation.Server.Integration
Version:[14.0,)
Forderungen
Mithilfe von Anforderungen können Sie Funktionen und andere Features angeben, die für Ihre Erweiterung erforderlich sind. Sie können diese Anforderungen verwenden, um zu begrenzen, wo Ihre Erweiterung veröffentlicht oder installiert werden kann.
Anforderungen werden vom Visual Studio Marketplace verwendet, um die Produkte und Umgebungen aufzulisten, mit denen Ihre Erweiterung kompatibel ist. So können Kunden beispielsweise nachvollziehen, ob Ihre Erweiterung mit ihrer Azure DevOps-Version funktioniert.
Sehen Sie sich das folgende Beispiel an, wie Anforderungen im Erweiterungsmanifest angegeben werden.
{
"demands": [
"api-version/3.0",
"contribution/ms.vss-dashboards-web.widget-catalog"
]
}
In diesem Beispiel erfordert die Erweiterung Version 3.0 der APIs, was bedeutet, dass sie nur in Azure DevOps installiert werden kann. Außerdem muss die ms.vss-dashboards-web
Erweiterung (und ihr widget-catalog
Beitrag) in der Sammlung installiert (und aktiviert) werden, bevor Die Erweiterung installiert werden kann.
Unterstützte Anforderungen
type | BESCHREIBUNG | Bei der Veröffentlichung aktiviert? | Bei der Installation überprüft? |
---|---|---|---|
environment/cloud |
Erfordert die Ausführung in einer Cloudumgebung. | Ja | Ja |
environment/onprem |
Erfordert die Ausführung in einer lokalen Umgebung. | Ja | Ja |
api-version/{version} |
Erfordert eine bestimmte API-Version (Minimum) | Nein | Ja |
extension/{id} |
Erfordert die Installation/Aktivierung einer bestimmten Erweiterung. | Nein | Ja |
contribution/{id} |
Erfordert, dass ein spezifischer Beitrag verfügbar ist | Nein | Ja |
contributionType/{id} |
Erfordert die Verfügbarkeit eines bestimmten Beitragstyps | Nein | Ja |
Hinweis
- Verwenden Sie
environment/cloud
undenvironment/onprem
nur, wenn Ihre Erweiterung topologiebezogene Anforderungen aufweist, die die Ausführung in dieser bestimmten Umgebung erfordern. extension
,contribution
undcontributionType
die Anforderungen werden zur Installationszeit ausgewertet und erfordert, dass die angegebene Erweiterung bereits in der organization/Sammlung installiert und aktiviert ist.
Dateien
In files
diesem Abschnitt verweisen Sie auf alle Dateien, die Sie in Ihre Erweiterung aufnehmen möchten. Sie können sowohl Ordner als auch einzelne Dateien hinzufügen:
{
"files": [
{
"path": "hello-world.html", "addressable": true
},
{
"path": "scripts", "addressable": true
},
{
"path": "images/logo.png", "addressable": true, "packagePath": "/"
}
]
}
Eigenschaften
Eigenschaften für den Abschnitt Dateien:
- pfad : Pfad zur Ressource auf dem Datenträger, der relativ zu Ihrem Stammverzeichnis sein kann.
- addressable – (optional) Legen Sie auf true fest , wenn Ihre Datei URL-adressierbar sein soll. Die Standardwerte sind false.
- packagePath – (optional) Pfad zur Ressource innerhalb des Pakets. Standardmäßig wird der relative Pfad auf dem Datenträger aus Ihrem Stammverzeichnis angegeben.
- contentType – (optional) MIME-Typ der Datei. Standardmäßig wird eine beste Schätzung basierend auf der Dateierweiterung und den Betriebssystemeinstellungen festgelegt.
- assetType – (optional) Geben Sie den Wert des Type-Attributs des Asseteintrags im VSIX-Manifest an. Kann auch ein Array von Zeichenfolgen sein. In diesem Fall werden mehrere Ressourceneinträge für diese Datei hinzugefügt. Standardmäßig wird packagePath verwendet.
- lang – (optional) Sprache dieses Assets. Lokalisierte Dateien werden basierend auf dem Accept-Language-Header bereitgestellt. Lassen Sie leer, um zu signalisieren, dass sich diese Datei in der Standardsprache (oder Fallbacksprache) befindet. Lokalisierte Versionen derselben Datei sollten denselben assetType aufweisen.
Beiträge
Jeder Beitragseintrag weist die folgenden Eigenschaften auf:
- id : Eine Verweis-ID (Zeichenfolge) für den Beitrag. Die ID jedes Beitrags muss innerhalb einer Erweiterung eindeutig sein. Weitere Informationen finden Sie unter Verweisen auf Beiträge und Typen.
- type : Die ID des BeitragTyps dieses Beitrags.
- description – (Optional) Eine Zeichenfolge, die beschreibt, was der Beitrag bereitstellt.
- targets : Ein Array von Beitrags-IDs, auf die der Beitrag abzielt (zu dem der Beitrag beiträgt). Weitere Informationen finden Sie unter Targeting Beiträge.
- Properties – (Optional) Ein Objekt, das Eigenschaften für den Beitrag enthält, wie im Beitragstyp definiert.
Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.
Beitragstypen
Jeder Beitragseintrag weist die folgenden Eigenschaften auf:
- id : Eine Verweis-ID (Zeichenfolge) für den Beitragstyp. Die ID jedes Beitragstyps muss innerhalb einer Erweiterung eindeutig sein. Weitere Informationen finden Sie unter Verweisen auf Beiträge und Typen.
- name : Der Anzeigename des Beitragstyps.
- description – (Optional) Eine Zeichenfolge, die genauer beschreibt, für welchen Beitragstyp es sich handelt.
- Eigenschaften : (Optional) Ein Wörterbuch, das Eigenschaftennamen Eigenschaftenbeschreibungen zuordnet. Diese Eigenschaften beschreiben die erforderlichen und optionalen Eigenschaften, die von Beiträge dieses Typs verwendet werden können.
Eigenschaftenbeschreibungen weisen die folgenden Eigenschaften auf:
- description : (Optional) Eine Zeichenfolge, die beschreibt, wofür die Eigenschaft verwendet wird.
- required – (Optional) Ein boolescher Wert, der bei true angibt, dass die Eigenschaft für alle Beiträge dieses Typs erforderlich ist.
- type : Der Typ des Werts, den die Eigenschaft haben kann. Dies kann Zeichenfolge, URI, guid, boolean, integer, double, dateTime, Array oder Objekt sein.
Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.
Verweisen auf Beiträge und Typen
Beiträge und Beitragstypen werden durch ihre Bezeichner referenziert. Beiträge verweisen auf Typen über die type
-Eigenschaft und verweisen über die targets
-Eigenschaft auf andere Beiträge.
- Eine vollständige Beitragsreferenz umfasst den Herausgeberbezeichner, erweiterungsbezeichner und Beitrags-/Typbezeichner, getrennt durch einen Punkt (.). Beispielsweise
ms.vss-web.hub
ist der vollständige Bezeichner für den Beitrag mit dem Bezeichner "hub" in der Erweiterung "vss-web", die vom Herausgeber "ms" (Microsoft) veröffentlicht wird. - Relative Beitragsreferenzen können innerhalb eines Erweiterungsmanifests für den Verweis eines Beitrags auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwendet werden. In diesem Fall sind die Herausgeber- und Erweiterungsbezeichner NICHT enthalten, und der Bezeichner ist ein Punkt (.) gefolgt vom Beitragsbezeichner. Beispielsweise kann ".hub" in der Erweiterung "vss-web" verwendet werden, die zuvor als Verknüpfung für "ms.vss-web.hub" erwähnt wurde.
Targeting Beiträge
Einige Beiträge als Container fungieren, die von anderen Beiträge als Ziel verwendet werden können.
- Hub-Beiträge können auf Hubgruppen abzielen. Wenn eine Seite gerendert wird, werden auf der Webbenutzeroberfläche alle Hub-Beiträge angezeigt, die auf die ausgewählte Hubgruppe abzielen. Hubgruppen zielen auf eine Hubgruppensammlung ab, die eine Gruppe von Hubgruppen definiert, die in einem bestimmten Navigationsbereich angezeigt werden, z. B. Administratorseiten auf Projektebene.
- Menüs können durch Beiträge unterschiedlicher Typen ausgerichtet werden: action, hyperlink-action und action-provider. Aktionen und Hyperlinkaktionen stellen einzelne Menüelementeinträge bereit. Ein Aktionsanbieter kann mehrere dynamische Menüelemente bereitstellen. Für ein bestimmtes Menü werden Elemente für alle Beiträge (von einem dieser Typen) aggregiert, die auf diesen spezifischen Menübeitrag abzielen.
Hinzufügen eines Hubsymbols
Informationen zum Hinzufügen eines Symbols zu Ihrem Hub finden Sie in der Anleitung zum Hubsymbol.
Unterstützte Badgedienste
Der Marketplace unterstützt nur Badges aus den folgenden vertrauenswürdigen Diensten:
- 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/
Hinweis
Ersetzen Sie "vsmarketplacebadge.apphb.com" durch "vsmarketplacebadges.dev".
Wenn Sie ein Badge eines anderen Diensts anzeigen möchten, wenden Sie sich an vsmarketplace@microsoft.com.
Beispielmanifest
Die folgende Erweiterung trägt eine Aktion zum Kontextmenü abgeschlossener Builds und einen Hub zur Buildhubgruppe bei:
{
"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"
}
}
]
}