Udostępnij przez


Odniesienie do manifestu rozszerzenia

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Każde rozszerzenie ma plik manifestu JSON, który definiuje podstawowe informacje o rozszerzeniu. Plik definiuje również sposób rozszerzania i ulepszania doświadczenia. W tym artykule pokazano, jak utworzyć manifest dla rozszerzenia usługi Azure DevOps.

Napiwek

Zapoznaj się z naszą najnowszą dokumentacją dotyczącą programowania rozszerzeń przy użyciu zestawu SDK rozszerzenia usługi Azure DevOps.

Utwórz plik o nazwie vss-extension.json w katalogu głównym folderu rozszerzenia. Ten plik zawiera wymagane atrybuty, takie jak identyfikator rozszerzenia i jego obiekty docelowe instalacji, w których można go uruchomić. Określa także wkład wnoszony przez rozszerzenie.

Zobacz następujący przykład typowego manifestu:

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

Aby uzyskać informacje o danych wejściowych, zobacz ...

Wymagane atrybuty

Wymagane są następujące właściwości:

Nieruchomość opis Uwagi
manifestVersion Liczba odpowiadająca wersji formatu manifestu. powinna mieć wartość 1.
Identyfikator Identyfikator rozszerzenia. Th ID to ciąg, który musi być unikatowy wśród rozszerzeń od tego samego wydawcy. Musi zaczynać się od znaku alfabetycznego lub liczbowego i zawierać znaki "A" od "Z", "a" do "z", "0" do "9" i "-" (łącznik). Przykład: sample-extension.
wersja Ciąg określający wersję rozszerzenia. Powinien mieć format major.minor.patch, na przykład 0.1.2 lub 1.0.0. Możesz również dodać czwartą liczbę dla następującego formatu: 0.1.2.3
nazwa Krótka, czytelna dla człowieka nazwa rozszerzenia. Ograniczone do 200 znaków. Przykład: "Fabrikam Agile Board Extension".
wydawca Identyfikator wydawcy. Ten identyfikator musi być zgodny z identyfikatorem, pod którym jest publikowane rozszerzenie. Zobacz Tworzenie wydawcy i zarządzanie nim.
Kategorie Tablica ciągów reprezentujących kategorie, do których należy twoje rozszerzenie. Należy podać co najmniej jedną kategorię i nie ma limitu liczby uwzględnień kategorii. Prawidłowe wartości: Azure Repos, , Azure BoardsAzure Pipelines, Azure Test Plansi Azure Artifacts.

Uwagi:
    — Użyj wersji >=0.6.3 tfx-cli, jeśli publikujesz rozszerzenie programowo.
    — Jeśli używasz rozszerzenia Azure DevOps Extension Tasks do publikowania, upewnij się, że jego wersja to co najmniej >1.2.8. Może być konieczne zatwierdzenie aktualizacji rozszerzenia z powodu ostatnich zmian zakresu.
    — wymienione wcześniej kategorie są natywnie dostępne na platformach Visual Studio Marketplace i Azure DevOps Server 2019 & powyżej.
Cele Produkty i usługi obsługiwane przez integrację lub rozszerzenie. Aby uzyskać więcej informacji, zobacz cele instalacji. Tablica obiektów, w której każdy obiekt ma id pole wskazujące jedno z następujących elementów:
    - Microsoft.VisualStudio.Services (rozszerzenia współpracujące z usługą Azure DevOps),
    - Microsoft.TeamFoundation.Server (rozszerzenie, które współpracuje z usługą Azure DevOps Server),
    - Microsoft.VisualStudio.Services.Integration,
    - Microsoft.TeamFoundation.Server.Integration (integracje współpracujące z usługą Azure DevOps Server)

Przykłady wymaganych atrybutów

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

Atrybuty opcjonalne

Atrybuty środowiska uruchomieniowego

Nieruchomość opis Uwagi
Zakresy Tablica zakresów autoryzacji (ciągów) wyświetla uprawnienia wymagane przez rozszerzenie. Na przykład, vso.work i vs.code_write wskazują, że rozszerzenie wymaga dostępu tylko do odczytu do elementów roboczych oraz dostępu do odczytu i zapisu do kodu źródłowego (oraz powiązanych zasobów). Zakresy są prezentowane użytkownikowi podczas instalowania rozszerzenia. Aby uzyskać więcej informacji, zobacz pełną listę zakresów.
wymagania Tablica żądań (ciągów) przedstawiająca możliwości wymagane przez rozszerzenie. Na przykład wskazuje, api-version/3.0 że rozszerzenie używa interfejsów API w wersji 3.0 i nie może działać w starszych produktach, które nie obsługują tej wersji. Aby uzyskać więcej informacji, zobacz pełną listę żądań.
baseUri (Opcjonalnie) podstawowy adres URL dla wszystkich relatywnych adresów URL określonych przez wkłady rozszerzenia. Na przykład: https://myapp.com/{{account.name}}/. Ta właściwość powinna pozostać pusta, jeśli zawartość rozszerzenia jest spakowana wraz z rozszerzeniem.
Wkłady Zbiór wkładów do systemu.
typy wkładu Tablica typów współtworzenia zdefiniowanych przez rozszerzenie
{
    "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"
            }
        }
    ]
}

Atrybuty odnajdywania

Następujące opcjonalne właściwości ułatwiają użytkownikom odnajdywanie i poznawanie rozszerzenia:

Nieruchomość opis Uwagi
opis Kilka zdań opisujących rozszerzenia. Ograniczone do 200 znaków. Opis powinien być krótką prezentacją rozszerzenia — kilka zdań, które opisują rozszerzenie w Marketplace i sprawiają, że ludzie chcą je zainstalować. Zobacz poniższy przykład
Ikony Słownik ikon reprezentujący rozszerzenie. Prawidłowe klucze: default (128x128 pikseli) typu BMP, GIF, EXIF, JPG, PNG i TIFF. Inne klucze, takie jak large (512x512 pikseli) mogą być obsługiwane w przyszłości. Wartość każdego klucza to ścieżka do pliku ikony w rozszerzeniu
tagi Tablica tagów ciągów ułatwia użytkownikom znajdowanie rozszerzenia. Przykłady: agile, , project managementtask timeri tak dalej.
zrzuty ekranu Zestaw obrazów, których nie można było uwzględnić w twojej zawartości. Zrzuty ekranu są bardziej wartościowe, gdy są zamieszczane w zawartości i powinny być wykorzystywane do stworzenia wysokiej jakości strony ze szczegółami rynkowymi dla rozszerzenia. Użyj zrzutów ekranu, aby uzyskać mniej ważne obrazy, które nie są opisywane w zawartości. Każdy obraz powinien mieć rozmiar 1366 x 768 pikseli. Każdy path element jest ścieżką do pliku w rozszerzeniu.
zawartość Słownik plików zawartości opisujących rozszerzenie dla użytkowników. Każde rozszerzenie powinno zawierać solidną zawartość. W ten sposób pokażesz użytkownikom, co może zrobić rozszerzenie. Spraw, aby było bogate, łatwe do przyswojenia i załączaj zrzuty ekranu w razie potrzeby. overview.md Dołącz plik jako podstawowy element zawartości. Zakłada się, że każdy plik jest w formacie GitHub Flavored Markdown. path każdego elementu jest ścieżką do pliku Markdown w rozszerzeniu. Prawidłowe klucze: details. Inne klucze mogą być obsługiwane w przyszłości.
Linki Słownik linków, które pomagają użytkownikom dowiedzieć się więcej o Twoim rozszerzeniu, uzyskać pomoc techniczną i kontynuować. Prawidłowe klucze: getstarted — pierwsze kroki, sposób konfigurowania lub używania. learn — głębsza zawartość ułatwiając użytkownikom lepsze zrozumienie rozszerzenia lub usługi. license — umowa licencyjna użytkownika końcowego. privacypolicy - zasady ochrony prywatności dla rozszerzenia. support — uzyskaj pomoc i wsparcie dla rozszerzenia. Wartość każdego klucza jest obiektem z polem uri , które jest bezwzględnym adresem URL łącza
repozytorium Słownik właściwości opisujących repozytorium kodu źródłowego dla rozszerzenia Prawidłowe klucze: type — typ repozytorium. Przykład: git. uri - Bezwzględny adres URL repozytorium.
Odznaki Tablica linków do zewnętrznych znaczków metadatycznych, takich jak TravisCI, Appveyor itd., z zatwierdzonych witryn znaczkowych Prawidłowy klucz: href — Link, do którego użytkownik przejdzie po wybraniu badża. uri - Bezwzględny adres URL obrazu odznaki do wyświetlenia. description - Opis odznaki, która ma być wyświetlana po najechaniu kursorem.
Marki Słownik właściwości związanych z marką. Prawidłowe klucze: color — podstawowy kolor rozszerzenia lub wydawcy: może to być szesnastkowy (#ff00ff), RGB (rgb(100,200,50)) lub obsługiwane nazwy kolorów HTML (niebieski). theme - uzupełnia kolor; używaj ciemnych kolorów znakowania lub jasnego dla jaśniejszych kolorów znakowania.

Oznacz rozszerzenie jako publiczne

Domyślnie wszystkie rozszerzenia w witrynie Azure DevOps Marketplace są prywatne. Są one ukryte w widoku publicznym i są widoczne tylko dla wydawcy i określonych kont udostępnionych przez wydawcę. Jeśli wydawca zostanie zweryfikowany, możesz upublicznić rozszerzenie, ustawiając flagę Public w manifeście rozszerzenia:

{
    "galleryFlags": [
        "Public"
    ]
}            

Lub:

{
    "public": true
}            

Aby uzyskać więcej informacji, zobacz Package/Publish/Install.

Oznaczanie rozszerzenia, które ma być w wersji zapoznawczej

Jeśli rozszerzenie jest gotowe dla użytkowników w witrynie Marketplace do wypróbowania, ale nadal pracujesz nad kilkoma usterkami lub dodawaniem funkcji, możesz oznaczyć ją jako preview:

{
    "galleryFlags": [
        "Preview"
    ]
}            

Oznaczanie rozszerzenia jako płatnej wersji zapoznawczej

Jeśli zamierzasz sprzedać rozszerzenie w witrynie Marketplace, oznacz je jako płatną wersję zapoznawcza. Nie można zmienić rozszerzenia oznaczonego bezpłatnie na płatne.

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

Oznacz rozszerzenie jako płatne

Jeśli chcesz sprzedać rozszerzenie na Marketplace, możesz oznaczyć je flagą Paid i tagiem __BYOLENFORCED (który zaczyna się od dwóch podkreśleń):

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

Zarówno flaga Paid , jak i __BYOLENFORCED tag muszą być obecne, aby oznaczyć rozszerzenie jako płatne w witrynie Marketplace. Bring-Your-Own-License (BYOL) oznacza, że wydawca rozszerzenia udostępnia mechanizm rozliczeń i licencjonowania rozszerzenia, ponieważ nie jest on dostarczany przez firmę Microsoft dla rozszerzeń Usługi DevOps platformy Azure. Wszystkie płatne rozszerzenia są wymagane do zdefiniowania zasad ochrony prywatności, zasad pomocy technicznej i umowy licencyjnej użytkownika końcowego. Wydawcy muszą podać zawartość karty cennika w witrynie Marketplace w następujący sposób:

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

Musisz również dodać nową sekcję w manifeście rozszerzenia, aby zastąpić płatne licencjonowanie. W przyszłości usuniemy kontrolę płatnego licencjonowania i nie będziemy już wymagać nadpisywania ustawień. Na razie upewnij się, że rozszerzenie jest wyświetlane zgodnie z oczekiwaniami. Każde zastąpienie składa się z "ID" i "zachowania". Dopasuj "ID" do wartości ID wkładów zdefiniowanych w manifeście.

"licensing": {

      "overrides": [

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

Jeśli płatne rozszerzenie BYOL oferuje okres próbny (zalecamy to), możesz określić długość okresu próbnego w dniach:

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

Uwaga

Jeśli chcesz wycelować w Azure DevOps, ale nie chcesz, aby opcja Pobierz była dostępna dla twojego rozszerzenia, dodaj znacznik __DoNotDownload (rozpoczynający się od dwóch podkreśleń) do manifestu rozszerzenia. Jeśli przenosisz rozszerzenie z wcześniej oferowanego licencjonowania rozliczeniowego & firmy Microsoft do modelu BYOL, skontaktuj się z nami, aby uzyskać odpowiednie kroki.

Przykład większej liczby właściwości

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

Przykład strony szczegółów

  • 1 — opis
  • 2 — ikona
  • 3 — kategorie
  • 4 — zrzuty ekranu
  • 5 — zawartość (szczegóły)
  • 6 - łącza
  • 7 — znakowanie

karta

Pytania i odpowiedzi Marketplace — właściwość CustomerQnASupport

Wszystkie rozszerzenia na Visual Studio Marketplace mają sekcję Pytania i odpowiedzi (Q & A), aby umożliwić jeden-na-jeden publiczną rozmowę między użytkownikami rozszerzeń i wydawcami. Wydawcy mogą wybierać między ofertą Marketplace Q & A, zagadnieniami w GitHub lub niestandardowym adresem URL Q & A. W witrynie Marketplace można wyłączyć funkcję Q & A przy użyciu właściwości CustomerQnASupport w manifeście.

Środowisko domyślne (nie są wymagane żadne zmiany manifestu)

  • W przypadku rozszerzeń z repozytorium GitHub witryna Marketplace przekierowuje użytkowników w sekcji Pytań i odpowiedzi do skojarzonych problemów z usługą GitHub.
  • W przypadku rozszerzeń bez repozytorium GitHub jest włączona obsługa pytań i odpowiedzi w witrynie Marketplace.

Aby uzyskać inne doświadczenie niż standardowe opcje, użyj właściwości CustomerQnASupport w manifeście.

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

Właściwości

Właściwości sekcji Customer Q & A Support (Obsługa techniczna dla klientów):

  • enablemarketplaceqna — pole logiczne, ustawione na wartość true dla marketplace lub niestandardowego Q&A; false, aby wyłączyć pytania i odpowiedzi
  • url — ciąg, adres URL dla niestandardowych pytań i odpowiedzi

Przykłady przedstawiające użycie obsługi języka Q &A

Przykład: rozszerzenie korzystające z niestandardowego języka Q & A

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

Przykład: rozszerzenie z repozytorium GitHub, ale korzystanie z Marketplace Q&A zamiast zgłoszeń problemów na GitHubie

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

Przykład: wyłączanie sekcji pytań i odpowiedzi

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

Zakresy

W rozszerzeniu można zdefiniować jeden lub więcej zakresów. Te zakresy określają zasoby, do których rozszerzenie może uzyskać dostęp, oraz operacje dozwolone do wykonania na tych zasobach. Zakresy określone w manifeście rozszerzenia to zakresy ustawione dla tokenów dostępu wystawionych dla rozszerzenia. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie i zabezpieczenia.

Jeśli nie określono żadnych zakresów, rozszerzenia mają dostęp tylko do danych profilu użytkownika i rozszerzenia.

Obsługiwane zakresy

Kategoria Scope Nazwa/nazwisko Wysoki poziom uprawnień opis Dziedziczy z
Zabezpieczenia zaawansowane vso.advsec Zabezpieczenia zaawansowane (odczyt) Tak Przyznaje możliwość odczytywania alertów, wystąpień wyników i wystąpień wyników analizy.
vso.advsec_write Zabezpieczenia zaawansowane (odczyt i zapis) Tak Przyznaje możliwość przekazywania analiz w serif. vso.advsec
vso.advsec_manage Zabezpieczenia zaawansowane (odczyt, zapis i zarządzanie) Tak Przyznaje możliwość przekazywania analiz w serif. vso.advsec_write
Pule agentów vso.agentpools Pule agentów (odczyt) Umożliwia wyświetlanie zadań, pul, kolejek, agentów i aktualnie uruchomionych lub ostatnio ukończonych zadań dla agentów.
vso.agentpools_manage Pule agentów (odczyt i zarządzanie nimi) Tak Umożliwia zarządzanie pulami, kolejkami i agentami. vso.agentpools
vso.environment_manage Środowisko (odczyt i zarządzanie) Tak Umożliwia zarządzanie pulami, kolejkami, agentami i środowiskami. vso.agentpools_manage
Analiza danych vso.analytics Analityka (odczyt) Przyznaje możliwość wykonywania zapytań dotyczących danych analitycznych.
Auditing vso.auditlog Dziennik inspekcji (odczyt) Umożliwia odczytywanie dziennika inspekcji użytkownikom.
vso.auditstreams_manage Strumienie inspekcji (odczyt) Tak Umożliwia zarządzanie strumieniami inspekcji użytkownikom. vso.auditlog
Build vso.build Buduj (czytaj) Umożliwia dostęp do artefaktów kompilacji, w tym wyników kompilacji, definicji i żądań oraz możliwość odbierania powiadomień o zdarzeniach kompilacji za pośrednictwem punktów zaczepienia usługi. vso.hooks_write
vso.build_execute Kompilacja (odczyt i uruchomienie) Tak Umożliwia dostęp do artefaktów kompilacji, w tym wyników kompilacji, definicji i żądań. Umożliwia również kolejkowanie kompilacji, aktualizowanie właściwości kompilacji i odbieranie powiadomień o zdarzeniach kompilacji za pośrednictwem punktów zaczepienia usługi. vso.build
Code vso.code Kod (odczyt) Umożliwia odczytywanie kodu źródłowego i metadanych dotyczących komitów, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Umożliwia również wyszukiwanie kodu i otrzymywanie powiadomień o zdarzeniach kontroli wersji za pośrednictwem haków serwisowych. vso.hooks_write
vso.code_write Kod (odczyt i zapis) Tak Umożliwia odczytywanie, aktualizowanie i usuwanie kodu źródłowego oraz uzyskiwanie dostępu do metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Ponadto umożliwia tworzenie żądań ściągnięcia i przeglądów kodu oraz zarządzanie nimi oraz otrzymywanie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. vso.code
vso.code_manage Kod (odczyt, zapis i zarządzanie) Tak Umożliwia odczytywanie, aktualizowanie i usuwanie kodu źródłowego, uzyskiwanie dostępu do metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Umożliwia również tworzenie repozytoriów kodu i zarządzanie nimi, tworzenie żądań ściągnięcia i przeglądów kodu oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. vso.code_write
vso.code_full Kod (pełny) Tak Udziela pełnego dostępu do kodu źródłowego, metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Ponadto umożliwia tworzenie repozytoriów kodu i zarządzanie nimi, tworzenie żądań ściągnięcia i przeglądów kodu oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. Obejmuje również ograniczoną obsługę interfejsów API klienta OM. vso.code_manage
vso.code_status Kod (status) Umożliwia odczytywanie i zapisywanie stanu zatwierdzenia i żądania ściągnięcia.
Serwer połączony vso.connected_server Serwer połączony Umożliwia dostęp do punktów końcowych potrzebnych z lokalnego serwera połączonego.
Uprawnienia vso.entitlements Uprawnienia (odczyt) Udziela dostępu tylko do odczytu do punktów końcowych uprawnień licencjonowania w celu uzyskania uprawnień do konta.
vso.memberentitlementmanagement Zarządzanie upoważnieniami członków (odczyt) Umożliwia odczytywanie użytkowników, ich licencji oraz projektów i rozszerzeń, do których mogą uzyskiwać dostęp.
vso.memberentitlementmanagement_write Zarządzanie upoważnieniami składowymi (zapis) Tak Umożliwia zarządzanie użytkownikami i ich licencjami oraz projektami i rozszerzeniami, do których mogą uzyskiwać dostęp. vso.memberentitlementmanagement
Extensions vso.extension Rozszerzenia (odczyt) Przyznaje możliwość odczytywania zainstalowanych rozszerzeń. vso.profile
vso.extension_manage Rozszerzenia (odczyt i zarządzanie nimi) Tak Przyznaje możliwość instalowania, odinstalowywania i wykonywania innych akcji administracyjnych na zainstalowanych rozszerzeniach. vso.extension
vso.extension.data Dane rozszerzenia (odczyt) Umożliwia odczytywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia. vso.profile
vso.extension.data_write Dane rozszerzenia (odczyt i zapis) Umożliwia odczytywanie i zapisywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia. vso.extension.data
Połączenia usługi GitHub vso.githubconnections Połączenia usługi GitHub (odczyt) Umożliwia odczytywanie połączeń usługi GitHub i danych repozytoriów GitHub.
vso.githubconnections_manage Połączenia usługi GitHub (odczyt i zarządzanie nimi) Tak Umożliwia odczytywanie połączeń usługi GitHub i danych repozytoriów GitHub oraz zarządzanie nimi. vso.githubconnections
Graf i tożsamość vso.graph Graf (do odczytu) Umożliwia odczytanie informacji o użytkownikach, grupach, zakresie i członkostwie w grupach.
vso.graph_manage Zarządzanie Grafem Tak Umożliwia odczytywanie informacji o użytkowniku, grupie, zakresie i członkostwie w grupach, dodawaniu użytkowników i grup oraz zarządzaniu członkostwem w grupach. vso.graph
vso.identity Tożsamość (odczyt) Umożliwia odczytywanie tożsamości i grup.
vso.identity_manage Zarządzanie tożsamością Tak Daje możliwość odczytu, zapisu i zarządzania tożsamościami i grupami. vso.identity
Grupa maszyn vso.machinegroup_manage Grupa wdrażania (przeczytaj, zarządzaj) Tak Umożliwia zarządzanie grupami wdrożeń i pulami agentów. vso.agentpools_manage
Marketplace vso.gallery Marketplace Przyznaje możliwość odczytu elementom publicznym, prywatnym oraz wydawcom. vso.profile
vso.gallery_acquire Marketplace (nabyć) Przyznaje dostęp do odczytu i możliwość uzyskiwania przedmiotów. vso.gallery
vso.gallery_publish Marketplace (opublikuj) Tak Przyznaje uprawnienia do odczytu oraz możliwość przesyłania, aktualizowania i udostępniania elementów. vso.gallery
vso.gallery_manage Zarządzanie Marketplace Tak Przyznaje dostęp do odczytu oraz możliwość publikowania i zarządzania elementami oraz wydawcami. vso.gallery_publish
Notifications vso.notification Powiadomienia (odczyt) Udziela dostępu do odczytu do subskrypcji i metadanych zdarzeń, w tym do filtrowania wartości pól. vso.profile
vso.notification_write Powiadomienia (zapis) Przyznaje dostęp do odczytu i zapisu do subskrypcji oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól z możliwością filtrowania. vso.notification
vso.notification_manage Powiadomienia - Zarządzanie Przyznaje dostęp do odczytu, zapisu i zarządzania subskrypcjami oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól z możliwością filtrowania. vso.notification_write
vso.notification_diagnostics Powiadomienia (diagnostyka) Udziela dostępu do dzienników diagnostycznych związanych z powiadomieniami i przyznaje możliwość włączania diagnostyki dla poszczególnych subskrypcji. vso.notification
Opakowanie vso.packaging Pakowanie (czytaj) Przyznaje możliwość odczytywania kanałów wiadomości i pakietów. vso.profile
vso.packaging_write Pakowanie (odczyt i zapis) Tak Przyznaje możliwość tworzenia i odczytywania kanałów danych i pakietów. vso.packaging
vso.packaging_manage Pakietowanie (odczyt, zapis i zarządzanie) Tak Umożliwia tworzenie, odczytywanie, aktualizowanie i usuwanie kanałów i pakietów. vso.packaging_write
Zasoby rurociągu vso.pipelineresources_use Zasoby potoku (użyj) Tak Umożliwia zatwierdzenie żądania potoku użycia chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, bezpiecznych plików, połączenia z usługą i grupy zmiennych.
vso.pipelineresources_manage Zasoby potoku (używanie i zarządzanie nimi) Tak Umożliwia zarządzanie chronionym zasobem lub żądaniem dotyczącym użycia chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, bezpiecznych plików, połączenia z usługą i grupy zmiennych. vso.pipelineresources_use
Projekt i zespół vso.project Projekt i zespół (odczyt) Umożliwia odczytywanie projektów i zespołów.
vso.project_write Projekt i zespół (odczyt i zapis) Udziela możliwość odczytywania i aktualizowania projektów i zespołów. vso.project
vso.project_manage Projekt i zespół (odczyt, zapis i zarządzanie) Tak Przyznaje możliwość tworzenia, odczytywania, aktualizowania i usuwania projektów i zespołów. vso.project_write
Uwolnij vso.release Wydanie (przeczytaj) Przyznaje możliwość odczytywania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania. vso.profile
vso.release_execute Wydanie (odczyt, zapis i wykonywanie) Tak Daje możliwość odczytywania i aktualizowania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania. Ponadto przyznaje możliwość kolejkowania nowej wersji. vso.release
vso.release_manage Wydanie (odczyt, zapis, wykonywanie i zarządzanie) Tak Przyznaje możliwość odczytywania, aktualizowania i usuwania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania. Ponadto umożliwia kolejkę i zatwierdzanie nowej wersji. vso.release_execute
Zabezpieczanie plików vso.securefiles_read Zabezpieczanie plików (odczyt) Tak Przyznaje możliwość odczytywania bezpiecznych plików.
vso.securefiles_write Zabezpieczanie plików (odczyt i tworzenie) Tak Umożliwia odczytywanie i tworzenie bezpiecznych plików. vso.securefiles_read
vso.securefiles_manage Zabezpieczanie plików (odczyt, tworzenie i zarządzanie nimi) Tak Daje możliwość odczytywania, tworzenia i zarządzania bezpiecznymi plikami. vso.securefiles_write
Zabezpieczenia vso.security_manage Zabezpieczenia (zarządzanie) Tak Przyznaje możliwość odczytu, zapisu i zarządzania uprawnieniami zabezpieczeń.
Połączenia usługowe vso.serviceendpoint Punkty końcowe usługi (odczyt) Umożliwia odczytywanie punktów końcowych usługi. vso.profile
vso.serviceendpoint_query Punkty końcowe usługi (odczyt i zapytanie) Daje możliwość odczytywania oraz zapytań do punktów końcowych usługi. vso.serviceendpoint
vso.serviceendpoint_manage Punkty końcowe usługi (odczyt, wykonywanie zapytań i zarządzanie nimi) Tak Daje możliwość odczytu, wykonywania zapytań i zarządzania punktami końcowymi usługi. vso.serviceendpoint_query
Zaczepy serwisowe vso.hooks Haczyki serwisowe (odczyt) Umożliwia odczytywanie subskrypcji hooków serwisowych i metadanych, w tym obsługiwanych zdarzeń, konsumentów i działań. (Nie jest już publiczny). vso.profile
vso.hooks_write Punkty zaczepienia systemu (odczyt i zapis danych) Przyznaje możliwość tworzenia i aktualizowania subskrypcji punktów zaczepienia usługi oraz odczytywania metadanych, w tym obsługiwanych zdarzeń, odbiorców i akcji. (Nie jest już publiczny). vso.hooks
vso.hooks_interact Hooki serwisowe (interakcja) Umożliwia interakcję i wykonywanie akcji na zdarzeniach odebranych za pośrednictwem hooków usługi. (Nie jest już publiczny). vso.profile
Ustawienia vso.settings Ustawienia (odczyt) Przyznaje możliwość odczytywania ustawień.
vso.settings_write Ustawienia (odczyt i zapis) Przyznaje możliwość odczytu i zapisu ustawień. vso.settings
Symbols vso.symbols Symbole (odczyt) Przyznaje możliwość odczytywania symboli. vso.profile
vso.symbols_write Symbole (odczyt i zapis) Przyznaje możliwość odczytywania i zapisywania symboli. vso.symbols
vso.symbols_manage Symbole (odczyt, zapis i zarządzanie) Umożliwia odczytywanie symboli, zapisywanie i zarządzanie nimi. vso.symbols_write
Grupy zadań vso.taskgroups_read Grupy zadań (odczyt) Daje możliwość odczytywania grup zadań.
vso.taskgroups_write Grupy zadań (odczyt i tworzenie) Umożliwia odczytywanie i tworzenie grup zadań. vso.taskgroups_read
vso.taskgroups_manage Grupy zadań (odczyt, tworzenie i zarządzanie nimi) Tak Umożliwia odczytywanie, tworzenie grup zadań i zarządzanie nimi. vso.taskgroups_write
Pulpit nawigacyjny zespołu vso.dashboards Tablice zespołu (widok) Umożliwia dostęp do informacji z pulpitu nawigacyjnego zespołu.
vso.dashboards_manage Tablice zespołowe (zarządzanie) Umożliwia zarządzanie danymi panelu zespołu. vso.dashboards
Zarządzanie testami vso.test Zarządzanie testami (odczyt) Daje możliwość odczytywania planów testów, przypadków, wyników i innych artefaktów związanych z zarządzaniem testami. vso.profile
vso.test_write Zarządzanie testami (odczyt i zapis) Umożliwia odczytywanie, tworzenie i aktualizowanie planów testów, przypadków, wyników i innych artefaktów związanych z zarządzaniem testami. vso.test
Threads vso.threads_full Wątki pull requestu Umożliwia odczytywanie i zapisywanie wątków komentarzy do żądań pull request.
Tokens vso.tokens Tokeny autoryzacji delegowanej Tak Przyznaje użytkownikom możliwość zarządzania delegowanymi tokenami autoryzacji.
vso.tokenadministration Administrowanie tokenami Tak Przyznaje możliwość zarządzania istniejącymi tokenami (wyświetlaniem i odwoływaniem) administratorom organizacji.
Profil użytkownika vso.profile Profil użytkownika (odczyt) Umożliwia odczytywanie profilu, kont, kolekcji, projektów, zespołów i innych artefaktów organizacyjnych najwyższego poziomu.
vso.profile_write Profil użytkownika (wpisz) Przyznaje możliwość pisania na twoim profilu. vso.profile
Grupy zmiennych vso.variablegroups_read Grupy zmiennych (odczyt) Przyznaje możliwość odczytywania grup zmiennych.
vso.variablegroups_write Grupy zmiennych (odczyt i tworzenie) Umożliwia odczytywanie i tworzenie grup zmiennych. vso.variablegroups_read
vso.variablegroups_manage Grupy zmiennych (odczyt, tworzenie i zarządzanie nimi) Tak Przyznaje możliwość odczytywania, tworzenia i zarządzania grupami zmiennych. vso.variablegroups_write
Wiki vso.wiki Wiki (czytanie) Umożliwia odczytywanie stron typu wiki, stron typu wiki i załączników typu wiki. Ponadto umożliwia wyszukiwanie stron typu wiki.
vso.wiki_write Witryna typu wiki (odczyt i zapis) Umożliwia odczytywanie, tworzenie i aktualizowanie stron typu wiki, stron typu wiki i załączników typu wiki. vso.wiki
Przedmioty robocze vso.work Elementy robocze (odczyt) Umożliwia odczytywanie elementów roboczych, zapytań, tablic, ścieżek obszaru i iteracji oraz innych metadanych związanych ze śledzeniem elementów roboczych. Umożliwia również wykonywanie zapytań, wyszukiwanie elementów roboczych i odbieranie powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi. vso.hooks_write
vso.work_write Elementy robocze (odczyt i zapis) Daje możliwość odczytywania, tworzenia i aktualizowania elementów roboczych oraz zapytań, metadanych tablicy aktualizacji, ścieżek obszaru odczytu i iteracji oraz innych metadanych związanych ze śledzeniem elementów roboczych, wykonywania zapytań i odbierania powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi. vso.work
vso.work_full Elementy robocze (pełne) Zapewnia pełny dostęp do elementów roboczych, zapytań, list prac, planów i metadanych śledzenia elementów roboczych. Umożliwia również odbieranie powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi. vso.work_write
Personifikacja użytkownika user_impersonation Personifikacja użytkownika Tak Udziela pełnego dostępu do interfejsów API REST usługi Visual Studio Team Services. Żądaj lub wyrażaj zgody na ten zakres z ostrożnością, ponieważ jest bardzo zaawansowany.

Zmiana zakresu opublikowanego rozszerzenia

Zakres opublikowanego rozszerzenia można zmienić. Jeśli wcześniej zainstalowałeś rozszerzenie (i autoryzowałeś poprzedni zestaw uprawnień), autoryzuj nowe uprawnienia przed uaktualnieniem do najnowszej wersji.

Sekcja Akcja wymagana w ustawieniach rozszerzenia pokazuje użytkownikowi, które z zainstalowanych rozszerzeń wymagają autoryzacji:

zmiana zakresu

Administrator może następnie przejrzeć i autoryzować nowy zestaw zakresów:

okno dialogowe zmiany zakresu

Miejsca docelowe instalacji

Jak wskazuje nazwa, cele instalacji definiują produkty i usługi, w których można zainstalować rozszerzenie. Microsoft.VisualStudio.Services jest najczęstszym celem instalacji i wskazuje, że rozszerzenie można zainstalować w usłudze Azure DevOps.

Cele instalacji rozszerzenia lub integracji są określane za pośrednictwem targets pola w manifeście.

Obsługiwane identyfikatory rozszerzeń:

  • Microsoft.VisualStudio.Services.Cloud: instaluje się w usługach Azure DevOps Services
  • Microsoft.TeamFoundation.Server: instaluje się w usłudze Azure DevOps Server
  • Microsoft.VisualStudio.Services: instaluje się w obu. Skrót do Microsoft.VisualStudio.Services.Cloud i Microsoft.TeamFoundation.Server wersji [14.2,)

Obsługiwane identyfikatory dla integracji:

  • Microsoft.VisualStudio.Services.Cloud.Integration: integruje się z usługą Azure DevOps Services
  • Microsoft.TeamFoundation.Server.Integration: integruje się z usługą Azure DevOps Server
  • Microsoft.VisualStudio.Services.Integration: integruje się z obydwoma. Skrót dla Microsoft.VisualStudio.Services.Cloud.Integration i Microsoft.TeamFoundation.Server.Integration

Aby uzyskać więcej informacji, zobacz Punkty rozszerzalności.

Przykłady miejsc docelowych instalacji

Przykład: rozszerzenie współpracujące z usługą Azure DevOps

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

Przykład: rozszerzenie, które działa tylko z usługą Azure DevOps Services

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

Cele instalacji mogą być również używane w manifeście integracji. Na przykład produkty, aplikacje lub narzędzia, z którymi pracujesz, ale nie instaluj ich w usłudze Azure DevOps.

Przykład: integracja, która współpracuje z usługą Azure DevOps

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

Przykład: integracja, która działa tylko z usługą Azure DevOps Server

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

Wersje docelowe instalacji

Niektóre identyfikatory docelowe instalacji, takie jak Microsoft.TeamFoundation.Server i Microsoft.TeamFoundation.Server.Integration, obsługują opcjonalny zakres wersji. Ten opcjonalny zakres wersji dodatkowo wyjaśnia obsługiwane wersje rozszerzenia lub integracji.

Wersja lub zakres wersji jest określony za pośrednictwem version pola w obiekcie docelowym instalacji. Ta wartość może być następująca:

  • Określona wersja, na przykład: 15.0 (tylko RTM 2017)
  • Zakres obsługiwanych wersji, na przykład: [14.0) (2015 RTM i nowsze), [14.3,15.1] (2015 Update 3 do 2017 Update 1). Wartości zakresu są uściślone przy użyciu:
    • [: minimalna wersja włącznie
    • ]: wersja maksymalna włącznie
    • (: wersja minimalna wyłączna
    • ): maksymalna wersja na wyłączność

Numery wersji serwera Azure DevOps Server:

Uwolnij Nowości Wersja
2010 Wszystkie wersje 10,0
2012 Wszystkie wersje 11,0
2013 RTM i aktualizacje 12.0, 12.1, 12.2, 12.3, 12.4
2015 RTM i aktualizacje 14.0, 14.1, 14.2, 14.3
2017 RTM i aktualizacje 15.0, 15.1
2018 RTM i aktualizacje 16.0
2019 RTM i aktualizacje 17,0
2020 RTM i aktualizacje 18,0

Przykłady przedstawiające wersje

Przykład: rozszerzenie współpracujące z usługą Azure DevOps

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

Skróty

Microsoft.VisualStudio.Services to skrót do usługi Azure DevOps.

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

jest odpowiednikiem:

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

Korzystanie z celów instalacji i wymagań

Cele instalacji i wymagania są używane razem do prezentowania użytkownikom poprawnego widoku produktów i usług, z których twoje rozszerzenie lub integracja jest zgodna. Na przykład określenie docelowego miejsca instalacji Microsoft.VisualStudio.Services z wymogiem api-version/3.0 oznacza, że rozszerzenie działa z usługą Azure DevOps.

Napiwek

Aby uzyskać więcej informacji na temat interfejsów API REST, zobacz Dokumentację REST API.

Przykład: rozszerzenie korzystające z interfejsów API w wersji 3.0

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

Rozwiązuje następujące cele instalacji:

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

Przykład: integracja korzystająca z interfejsów API w wersji 2.0

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

Rozwiązuje następujące cele instalacji:

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

Wymagania

Wymagania umożliwiają określenie możliwości i innych funkcji wymaganych przez rozszerzenie. Możesz użyć tych wymagań, aby ograniczyć miejsce publikowania lub instalowania rozszerzenia.

Wymagania są używane przez witrynę Visual Studio Marketplace, aby wyświetlić listę produktów i środowisk, z którymi twoje rozszerzenie jest zgodne, co pomaga klientom zrozumieć, czy rozszerzenie działa z ich wersją usługi Azure DevOps, na przykład.

Zobacz poniższy przykład sposobu, w jaki wymagania są określone w manifeście rozszerzenia.

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

W tym przykładzie rozszerzenie wymaga wersji 3.0 interfejsów API, co oznacza, że można go zainstalować tylko w usłudze Azure DevOps. Wymaga również, aby rozszerzenie ms.vss-dashboards-web (i jego widget-catalog wkład) było zainstalowane (i włączone) w kolekcji przed zainstalowaniem Twojego rozszerzenia.

Obsługiwane wymagania

Typ opis Sprawdzone podczas publikowania? Sprawdzono instalację?
environment/cloud Wymaga uruchomienia w środowisku chmury Tak Tak
environment/onprem Wymaga uruchomienia w środowisku lokalnym Tak Tak
api-version/{version} Wymaga określonej wersji interfejsu API (minimalna) Nie. Tak
extension/{id} Wymaga zainstalowania/włączenia określonego rozszerzenia Nie. Tak
contribution/{id} Wymaga udostępnienia określonego wkładu Nie. Tak
contributionType/{id} Wymaga, aby dostępny był określony typ wkładu Nie. Tak

Uwaga

  • Użyj environment/cloud i environment/onprem tylko wtedy, gdy twoje rozszerzenie ma wymagania związane z topologią, które wymagają uruchomienia w konkretnym środowisku.
  • extension, contribution, i contributionType żądania są oceniane podczas instalacji i wymagają, że określone rozszerzenie jest już zainstalowane i włączone w organizacji lub kolekcji.

Files

Sekcja files zawiera odwołania do wszystkich plików, które mają zostać dołączone do rozszerzenia. Można dodawać zarówno foldery, jak i pojedyncze pliki:

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

Właściwości

Właściwości sekcji Pliki:

  • path — ścieżka do zasobu na dysku, która może być względna względem katalogu głównego.
  • addressable — (opcjonalnie) ustaw wartość true , jeśli chcesz, aby plik był adresowalny pod adresem URL. Wartość domyślna to false.
  • packagePath — (opcjonalnie) ścieżka do zasobu w pakiecie. Domyślnie jest to ścieżka względna na dysku, zaczynająca się od katalogu głównego.
  • contentType — opcjonalny typ MIME pliku. Domyślnie opiera się na najlepszym domyśle na podstawie rozszerzenia pliku i ustawień systemu operacyjnego.
  • assetType — (opcjonalnie) Określ wartość atrybutu Type wpisu zasobu w manifeście VSIX. Może być również tablicą ciągów, w takim przypadku do tego pliku zostanie dodanych wiele wpisów zasobów. Domyślnie jest ustawione na ścieżkę packagePath.
  • lang — (opcjonalnie) Język tego elementu zawartości. Zlokalizowane pliki są serwowane na podstawie nagłówka Accept-Language. Pozostaw wartość pustą, aby oznaczyć ten plik w domyślnym (lub rezerwowym) języku. Zlokalizowane wersje tego samego pliku powinny mieć ten sam typ zasobu.

Udziały

Każdy wpis wkładu ma następujące właściwości:

  • id — referencyjny identyfikator (tekst) dla udziału. Upewnij się, że każdy identyfikator wkładu jest unikatowy w ramach rozszerzenia. Zobacz odniesienia do wkładów i typów.
  • type — Identyfikator typu wkładu tego udziału.
  • description — (Opcjonalnie) Ciąg opisujący, co udostępnia wkład.
  • targets — tablica identyfikatorów wkładów, na które kierowane są współtworzenia. Zobacz Ukierunkowanie wkładów.
  • properties — (opcjonalnie) Obiekt, który zawiera właściwości wkładu jako zdefiniowane w typie wkładu.

Aby uzyskać więcej informacji, zobacz omówienie modelu współtworzenia.

Typy wkładów

Każdy wpis wkładu ma następujące właściwości:

  • id — identyfikator odniesienia (ciąg znaków) dla typu udziału. Upewnij się, że każdy identyfikator typu wkładu jest unikatowy w obrębie rozszerzenia. Zobacz odniesienia do wkładów i typów.
  • name — przyjazna nazwa typu udziału.
  • description — (Opcjonalnie) Ciąg opisujący bardziej szczegółowo typ udziału.
  • properties — Słownik (opcjonalnie) mapujący nazwy właściwości na ich opisy. Te cechy opisują wymagane i opcjonalne właściwości, których mogą używać wkłady tego rodzaju.

Opisy właściwości mają następujące cechy:

  • description — (opcjonalnie) Ciąg opisujący, do czego służy właściwość.
  • required — (Opcjonalnie) Wartość logiczna, która wskazuje, że właściwość jest wymagana dla wszystkich wkładów tego typu, jeśli wartość jest true.
  • type — typ wartości, którą może mieć właściwość, która może być ciągiem, identyfikatorem URI, identyfikatorem GUID, wartością logiczną, liczbą całkowitą, podwójną, datą/godziną, tablicą lub obiektem.

Aby uzyskać więcej informacji, zobacz omówienie modelu współtworzenia.

Odniesienie do wkładów i typów

Użyj unikatowych identyfikatorów, aby odwoływać się do wkładów i rodzajów wkładów. Odwołaj się do typów za pomocą właściwości type i odwołaj się do innych wkładów za pomocą właściwości targets.

  • Pełne odniesienie wkładu obejmuje identyfikator wydawcy, identyfikator rozszerzenia oraz identyfikator wkładu/typu, oddzielony kropką (.). Na przykład ms.vss-web.hub jest pełnym identyfikatorem dla udziału, które ma identyfikator hub w rozszerzeniu vss-web opublikowanym przez wydawcę "ms" (Microsoft).
  • Odwołania do wkładu względnego mogą być używane w manifeście rozszerzenia w celu odniesienia się do innego wkładu lub typu wkładu w ramach tego samego rozszerzenia. W tym przypadku identyfikatory wydawcy i rozszerzenia nie są uwzględniane, a identyfikator jest kropką (.), a następnie identyfikatorem udziału. Na przykład .hub można użyć w ramach rozszerzenia vss-web wymienionego wcześniej jako skrótu dla ms.vss-web.hub.

Kierowanie wkładem

Niektóre wkłady działają jako kontenery, na które są ukierunkowane inne wkłady.

  • Wkład w koncentrator może dotyczyć Grup Hubu. Gdy strona jest renderowana, interfejs webowy wyświetla wszystkie wkłady do centrum skierowane do wybranej grupy centrum. Grupy hubów są przeznaczone dla kolekcji grup hubów, która definiuje zestaw grup pokazywanych w określonym obszarze nawigacyjnym, na przykład na stronach administracyjnych na poziomie projektu.
  • Różne typy wkładów mogą być skierowane na menu: akcja, akcja-hiperłącze i dostawca działań. Akcje i akcje hiperłączy zapewniają wpisy pojedynczych elementów menu. Dostawca akcji może udostępnić wiele dynamicznych elementów menu. Dla danego menu elementy są agregowane we wszystkich wkładach (dowolnego z tych typów), które dotyczą tego konkretnego wkładu do menu.

Dodawanie ikony centrum

Aby uzyskać informacje na temat dodawania ikony do centrum, zapoznaj się ze wskazówkami dotyczącymi ikony centrum.

Obsługiwane usługi odznaki

Witryna Marketplace obsługuje tylko znaczki z następujących zaufanych usług:

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

Uwaga

Zastąp vsmarketplacebadge.apphb.comvsmarketplacebadges.dev.

Aby wyświetlić znaczek z innej usługi, skontaktuj się z Obsługą Klienta w Społeczności Deweloperów.

Przykładowy manifest

Następujące rozszerzenie dodaje akcję do menu kontekstowego ukończonych kompilacji i element w grupie Centrum kompilacji.

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