Erweiterungsmanifestreferenz
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Jede Erweiterung verfügt über eine JSON-Manifestdatei, die grundlegende Informationen zur Erweiterung definiert. Die Datei definiert außerdem, wie sie die Oberflä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 mithilfe des Azure DevOps-Erweiterungs-SDK an.
Erstellen Sie eine Datei mit dem Namen vss-extension.json
im Stammverzeichnis Des Erweiterungsordners. Diese Datei enthält erforderliche Attribute, z. B. die ID der Erweiterung und ihre Installationsziele, wo sie ausgeführt werden kann. Es definiert auch die Beiträge, die von Ihrer Erweiterung vorgenommen werden.
Sehen Sie sich das folgende Beispiel eines typischen Manifests 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 1 lauten. |
ID | Der Bezeichner der Erweiterung. | Th 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 im Format major.minor.patch vorliegen, 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, menschlich 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. Siehe Erstellen und Verwalten eines Herausgebers. |
Kategorien | Array von Zeichenfolgen, die die Kategorien darstellen, zu denen Ihre Erweiterung gehört. Mindestens eine Kategorie muss bereitgestellt werden, und es gibt keine Beschränkung, wie viele Kategorien Sie einschließen können. | Gültige Werte: Azure Repos , , Azure Boards , Azure Pipelines , Azure Test Plans und Azure Artifacts .Hinweise:
– Wenn Sie azure DevOps-Erweiterungsaufgaben zum Veröffentlichen verwenden, stellen Sie sicher, dass ihre Version = 1.2.8 ist>. Möglicherweise müssen Sie das Erweiterungsupdate aufgrund der letzten Bereichsänderungen genehmigen. – Die zuvor erwähnten Kategorien sind nativ in Visual Studio Marketplace und Azure DevOps Server 2019 & höher vorhanden. Für Erweiterungen für frühere Versionen von TFS:
- Wenn Sie die Erweiterung direkt (d. h. nicht über den Visual Studio Marketplace) mit einem Kunden teilen möchten, der TFS <=2018 verwendet, verwenden Sie stattdessen die folgenden Kategorien: Code, Plan and track, Build and release, Test, Collaborate, and Integration. Wenn Sie beide über Visual Studio Marketplace und direkt mit einem TFS <= 2018-Kunden teilen müssen, müssen Sie zwei Erweiterungspakete haben. |
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 ein id Feld enthält, das eine der folgenden Werte angibt:
Microsoft.VisualStudio.Services (Erweiterungen, die mit Azure DevOps oder TFS arbeiten),Microsoft.TeamFoundation.Server - (Erweiterung, die mit TFS funktioniert),- Microsoft.VisualStudio.Services.Integration (Integrationen, die mit Azure DevOps oder TFS funktionieren), - Microsoft.TeamFoundation.Server.Integration (Integrationen, die mit TFS funktionieren) |
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) mit Berechtigungen, die von Ihrer Erweiterung benötigt werden. | Die Erweiterung benötigt beispielsweise vso.work vs.code_write schreibgeschützten Zugriff auf Arbeitsaufgaben und Lese-/Schreibzugriff auf Quellcode (und zugehörige Ressource). Bereiche werden dem Benutzer beim Installieren der Erweiterung angezeigt. Weitere Informationen finden Sie in der vollständigen Liste der Bereiche. |
Inanspruchnahme | Ein Array von Anforderungen (Zeichenfolgen) mit den funktionen, die von Der Erweiterung benötigt werden. | 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 Der Erweiterung mit Der Erweiterung verpackt ist. |
Beiträge | Ein Array von Beiträgen zum System. | |
contributionTypes | Ein Array von durch die Erweiterung definierten Beitragstypen |
{
"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 entdecken und zu erfahren:
Eigenschaft | BESCHREIBUNG | Hinweise |
---|---|---|
Beschreibung | Einige Sätze, die die Erweiterungen beschreiben. Auf 200 Zeichen beschränkt. | Die Beschreibung sollte der "Aufzugswinkel" Ihrer Erweiterung sein - ein paar Zeilen, um Ihre Erweiterung auf dem Marketplace zu beschreiben und die Benutzer zu installieren. Siehe das Beispiel unten |
Ikonen | 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, damit Benutzer Ihre Erweiterung finden können. | Beispiele: agile , , task timer project management , usw. |
Screenshots | Array von Bildern, die nicht in Ihre Inhalte einbezogen 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. Das path element ist der Pfad zu der Datei in der Erweiterung. |
content | Wörterbuch von 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 reich, konsumierbar, und fügen Sie bei Bedarf Screenshots hinzu. Fügen Sie eine overview.md Datei als Basisinhaltsteil hinzu. Jede Datei wird als GitHub-Format "Flavored Markdown" angenommen. Das path element ist der Pfad zur Markdown-Datei in der Erweiterung. Gültige Schlüssel: details . Andere Schlüssel können in Zukunft unterstützt werden. |
Links | Wörterbuch mit 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, damit Benutzer Ihre Erweiterung oder Ihren Dienst besser verstehen können. license – Endbenutzer-Lizenzvertrag. privacypolicy - Datenschutzrichtlinie für eine Erweiterung. support – Erhalten Sie Hilfe und Support für eine Erweiterung. Der Wert jedes Schlüssels ist ein Objekt mit einem uri Feld, bei dem es sich um die absolute URL des Links handelt. |
Repository | Wörterbuch der Eigenschaften, die das Quellcode-Repository für die Erweiterung beschreiben | Gültige Schlüssel: type - Repositorytyp. Beispiel: git. uri - Absolute URL des Repositorys. |
Kennzeichen | Array von Links zu externen Metadaten-Badges wie TravisCI, Appveyor usw. von den genehmigten Badges-Websites | Gültige Schlüssel: href – Der Benutzer navigiert beim Auswählen des Badges. uri - Die absolute URL des anzuzeigenden Signalbilds. description - Beschreibung des Signals, das beim Daraufzeigen angezeigt werden soll. |
Branding | Wörterbuch der markenbezogenen Eigenschaften. | Gültige Schlüssel: color - Primärfarbe der Erweiterung oder des Herausgebers; kann ein Hexadex (#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. |
Markieren einer öffentlichen Erweiterung
Standardmäßig sind alle Erweiterungen im Azure DevOps Marketplace privat. Sie sind nur für den Herausgeber und die Konten sichtbar, die vom Herausgeber freigegeben wurden. Wenn Ihr Herausgeber überprüft wird, können Sie Ihre Erweiterung öffentlich machen, indem Sie das Public
Kennzeichen in Ihrem Erweiterungsmanifest festlegen:
{
"galleryFlags": [
"Public"
]
}
Oder:
{
"public": true
}
Weitere Informationen finden Sie unter "Package/Publish/Install".
Markieren einer Erweiterung, die in der Vorschau angezeigt werden soll
Wenn Ihre Erweiterung für Benutzer auf dem Marketplace bereit ist, aber Sie noch einige Fehler herausarbeiten oder Funktionen hinzufügen, können Sie sie als preview
:
{
"galleryFlags": [
"Preview"
]
}
Markieren einer Erweiterung als kostenpflichtige Vorschau
Wenn Sie Ihre Erweiterung auf dem Marketplace verkaufen möchten, markieren Sie sie als kostenpflichtige Vorschau. Eine als kostenlose Erweiterung markierte Erweiterung kann nicht in kostenpflichtig geändert werden.
{
"galleryFlags": [
"Paid",
"Preview"
]
}
Markieren einer Verlängerung als bezahlt
Wenn Sie Ihre Erweiterung auf dem Marketplace verkaufen möchten, können Sie sie mit der Kennzeichnung und __BYOLENFORCED
dem Paid
Tag markieren (beginnt mit zwei Unterstrichen):
{
"galleryFlags": [
"Paid"
],
"tags": [
"__BYOLENFORCED"
]
}
Sowohl die Kennzeichnung als __BYOLENFORCED
auch das Paid
Tag müssen vorhanden sein, um eine Erweiterung als kostenpflichtig auf dem Marketplace zu markieren. Bring-Your-Own-License (BYOL) bedeutet, dass der Herausgeber der Erweiterung den Abrechnungs- und Lizenzierungsmechanismus für die Erweiterung bereitstellt, da sie von Microsoft für Azure DevOps-Erweiterungen nicht 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 Preisregisterkarte in 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 kostenpflichtige Lizenzierung außer Kraft zu setzen. In Zukunft entfernen wir die kostenpflichtige Lizenzierungsprüfung und erfordern keine Außerkraftsetzung mehr. Stellen Sie jetzt sicher, dass Die Erweiterung erwartungsgemäß angezeigt wird. Jede Außerkraftsetzung besteht aus einer "ID" und einem "Verhalten". Die "ID" muss mit der ID der 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 Länge der Testversion in Tagen angeben:
{
"galleryproperties": {
"trialDays": "30"
}
}
Hinweis
Wenn Sie Azure DevOps als Ziel verwenden möchten, aber keine Downloadoption für Ihre Erweiterung anzeigen möchten, fügen Sie das __DoNotDownload
Tag (beginnt mit zwei Unterstrichen) zum Erweiterungsmanifest hinzu.
Wenn Sie eine Erweiterung von der zuvor angebotenen Abrechnung und Lizenzierung von Microsoft zum BYOL-Modell verschieben, wenden Sie sich an uns, um geeignete Schritte zu erhalten.
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 eine Detailseite
- 1 - Beschreibung
- 2 - Symbol
- 3 - Kategorien
- 4 – Screenshots
- 5 – Inhalt (Details)
- 6 - Links
- 7 - Branding
Marketplace Q & A - CustomerQnASupport-Eigenschaft
Alle Erweiterungen auf dem Visual Studio Marketplace verfügen über einen F&A-Abschnitt, um einmalige öffentliche Unterhaltungen zwischen Erweiterungsbenutzern und Herausgebern zu ermöglichen. Herausgeber können zwischen Marketplace Q&A, GitHub-Problemen oder einer benutzerdefinierten F&A-URL wählen. Sie können Q&A im Marketplace mithilfe der CustomerQnASupport-Eigenschaft im Manifest deaktivieren.
Standardoberfläche (Es sind keine Änderungen am Manifest erforderlich)
- Für Erweiterungen mit einem GitHub-Repository leitet Marketplace Benutzer im F&A-Abschnitt zu den zugehörigen GitHub-Problemen um.
- Für Erweiterungen ohne GitHub-Repository ist Marketplace Q&A aktiviert.
Verwenden Sie für eine andere Oberfläche als eine der Standardoptionen die CustomerQnASupport-Eigenschaft im Manifest.
{
"CustomerQnASupport": {
"enablemarketplaceqna": true,
"url": "http://uservoice.visualstudio.com"
}
}
Eigenschaften
Eigenschaften für den Abschnitt "Customer Q & A Support":
- enablemarketplaceqna - boolesches Feld, für Marketplace oder benutzerdefinierte Q&A; false zum Deaktivieren von Q&A festgelegt
- url - Zeichenfolge, URL für benutzerdefinierte F&A
Beispiele für die Verwendung der Q &A-Unterstützung
Beispiel: Erweiterung mit benutzerdefinierten F & A
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true",
"url": "http://uservoice.visualstudio.com"
}
}
Beispiel: Erweiterung mit GitHub-Repository, die Verwendung von Marketplace Q &A anstelle von GitHub-Problemen
{
"CustomerQnASupport": {
"enablemarketplaceqna":"true"
}
}
Beispiel: Erweiterungsdeaktivierung des F &A-Abschnitts
{
"CustomerQnASupport": {
"enablemarketplaceqna":"false"
}
}
Bereiche
In Ihrer Erweiterung können Sie einen oder mehrere Bereiche definieren. Diese Bereiche bestimmen, auf welche Ressourcen Ihre Erweiterung zugreifen kann, und welche Vorgänge sie für diese Ressourcen ausführen dürfen. Die Bereiche, die Sie in Ihrem Erweiterungsmanifest angeben, sind die Bereiche, die für Zugriffstoken festgelegt sind, die für Ihre Erweiterung ausgegeben wurden. Weitere Informationen finden Sie unter "Authentifizierung und Sicherheit".
Wenn keine Bereiche angegeben sind, werden Erweiterungen nur Zugriff auf Benutzerprofil- und Erweiterungsdaten bereitgestellt.
Unterstützte Bereiche
Kategorie | Bereich | Name | Beschreibung |
---|---|---|---|
Agentpools | vso.agentpools |
Agentpools (lesen) | Gewährt die Möglichkeit, Aufgaben, Pools, Warteschlangen, Agents und aktuell ausgeführte oder kürzlich abgeschlossene Aufträge für Agents anzuzeigen. |
vso.agentpools_manage |
Agentpools (lesen, verwalten) | Gewährt die Möglichkeit, Pools, Warteschlangen und Agents zu verwalten. | |
vso.environment_manage |
Umgebung (lesen, verwalten) | Gewährt die Möglichkeit, Pools, Warteschlangen, Agents und Umgebungen zu verwalten. | |
Analyse | vso.analytics |
Analyse (lesen) | Gewährt die Möglichkeit, Analysedaten abzufragen. |
Überwachung | vso.auditlog |
Überwachungsprotokoll (gelesen) | 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) | Gewährt die Möglichkeit, auf Buildartefakte zuzugreifen, einschließlich Buildergebnissen, Definitionen und Anforderungen sowie die Möglichkeit, Benachrichtigungen über Buildereignisse über Dienst-Hooks zu empfangen. |
vso.build_execute |
Build (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 Dienst-Hooks zu empfangen. | |
Code | vso.code |
Code (Lesen) | Gewährt die Möglichkeit, Quellcode und Metadaten zu Commits, Changesets, Verzweigungen und anderen Versionskontrollartefakten zu lesen. Gewährt außerdem die Möglichkeit, Code zu durchsuchen und über Dienst-Hooks über Versionssteuerungsereignisse benachrichtigt zu werden. |
vso.code_write |
Code (Lesen und Schreiben) | Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionssteuerungsartefakten zuzugreifen. Gewährt außerdem die Möglichkeit, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Dienst-Hooks zu erhalten. | |
vso.code_manage |
Code (Lesen, Schreiben und Verwalten) | Gewährt die Möglichkeit, Quellcode zu lesen, zu aktualisieren und zu löschen, auf Metadaten zu Commits, Änderungenets, Verzweigungen und anderen Versionssteuerungsartefakten zuzugreifen. Gewährt außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Diensthaken zu erhalten. | |
vso.code_full |
Code (vollständig) | Gewährt vollzugriff auf Quellcode, Metadaten zu Commits, Changesets, Verzweigungen und anderen Versionskontrollartefakten. Gewährt außerdem die Möglichkeit, Coderepositorys zu erstellen und zu verwalten, Pullanforderungen und Codeüberprüfungen zu erstellen und zu verwalten und Benachrichtigungen über Versionssteuerungsereignisse über Diensthaken zu erhalten. Umfasst auch eingeschränkte Unterstützung für Client-OM-APIs. | |
vso.code_status |
Code (Status) | Gewährt die Möglichkeit, commit- und Pullanforderungsstatus 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. |
Berechtigungen | vso.entitlements |
Berechtigungen (Lesen) | Bietet schreibgeschützten Zugriff auf den Endpunkt für Lizenzierungsberechtigungen zum Abrufen von Kontoberechtigungen. |
vso.memberentitlementmanagement |
MemberEntitlement Management (lesen) | Gewährt die Möglichkeit, Benutzer, ihre Lizenzen sowie Projekte und Erweiterungen zu lesen, auf die sie zugreifen können. | |
vso.memberentitlementmanagement_write |
MemberEntitlement Management (Schreiben) | Gewährt die Möglichkeit, Benutzer, ihre 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) | Gewährt die Möglichkeit, Daten (Einstellungen und Dokumente) zu lesen, die von installierten Erweiterungen gespeichert sind. | |
vso.extension.data_write |
Erweiterungsdaten (Lese- und Schreibzugriff) | Gewährt die Möglichkeit, Daten (Einstellungen und Dokumente) zu lesen und zu schreiben, die von installierten Erweiterungen gespeichert sind. | |
Graph & Identity | vso.graph |
Graph (gelesen) | Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen. |
vso.graph_manage |
Graph (verwalten) | Gewährt die Möglichkeit, Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen zu lesen und Benutzer, Gruppen und Gruppenmitgliedschaften hinzuzufügen. | |
vso.identity |
Identität (Lesen) | Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen. | |
vso.identity_manage |
Identität (verwalten) | Gewährt die Möglichkeit, Identitäten und Gruppen zu lesen, zu schreiben und zu verwalten. | |
Computergruppe | vso.machinegroup_manage |
Bereitstellungsgruppe (lesen, verwalten) | Bietet die Möglichkeit zum Verwalten von Bereitstellungsgruppen- und Agentpools. |
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 Benachrichtigungs-bezogene Diagnoseprotokolle und bietet die Möglichkeit, die 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 |
Verpackung (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) | Gewährt die Möglichkeit, Releaseartefakte zu lesen, einschließlich Versionen, Releasedefinitionen und Releaseumgebung. |
vso.release_execute |
Release (Lesen, Schreiben und Ausführen) | Gewährt die Möglichkeit, Releaseartefakte zu lesen und zu aktualisieren, einschließlich Versionen, Releasedefinitionen und Releaseumgebung und die Möglichkeit, eine neue Version in die Warteschlange zu stellen. | |
vso.release_manage |
Release (Lesen, Schreiben, Ausführen und Verwalten) | Gewährt die Möglichkeit zum Lesen, Aktualisieren und Löschen von Releaseartefakten, einschließlich Versionen, Releasedefinitionen und Releaseumgebung sowie der Möglichkeit, eine neue Version in die Warteschlange zu stellen und zu genehmigen. | |
Sichere 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 |
Sichere Dateien (Lesen, Erstellen und Verwalten) | Gewährt die Möglichkeit, sichere Dateien zu lesen, zu erstellen und zu verwalten. | |
Security | 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 zum Lesen und Abfragen von Dienstendpunkten. | |
vso.serviceendpoint_manage |
Dienstendpunkte (Lesen, Abfragen und Verwalten) | Gewährt die Möglichkeit zum Lesen, Abfragen und Verwalten von Dienstendpunkten. | |
Einstellungen | vso.settings |
Einstellungen (lesen) | Gewährt die Möglichkeit zum Lesen von Einstellungen. |
vso.settings_write |
Einstellungen (Lese- und Schreibzugriff) | Gewährt die Möglichkeit zum Erstellen und Lesen von Einstellungen. | |
Symbols | vso.symbols |
Symbole (gelesen) | 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 zum Lesen und Erstellen von Aufgabengruppen. | |
vso.taskgroups_manage |
Aufgabengruppen (Lesen, Erstellen und Verwalten) | Gewährt die Möglichkeit, Taskgroups zu lesen, zu erstellen und zu verwalten. | |
Teamdashboard | vso.dashboards |
Teamdashboards (lesen) | Gewährt die Möglichkeit, Team-Dashboardinformationen zu lesen. |
vso.dashboards_manage |
Teamdashboards (verwalten) | Gewährt die Möglichkeit, Team-Dashboardinformationen zu verwalten. | |
Testverwaltung | vso.test |
Testverwaltung (lesen) | Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere artefaktbezogene Testverwaltung zu lesen. |
vso.test_write |
Testverwaltung (Lese- und Schreibzugriff) | Gewährt die Möglichkeit, Testpläne, Fälle, Ergebnisse und andere artefaktbezogene Testverwaltung zu lesen, zu erstellen und zu aktualisieren. | |
Threads | vso.threads_full |
PR-Threads | Gewährt die Möglichkeit zum Lesen und Schreiben zum Abrufen von Kommentarthreads für Anforderungskommentare. |
Token | vso.tokens |
Delegierte Autorisierungstoken | Gewährt benutzern die Möglichkeit, delegierte Autorisierungstoken zu verwalten. |
vso.tokenadministration |
Tokenverwaltung | Gewährt die Möglichkeit, vorhandene Token für Organisationsadministratoren zu verwalten (anzeigen und widerrufen). | |
Benutzerprofil | vso.profile |
Benutzerprofil (Lesen) | Gewährt die Möglichkeit, Ihr Profil, 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. | |
Variable Gruppen | vso.variablegroups_read |
Variable Gruppen (lesen) | Gewährt die Möglichkeit, Variablengruppen zu lesen. |
vso.variablegroups_write |
Variable Gruppen (lesen, erstellen) | Gewährt die Möglichkeit zum Lesen und Erstellen von Variablengruppen. | |
vso.variablegroups_manage |
Variable Gruppen (lesen, erstellen und verwalten) | Gewährt die Möglichkeit zum Lesen, Erstellen und Verwalten von Variablengruppen. | |
Wiki | vso.wiki |
Wiki (gelesen) | Gewährt die Möglichkeit, Wikis, Wiki-Seiten und Wiki-Anlagen zu lesen. 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. | |
Arbeitsaufgaben | vso.work |
Arbeitselemente (Lesen) | Gewährt die Möglichkeit, Arbeitsaufgaben, Abfragen, Boards, Flächen- und Iterationspfade und andere Metadaten zur Nachverfolgung von Arbeitsaufgaben zu lesen. Gewährt außerdem die Möglichkeit, Abfragen auszuführen, Arbeitsaufgaben zu durchsuchen und Benachrichtigungen über Arbeitsaufgabenereignisse über Dienst-Hooks zu erhalten. |
vso.work_write |
Arbeitselemente (Lesen und Schreiben) | Gewährt die Möglichkeit, Arbeitsaufgaben und Abfragen zu lesen, zu erstellen und zu aktualisieren, Boardmetadaten zu aktualisieren, Bereiche und Iterationspfade für andere Pfade für die Nachverfolgung verwandter Arbeitsaufgaben zu aktualisieren, Abfragen auszuführen und Benachrichtigungen über Arbeitsaufgabenereignisse über Diensthaken zu erhalten. | |
vso.work_full |
Arbeitsaufgaben (vollständig) | Gewährt vollzugriff auf Arbeitsaufgaben, Abfragen, Backlogs, Pläne und Metadaten zur Nachverfolgung von Arbeitsaufgaben. Bietet außerdem die Möglichkeit, Benachrichtigungen über Arbeitsaufgabenereignisse über Service-Hooks zu empfangen. | |
Benutzeridentitätswechsel | user_impersonation |
Benutzeridentitätswechsel | Vollzugriff auf REST-APIs von Visual Studio Team Services. Fordern Sie diesen Bereich mit Vorsicht an und/oder stimmen Sie zu, da es sehr leistungsfähig ist! |
Ändern des Umfangs der veröffentlichten Erweiterung
Sie können den Umfang einer veröffentlichten Erweiterung ändern. Wenn Sie Ihre Erweiterung zuvor installiert haben (und die vorherigen Bereiche 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 Hubs für Erweiterungseinstellungen wird ein Benutzer angezeigt, der ggf. installierte Erweiterungen eine Autorisierung erfordern:
Ein Administrator kann dann die neuen Bereiche ü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
: Installiert in Azure DevOps ServicesMicrosoft.TeamFoundation.Server
: Installiert in Azure DevOps ServerMicrosoft.VisualStudio.Services
: installiert in beiden. 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 Azure DevOps ServerMicrosoft.VisualStudio.Services.Integration
: integriert in beide. Verknüpfung 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 der Integrationen verwendet werden. Beispielsweise Produkte, Apps oder Tools, mit denen sie arbeiten, aber nicht in Azure DevOps installieren.
Beispiel: Integration, die mit Azure DevOps funktioniert
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
]
}
Beispiel: Integration, die nur mit Azure DevOps Server funktioniert
{
"targets": [
{
"id": "Microsoft.TeamFoundation.Server.Integration"
}
]
}
Installationszielversionen
Einige Installationsziel-IDs unterstützen einen Microsoft.TeamFoundation.Server
Microsoft.TeamFoundation.Server.Integration
optionalen Versionsbereich. In diesem optionalen Versionsbereich werden die unterstützten Versionen, für die die Erweiterung oder Integration unterstützt wird, weiter erläutert.
Der Versions- oder Versionsbereich wird über das version
Feld des Installationszielobjekts angegeben. Dieser Wert kann entweder 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]
(2015 Update 3 bis 2017 Update 1). Bereichswerte werden mithilfe von:[
: 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 zusammen verwendet, um Benutzern eine korrekte Ansicht der Produkte/Dienste zu präsentieren, mit denen Ihre Erweiterung oder Integration kompatibel ist. Wenn Sie z. B. ein Installationsziel für Microsoft.VisualStudio.Services
eine Anforderung angeben api-version/3.0
, funktioniert die Erweiterung mit Azure DevOps.
Tipp
Weitere Informationen zu REST-APIs finden Sie in der REST-API-Referenz.
Beispiel: Erweiterung, die Version 3.0-APIs verwendet
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"demands": [
"api-version/3.0"
]
}
Löst die folgenden Installationsziele auf:
Microsoft.VisualStudio.Services.Cloud
Microsoft.TeamFoundation.Server
Version:[15.0,)
Beispiel: Integration, die Version 2.0-APIs verwendet
{
"targets": [
{
"id": "Microsoft.VisualStudio.Services.Integration"
}
],
"demands": [
"api-version/2.0"
]
}
Löst die folgenden Installationsziele auf:
Microsoft.VisualStudio.Services.Cloud.Integration
Microsoft.TeamFoundation.Server.Integration
Version:[14.0,)
Forderungen
Anforderungen ermöglichen ihnen die Angabe von Funktionen und anderen Features, die von Ihrer Erweiterung benötigt werden. 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 auflisten, mit denen Ihre Erweiterung kompatibel ist, was Kunden hilft zu verstehen, ob Ihre Erweiterung mit ihrer Version von Azure DevOps funktioniert, z. B..
Im folgenden Beispiel wird gezeigt, 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
Typ | Beschreibung | Bei der Veröffentlichung überprüft? | 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) | No | Ja |
extension/{id} |
Erfordert, dass eine bestimmte Erweiterung installiert/aktiviert ist | No | Ja |
contribution/{id} |
Erfordert, dass ein bestimmter Beitrag verfügbar ist | No | Ja |
contributionType/{id} |
Erfordert, dass ein bestimmter Beitragstyp verfügbar ist. | No | Ja |
Hinweis
- Verwenden Und
environment/cloud
environment/onprem
nur, wenn Ihre Erweiterung topologiebezogene Anforderungen enthält, die in dieser bestimmten Umgebung ausgeführt werden müssen. extension
,contribution
undcontributionType
Anforderungen werden zur Installationszeit ausgewertet und erfordert, dass die angegebene Erweiterung bereits installiert und in der Organisation/Sammlung aktiviert ist.
Dateien
Im files
Abschnitt verweisen Sie auf alle Dateien, die Sie in Ihre Erweiterung aufnehmen möchten. Sie können ordner und 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.
- adressierbar – (optional) Auf "true" festgelegt, wenn Die Datei URL-Adressierbar sein soll. Standardwert ist "false".
- packagePath – (optional) Pfad zur Ressource innerhalb des Pakets. Standardmäßig wird der relative Pfad auf dem Datenträger aus Ihrem Stammverzeichnis abgerufen.
- contentType – (optional) MIME-Typ der Datei. Wird standardmäßig basierend auf den Dateierweiterungs- und Betriebssystemeinstellungen am besten erraten.
- assetType – (optional) Geben Sie den Wert des Type-Attributs des Objekteintrags im VSIX-Manifest an. Kann auch ein Array von Zeichenfolgen sein, in diesem Fall werden mehrere Objekteinträge für diese Datei hinzugefügt. Der Standardwert ist "packagePath".
- lang – (optional) Sprache dieser Ressource. Lokalisierte Dateien werden basierend auf dem Header "Accept-Language" bereitgestellt. Lassen Sie nichts, um zu kennzeichnen, dass sich diese Datei in der Standardsprache (oder fallback) befindet. Lokalisierte Versionen derselben Datei sollten denselben assetType aufweisen.
Beiträge
Jeder Beitragseintrag weist die folgenden Eigenschaften auf:
- id - Eine Referenz-ID (Zeichenfolge) für den Beitrag. Die ID jedes Beitrags muss innerhalb einer Erweiterung eindeutig sein. Siehe Referenzierung von Beiträgen und Typen.
- type - The ID of the contributionType of this contributionType of this contribution.
- description - (Optional) Eine Zeichenfolge, die beschreibt, was der Beitrag bereitstellt.
- targets - Ein Array von Beitrags-IDs, auf die der Beitrag ausgerichtet ist (mitwirkend). Siehe "Beiträge zum Adressierungszielen".
- properties - (Optional) An object that includes properties for the contribution as defined in the contribution type.
Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.
Beitragstypen
Jeder Beitragseintrag weist die folgenden Eigenschaften auf:
- id – Eine Referenz-ID (Zeichenfolge) für den Beitragstyp. Die ID jedes Beitragstyps muss innerhalb einer Erweiterung eindeutig sein. Siehe Referenzierung von Beiträgen und Typen.
- name - Der Anzeigename des Beitragstyps.
- description - (Optional) Eine Zeichenfolge, die ausführlicher beschreibt, wofür der Beitragstyp verwendet wird.
- properties - (Optional) Ein Wörterbuch, das Eigenschaftsnamen Eigenschaftenbeschreibungen zuordnet. Diese Eigenschaften beschreiben die erforderlichen und optionalen Eigenschaften, die von diesem Typ verwendet werden können.
Eigenschaftenbeschreibungen weisen die folgenden Eigenschaften auf:
- description - (Optional) Eine Zeichenfolge, die beschreibt, wofür die Eigenschaft verwendet wird.
- erforderlich - (Optional) Ein boolescher Wert, der bei "true" angibt, dass die Eigenschaft für alle Beiträge dieses Typs erforderlich ist.
- type - The type of value that the property can have, which could be string, uri, guid, boolean, integer, double, dateTime, array, or object.
Weitere Informationen finden Sie in der Übersicht über das Beitragsmodell.
Verweisen auf Beiträge und Typen
Verwenden Sie eindeutige Bezeichner, um auf Beiträge und Beitragstypen zu verweisen. Referenztypen mit der type
Eigenschaft und Verweisen auf andere Beiträge mit der targets
Eigenschaft.
- Ein vollständiger Beitragsverweis enthält den Herausgeberbezeichner, den Erweiterungsbezeichner und den Bezeichner des Beitrags/Typs, getrennt durch einen Punkt (.). Ist z. B. der vollständige Bezeichner für den Beitrag mit dem Bezeichner "hub" in der Erweiterung "vss-web",
ms.vss-web.hub
die vom Herausgeber "ms" (Microsoft) veröffentlicht wird. - Relative Beitragsverweise können innerhalb eines Erweiterungsmanifests für einen Beitragsverweis auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwendet werden. In diesem Fall sind die Herausgeber- und Erweiterungs-IDs NICHT enthalten, und der Bezeichner ist ein Punkt (.) gefolgt von der Beitrags-ID. Beispielsweise kann ".hub" in der zuvor erwähnten Erweiterung "vss-web" als Verknüpfung für "ms.vss-web.hub" verwendet werden.
Adressierung von Beiträgen
Einige Beiträge dienen als Container für andere Beiträge.
- Hubbeiträge können auf Hubgruppen abzielen. Wenn eine Seite gerendert wird, zeigt die Webbenutzeroberfläche alle Hubbeiträge an, die auf die ausgewählte Hubgruppe abzielen. Hubgruppen richten sich an eine Hubgruppensammlung, die eine Gruppe von Hubgruppen definiert, die in einem bestimmten Navigationsbereich angezeigt werden, z. B. Administratorseiten auf Projektebene.
- Verschiedene Arten von Beiträgen können auf Menüs abzielen: Aktion, Hyperlinkaktion und Aktionsanbieter. Aktionen und Hyperlinkaktionen stellen einzelne Menüelementeinträge bereit. Ein Aktionsanbieter kann mehrere dynamische Menüelemente bereitstellen. Für ein bestimmtes Menü werden Elemente über alle Beiträge (eines 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 Signaldienste
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".
Um ein Signal von einem anderen Dienst anzuzeigen, wenden Sie sich an den Kundensupport am Entwicklercommunity.
Beispielmanifest
Die folgende Erweiterung trägt eine Aktion zum abgeschlossenen Builds-Kontextmenü und einen Hub zur Build Hub-Gruppe 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"
}
}
]
}