Dokumentacja manifestu rozszerzenia

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Każde rozszerzenie ma plik manifestu JSON, który definiuje podstawowe informacje o rozszerzeniu. Plik definiuje również sposób rozszerzania i ulepszania środowiska. 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ć. Definiuje również współtworzenie 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"
        }
    ]
}

Wymagane atrybuty

Te właściwości są wymagane:

Właściwości 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.
version 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
name 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, w ramach których 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 PipelinesAzure Boards, 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 opublikowania, upewnij się, że jego wersja to >1.2.8. Może być konieczne zatwierdzenie aktualizacji rozszerzenia z powodu ostatnich zmian zakresu.
    — Wymienione wcześniej kategorie są natywnie obecne w witrynach Visual Studio Marketplace i Azure DevOps Server 2019 i nowszych. W przypadku rozszerzeń przeznaczonych dla starszych wersji serwera TFS:
      — Jeśli klienci tfS uzyskują rozszerzenie za pośrednictwem witryny Visual Studio Marketplace (a nie galerii lokalnej) w kontekście połączonym, użyj wcześniej określonych kategorii.
      — Jeśli zamierzasz udostępnić rozszerzenie bezpośrednio (czyli nie za pośrednictwem witryny Visual Studio Marketplace) z klientem korzystającym z serwera TFS <=2018, użyj następujących kategorii: Kod, Planowanie i śledzenie, Kompilowanie i wydawanie, Testowanie, Współpraca i integracja. Jeśli musisz udostępnić zarówno za pośrednictwem witryny Visual Studio Marketplace, jak i bezpośrednio z klientem TFS <= 2018, musisz mieć 2 pakiety rozszerzeń.
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 lub TFS),
    Microsoft.TeamFoundation.Server- (rozszerzenie, które współpracuje z programem TFS),-
    Microsoft.VisualStudio.Services.Integration (integracje współpracujące z usługą Azure DevOps lub TFS)
    - Microsoft.TeamFoundation.Server.Integration (integracje współpracujące z programem TFS)

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

Właściwości opis Uwagi
Zakresów Tablica zakresów autoryzacji (ciągów) wyświetla uprawnienia wymagane przez rozszerzenie. Na przykład i vs.code_write wskazuje, vso.work że rozszerzenie wymaga dostępu tylko do odczytu do elementów roboczych i dostępu do odczytu/zapisu do kodu źródłowego (i powiązanego zasobu). 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 względnych adresów URL określonych przez współtworzenie 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.
Składki Tablica współtworzeń systemu.
contributionTypes 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

Te opcjonalne właściwości ułatwiają użytkownikom odnajdywanie i poznawanie rozszerzenia:

Właściwości opis Uwagi
opis Kilka zdań opisujących rozszerzenia. Ograniczone do 200 znaków. Opis powinien być "skokiem windy" rozszerzenia — kilka wierszy, aby opisać rozszerzenie w witrynie Marketplace i sprawić, że ludzie chcą go 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
tagów Tablica tagów ciągów ułatwia użytkownikom znajdowanie rozszerzenia. Przykłady: agile, , task timerproject managementi tak dalej.
Zrzuty ekranu Tablica obrazów, których nie można uwzględnić w zawartości. Zrzuty ekranu są bardziej cenne w przypadku polecania zawartości i powinny być używane w celu ułatwienia utworzenia strony szczegółów rynku jakości 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ści 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. Umożliwia rozbudowanie, eksploatacyjne i dołączanie zrzutów ekranu w razie potrzeby. overview.md Dołącz plik jako podstawowy element zawartości. Zakłada się, że każdy plik ma format Języka Markdown w usłudze GitHub Flavored. Każdy path element 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 na temat rozszerzenia, uzyskać pomoc techniczną i przenieść. 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 -Licencja. privacypolicy - zasady ochrony prywatności dla rozszerzenia. support — uzyskaj pomoc i pomoc techniczną 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 metadanych, takich jak TravisCI, Appveyor itd., z zatwierdzonych witryn znaczków Prawidłowe klucze: href — połącz użytkownika po wybraniu wskaźnika. uri - Bezwzględny adres URL obrazu znaczka do wyświetlenia. description - Opis znaczka, który ma być wyświetlany po umieszczeniu kursora.
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 widoczne tylko dla wydawcy i 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 .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"
    ]
}            

Oznaczanie rozszerzenia jako płatne

Jeśli chcesz sprzedać rozszerzenie w witrynie Marketplace, możesz oznaczyć je flagą i __BYOLENFORCED tagiem Paid (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. Ponadto 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 sprawdzanie płatnego licencjonowania i nie będziemy już wymagać zastąpienia. Na razie upewnij się, że rozszerzenie jest wyświetlane zgodnie z oczekiwaniami. Każde zastąpienie składa się z "identyfikatora" i "zachowania". Wartość "ID" musi być zgodna z identyfikatorem składek 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 kierować usługę Azure DevOps, ale nie chcesz wyświetlać opcji Pobierz dla rozszerzenia, dodaj __DoNotDownload tag (zaczyna się od dwóch podkreśleń) do manifestu rozszerzenia. Jeśli przenosisz rozszerzenie z wcześniej oferowanego licencjonowania rozliczeń i licencjonowania 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

Karty

Pytania i pytania dotyczące witryny Marketplace — właściwość CustomerQnASupport

Wszystkie rozszerzenia w witrynie Visual Studio Marketplace mają sekcję Pytań i odpowiedzi, aby umożliwić jedno na jednym publicznym rozmowach między użytkownikami rozszerzeń i wydawcami. Wydawcy mogą wybierać między pytaniami w witrynie Marketplace, problemami z usługą GitHub lub niestandardowym adresem URL pytań i pytań. W witrynie Marketplace można wyłączyć 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 pytań w witrynie Marketplace.

W przypadku innego środowiska niż jedna z opcji domyślnych 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 witryny Marketplace lub niestandardowej Q&A; false na potrzeby wyłączania pytań i odpowiedzi
  • url — ciąg, adres URL dla niestandardowego pytań i pytań

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 witryny Marketplace Q & A zamiast problemów z usługą GitHub

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

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

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

Zakresy

W rozszerzeniu można zdefiniować jeden lub więcej zakresów. Te zakresy określają, do których zasobów może uzyskiwać dostęp rozszerzenie, oraz operacje, do których może wykonywać te zasoby. 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 opis
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, zarządzanie) Umożliwia zarządzanie pulami, kolejkami i agentami.
vso.environment_manage Środowisko (odczyt, zarządzanie) Umożliwia zarządzanie pulami, kolejkami, agentami i środowiskami.
Analiza vso.analytics Analiza (odczyt) Przyznaje możliwość wykonywania zapytań dotyczących danych analitycznych.
Inspekcja vso.auditlog Dziennik inspekcji (odczyt) Umożliwia odczytywanie dziennika inspekcji użytkownikom.
vso.auditstreams_manage Inspekcja Strumienie (odczyt) Umożliwia zarządzanie strumieniami inspekcji użytkownikom.
Kompilacja vso.build Kompilacja (odczyt) 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.build_execute Kompilacja (odczyt i wykonanie) Umożliwia dostęp do artefaktów kompilacji, w tym wyników kompilacji, definicji i żądań oraz możliwość kolejkowania kompilacji, aktualizowania właściwości kompilacji oraz odbierania powiadomień o zdarzeniach kompilacji za pośrednictwem punktów zaczepienia usługi.
Kod vso.code Kod (odczyt) Przyznaje możliwość odczytywania kodu źródłowego i metadanych dotyczących zatwierdzeń, 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 punktów zaczepienia usługi.
vso.code_write Kod (odczyt i zapis) 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. Ponadto umożliwia tworzenie żądań ściągnięcia i przeglądów kodu oraz zarządzanie nimi oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi.
vso.code_manage Kod (odczyt, zapis i zarządzanie) 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_full Kod (pełny) 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. 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. Obejmuje również ograniczoną obsługę interfejsów API OM klienta.
vso.code_status Kod (stan) Umożliwia odczytywanie i zapisywanie stanu zatwierdzenia i żądania ściągnięcia.
serwer Połączenie vso.connected_server serwer Połączenie Umożliwia dostęp do punktów końcowych potrzebnych z lokalnego serwera połączonego.
Uprawnienia vso.entitlements Uprawnienia (odczyt) Zapewnia dostęp tylko do odczytu do punktu końcowego uprawnień licencjonowania w celu uzyskania uprawnień do konta.
vso.memberentitlementmanagement MemberEntitlement Management (odczyt) Daje możliwość odczytywania użytkowników, ich licencji, a także projektów i rozszerzeń, do których mogą uzyskiwać dostęp.
vso.memberentitlementmanagement_write MemberEntitlement Management (zapis) Umożliwia zarządzanie użytkownikami, ich licencjami oraz projektami i rozszerzeniami, do których mogą uzyskiwać dostęp.
Rozszerzenia vso.extension Rozszerzenia (odczyt) Przyznaje możliwość odczytywania zainstalowanych rozszerzeń.
vso.extension_manage Rozszerzenia (odczyt i zarządzanie nimi) Przyznaje możliwość instalowania, odinstalowywania i wykonywania innych akcji administracyjnych na zainstalowanych rozszerzeniach.
vso.extension.data Dane rozszerzenia (odczyt) Umożliwia odczytywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia.
vso.extension.data_write Dane rozszerzenia (odczyt i zapis) Umożliwia odczytywanie i zapisywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia.
Wykres i tożsamość vso.graph Graf (odczyt) Umożliwia odczytywanie informacji o członkostwie użytkowników, grupach, zakresie i grupach.
vso.graph_manage Graf (zarządzanie) Przyznaje możliwość odczytywania informacji o użytkowniku, grupie, zakresie i członkostwie w grupach oraz dodawaniu użytkowników, grup i zarządzania członkostwem w grupach.
vso.identity Tożsamość (odczyt) Umożliwia odczytywanie tożsamości i grup.
vso.identity_manage Tożsamość (zarządzanie) Daje możliwość odczytu, zapisu i zarządzania tożsamościami i grupami.
Grupa maszyn vso.machinegroup_manage Grupa wdrażania (odczyt, zarządzanie) Umożliwia zarządzanie grupami wdrożeń i pulami agentów.
Marketplace vso.gallery Portal Marketplace Przyznaje dostęp do odczytu publicznym i prywatnym elementom i wydawcom.
vso.gallery_acquire Marketplace (uzyskiwanie) Przyznaje dostęp do odczytu i możliwość uzyskiwania elementów.
vso.gallery_publish Marketplace (publikowanie) Przyznaje dostęp do odczytu i możliwość przekazywania, aktualizowania i udostępniania elementów.
vso.gallery_manage Marketplace (zarządzanie) Przyznaje dostęp do odczytu oraz możliwość publikowania elementów i wydawców oraz zarządzania nimi.
Powiadomienia vso.notification Powiadomienia (odczyt) Zapewnia dostęp do odczytu do subskrypcji i metadanych zdarzeń, w tym do filtrowania wartości pól.
vso.notification_write Powiadomienia (zapis) Zapewnia dostęp do odczytu i zapisu w subskrypcjach oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól z możliwością filtrowania.
vso.notification_manage Powiadomienia (zarządzanie) Zapewnia dostęp do odczytu, zapisu i zarządzania subskrypcjami oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól możliwych do filtrowania.
vso.notification_diagnostics Powiadomienia (diagnostyka) Zapewnia dostęp do dzienników diagnostycznych związanych z powiadomieniami i zapewnia możliwość włączania diagnostyki dla poszczególnych subskrypcji.
Pakowanie vso.packaging Pakowanie (odczyt) Przyznaje możliwość odczytywania kanałów informacyjnych i pakietów.
vso.packaging_write Pakowanie (odczyt i zapis) Przyznaje możliwość tworzenia i odczytywania kanałów informacyjnych i pakietów.
vso.packaging_manage Tworzenie pakietów (odczyt, zapis i zarządzanie) Umożliwia tworzenie, odczytywanie, aktualizowanie i usuwanie źródeł danych i pakietów.
Zasoby potoku vso.pipelineresources_use Zasoby potoku (użyj) Przyznaje możliwość zatwierdzenia żądania potoku do korzystania z 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) Umożliwia zarządzanie chronionym zasobem lub żądaniem potoku w celu korzystania z chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, bezpiecznych plików, połączenia z usługą i grupy zmiennych.
Projekt i zespół vso.project Projekt i zespół (odczyt) Przyznaje możliwość odczytywania projektów i zespołów.
vso.project_write Projekt i zespół (odczyt i zapis) Przyznaje możliwość odczytywania i aktualizowania projektów i zespołów.
vso.project_manage Projekt i zespół (odczyt, zapis i zarządzanie nimi) Przyznaje możliwość tworzenia, odczytywania, aktualizowania i usuwania projektów i zespołów.
Wydanie vso.release Wydanie (odczyt) Przyznaje możliwość odczytywania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania.
vso.release_execute Wydanie (odczyt, zapis i wykonywanie) Przyznaje możliwość odczytywania i aktualizowania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania oraz możliwości kolejkowania nowej wersji.
vso.release_manage Wydanie (odczyt, zapis, wykonywanie i zarządzanie) Daje możliwość odczytywania, aktualizowania i usuwania artefaktów wydania, w tym wydań, definicji wydań i środowiska wydania oraz możliwości kolejkowania i zatwierdzania nowej wersji.
Zabezpieczanie plików vso.securefiles_read Bezpieczne pliki (odczyt) Przyznaje możliwość odczytywania bezpiecznych plików.
vso.securefiles_write Bezpieczne pliki (odczyt, tworzenie) Umożliwia odczytywanie i tworzenie bezpiecznych plików.
vso.securefiles_manage Zabezpieczanie plików (odczyt, tworzenie i zarządzanie nimi) Daje możliwość odczytywania, tworzenia i zarządzania bezpiecznymi plikami.
Bezpieczeństwo vso.security_manage Zabezpieczenia (zarządzanie) Przyznaje możliwość odczytu, zapisu i zarządzania uprawnieniami zabezpieczeń.
Połączenia z usługami vso.serviceendpoint Punkty końcowe usługi (odczyt) Przyznaje możliwość odczytywania punktów końcowych usługi.
vso.serviceendpoint_query Punkty końcowe usługi (odczyt i zapytanie) Przyznaje możliwość odczytu i wykonywania zapytań dotyczących punktów końcowych usługi.
vso.serviceendpoint_manage Punkty końcowe usługi (odczyt, wykonywanie zapytań i zarządzanie nimi) Daje możliwość odczytu, wykonywania zapytań i zarządzania punktami końcowymi usługi.
Ustawienia vso.settings Ustawienia (odczyt) Przyznaje możliwość odczytywania ustawień.
vso.settings_write Ustawienia (odczyt i zapis) Przyznaje możliwość tworzenia i odczytywania ustawień.
Symbole vso.symbols Symbole (odczyt) Przyznaje możliwość odczytywania symboli.
vso.symbols_write Symbole (odczyt i zapis) Przyznaje możliwość odczytywania i zapisywania symboli.
vso.symbols_manage Symbole (odczyt, zapis i zarządzanie) Umożliwia odczytywanie symboli, zapisywanie i zarządzanie nimi.
Grupy zadań vso.taskgroups_read Grupy zadań (odczyt) Przyznaje możliwość odczytywania grup zadań.
vso.taskgroups_write Grupy zadań (odczyt, tworzenie) Umożliwia odczytywanie i tworzenie grup zadań.
vso.taskgroups_manage Grupy zadań (odczyt, tworzenie i zarządzanie nimi) Przyznaje możliwość odczytywania, tworzenia grup zadań i zarządzania nimi.
Pulpit nawigacyjny zespołu vso.dashboards Pulpity nawigacyjne zespołu (odczyt) Umożliwia odczytywanie informacji o pulpicie nawigacyjnym zespołu.
vso.dashboards_manage Pulpity nawigacyjne zespołu (zarządzanie) Umożliwia zarządzanie informacjami o pulpicie nawigacyjnym zespołu.
Zarządzanie testami vso.test Zarządzanie testami (odczyt) Umożliwia odczytywanie planów testów, przypadków, wyników i innych artefaktów związanych z zarządzaniem testami.
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.
Wątki vso.threads_full Wątki żądania ściągnięcia Umożliwia odczytywanie i zapisywanie wątków komentarza żądania ściągnięcia.
Tokeny vso.tokens Tokeny autoryzacji delegowanej Przyznaje użytkownikom możliwość zarządzania delegowanymi tokenami autoryzacji.
vso.tokenadministration Administracja istration tokenu 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 (zapis) Przyznaje możliwość zapisu w profilu.
Grupy zmiennych vso.variablegroups_read Grupy zmiennych (odczyt) Przyznaje możliwość odczytywania grup zmiennych.
vso.variablegroups_write Grupy zmiennych (odczyt, tworzenie) Przyznaje możliwość odczytywania i tworzenia grup zmiennych.
vso.variablegroups_manage Grupy zmiennych (odczyt, tworzenie i zarządzanie) Przyznaje możliwość odczytywania, tworzenia grup zmiennych i zarządzania nimi.
Witryna Wiki vso.wiki Wiki (odczyt) 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) Daje możliwość odczytywania, tworzenia i aktualizowania stron typu wiki, stron typu wiki i załączników typu wiki.
Elementy robocze vso.work Elementy robocze (odczyt) Umożliwia odczytywanie elementów roboczych, zapytań, tablic, ścieżek obszaru i iteracji oraz innych metadanych powiązanych ze śledzeniem elementów roboczych. Ponadto umożliwia wykonywanie zapytań, wyszukiwanie elementów roboczych i odbieranie powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi.
vso.work_write Elementy robocze (odczyt i zapis) Umożliwia odczytywanie, tworzenie i aktualizowanie elementów roboczych i zapytań, metadanych tablicy aktualizacji, ścieżek obszaru odczytu i iteracji innych metadanych powiązanych elementów roboczych, wykonywania zapytań i odbierania powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi.
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. Zapewnia również możliwość odbierania powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi.
Personifikacja użytkownika user_impersonation Personifikacja użytkownika Masz pełny dostęp do interfejsów API REST usługi Visual Studio Team Services. Żądaj i/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 zainstalowano rozszerzenie (i autoryzował poprzedni zestaw zakresów), musisz autoryzować nowe zakresy przed uaktualnieniem do najnowszej wersji.

Sekcja Akcja wymagana w centrum Ustawień rozszerzenia zawiera użytkownika, który, jeśli w ogóle, zainstalowane rozszerzenia 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: jest instalowany w obu. Skrót do Microsoft.VisualStudio.Services.Cloud wersji i Microsoft.TeamFoundation.Server[14.2,)

Obsługiwane identyfikatory 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śline przy użyciu:
    • [: minimalna wersja włącznie
    • ]: maksymalna wersja włącznie
    • (: minimalna wersja na wyłączność
    • ): maksymalna wersja na wyłączność

Numery wersji serwera Azure DevOps Server:

Zwolnij Wydania 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 elementów docelowych i wymagań dotyczących instalacji

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

Napiwek

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

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.ServerWersja: [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.IntegrationWersja: [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ż ms.vss-dashboards-web zainstalowania rozszerzenia (i jego widget-catalog współtworzenia) w kolekcji przed zainstalowaniem rozszerzenia.

Obsługiwane wymagania

Type Opis Zaewidencjonowane 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 udziału Nie. Tak
contributionType/{id} Wymaga dostępności określonego typu współtworzenia Nie. Tak

Uwaga

  • Użyj environment/cloud polecenia i environment/onprem tylko wtedy, gdy rozszerzenie ma wymagania związane z topologią, które wymagają uruchomienia w danym środowisku.
  • extension, contributioni contributionType wymagania są oceniane w czasie instalacji i wymagają, aby określone rozszerzenie było już zainstalowane i włączone w organizacji/kolekcji.

Pliki

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óry może być względny dla 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 ścieżka względna na dysku z katalogu głównego.
  • contentType — opcjonalny typ MIME pliku. Domyślnie najlepiej odgadnąć na podstawie ustawień rozszerzenia pliku i 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 tym przypadku wiele wpisów elementów zawartości zostanie dodanych dla tego pliku. Domyślnie jest to packagePath.
  • lang — (opcjonalnie) Język tego elementu zawartości. Zlokalizowane pliki są obsługiwane 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 współtworzenia ma następujące właściwości:

  • id — identyfikator odwołania (ciąg) dla udziału. Identyfikator każdego współtworzenia musi być unikatowy w obrębie rozszerzenia. Zobacz odwoływanie się do współtworzenia i typów.
  • type — identyfikator współtworzenia tego udziału.
  • description — (Opcjonalnie) Ciąg opisujący, co udostępnia wkład.
  • targets — tablica identyfikatorów współtworzenia, których celem jest współtworzenie udziału (współtworzenie). Zobacz Określanie elementów współtworzenia elementów docelowych.
  • properties — (opcjonalnie) Obiekt, który zawiera właściwości współtworzenia zgodnie z definicją w typie współtworzenia.

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

Typy kontrybuców

Każdy wpis współtworzenia ma następujące właściwości:

  • id — identyfikator odwołania (ciąg) dla typu udziału. Identyfikator każdego typu współtworzenia musi być unikatowy w obrębie rozszerzenia. Zobacz odwoływanie się do współtworzenia i typów.
  • name — przyjazna nazwa typu udziału.
  • description — (Opcjonalnie) Ciąg opisujący bardziej szczegółowo typ udziału.
  • properties — (opcjonalnie) Słownik mapujący nazwy właściwości na opisy właściwości. Te właściwości opisują wymagane i opcjonalne właściwości, których mogą używać współtworzenie tego typu.

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

  • description — (opcjonalnie) Ciąg opisujący, do czego służy właściwość.
  • required — (Opcjonalnie) Wartość logiczna, która, jeśli wartość true wskazuje, że właściwość jest wymagana dla wszystkich składek tego typu.
  • 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.

Odwoływanie się do współtworzenia i typów

Użyj unikatowych identyfikatorów, aby odwoływać się do kontrybucencji i typów kontrybucencji. Odwołania do typów z właściwością type i odwołują się do innych współtworzeń z właściwością targets .

  • Pełna dokumentacja współtworzenia obejmuje identyfikator wydawcy, identyfikator rozszerzenia i identyfikator współtworzenia/typu oddzielony kropką (.). Na przykład ms.vss-web.hub jest pełnym identyfikatorem udziału z identyfikatorem "hub" w rozszerzeniu "vss-web" opublikowanym przez wydawcę "ms" (Microsoft).
  • Odwołania do współtworzenia względnego mogą być używane w manifeście rozszerzenia dla odwołania współtworzenia do innego typu współtworzenia lub współtworzenia w ramach tego samego rozszerzenia. W takim przypadku identyfikatory wydawcy i rozszerzenia NIE są uwzględniane, a identyfikator jest kropką (.), po której następuje identyfikator współtworzenia. Na przykład plik ".hub" może być używany w rozszerzeniu "vss-web" wspomnianym wcześniej jako skrót do "ms.vss-web.hub".

Współtworzenie elementów docelowych

Niektóre współtworzenia działają jako kontenery objęte innymi współtworzeniami.

  • Współtworzenie centrum może dotyczyć grup koncentratora. Gdy strona jest renderowana, internetowy interfejs użytkownika wyświetla wszystkie współtworzenie centrum, które są przeznaczone dla wybranej grupy centrum. Grupy koncentratora są przeznaczone dla kolekcji grup centrów, która definiuje zestaw grup centrum, które są wyświetlane w danym obszarze nawigacji, na przykład strony administracyjne na poziomie projektu.
  • Różne typy współtworzeń mogą kierować menu docelowe: akcja, akcja-hiperlink i dostawca akcji. Akcje i akcje hiperłącza zapewniają wpisy elementów z pojedynczym menu. Dostawca akcji może udostępnić wiele dynamicznych elementów menu. W przypadku danego menu elementy są agregowane we wszystkich współtworzeniach (dowolnych z tych typów), które są przeznaczone dla tego konkretnego udziału w 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 znaczka

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 ciąg "vsmarketplacebadge.apphb.com" ciągiem "vsmarketplacebadges.dev".

Aby wyświetlić znaczek z innej usługi, skontaktuj się z .vsmarketplace@microsoft.com

Przykładowy manifest

Następujące rozszerzenie współtworzy akcję ukończonego menu kontekstowego kompilacji i centrum do grupy 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"
            }
        }
    ]
}