Sdílet prostřednictvím


Vytvoření vlastního příjemce pro volání služeb

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Pomocí volání služeb můžete informovat systémy třetích stran o událostech, ke kterým dochází v projektu. Vlastní příjemce můžete použít k odeslání zprávy HTTP do koncového bodu definovaného v manifestu rozšíření.

Tento článek vás provede vývojem rozšíření, které implementuje ukázkovou službu příjemce, která zahrnuje následující události a akce.

  • Podporované události, které aktivují následující akce:
    • Vložený kód
    • Žádost o přijetí změn vytvořená
    • Žádost o přijetí změn byla aktualizována.
  • Podporované akce, které se mají provést, když dojde k událostem:
    • Akce Provést (odeslat zprávu HTTP)

Poznámka:

V tomto článku odkazujeme na domovský adresář vašeho projektu jako "home".

Ukázková služba příjemce

Další informace najdete v ukázkovém úložišti GitHubu v příkladu rozšíření. Seznam všech podporovaných událostí, které můžete použít jako triggery pro vlastní rozšíření příjemce, najdete v tématu Seznam typů událostí.

Tip

Projděte si nejnovější dokumentaci k vývoji rozšíření pomocí sady SDK rozšíření Azure DevOps.

Jak fungují háky služby

Vydavatelé háku služby definují sadu událostí. Odběry naslouchají a čekají na události a definují akce pro aktivaci události.

Diagram hooků služby

Toto je obecný popis toho, jak fungují všechny implementace háku služby. V našem případě určíme příjemce definovaný rozšířením a také zadanou akci pro případ, kdy dojde k události.

Vytvoření rozšíření

  1. Podívejte se, jak vytvořit rozšíření úplně od začátku.

  2. Přidejte konkrétní příspěvek pro implementaci vlastního příjemce do základního souboru manifestu. Podívejte se na následující příklad toho, jak by měl manifest vypadat po přidání příspěvku.

{
    "manifestVersion": 1,
    "id": "samples-service-hooks-consumer",
    "version": "0.1.2",
    "name": "Service Hooks Sample",
    "description": "A simple extension that demonstrates how to contribute a consumer service into service hooks.",
    "publisher": "fabrikam",
    "public": false,
    "icons": {
        "default": "images/logo.png"
    },
    "scopes": [],
    "files": [
        {
            "path": "images",
            "addressable": true
        }
    ],
    "content": {
        "details": {
            "path": "readme.md"
        }
    },
    "categories": [
        "Developer samples"
    ],
    "targets": [
        {
            "id": "Microsoft.VisualStudio.Services"
        }
    ],
    "contributions": [
        {
            "id": "consumer",
            "type": "ms.vss-servicehooks.consumer",
            "targets": [
                "ms.vss-servicehooks.consumers"
            ],
            "properties": {
                "id": "consumer",
                "name": "Sample Consumer",
                "description": "Sample consumer service",
                "informationUrl": "https://aka.ms/vsoextensions",
                "inputDescriptors": [
                    {
                        "id": "url",
                        "isRequired": true,
                        "name": "URL",
                        "description": "URL to post event payload to",
                        "inputMode": "textbox"
                    }
                ],
                "actions": [
                    {
                        "id": "performAction",
                        "name": "Perform action",
                        "description": "Posts a standard event payload",
                        "supportedEventTypes": [
                            "git.push",
                            "git.pullrequest.created",
                            "git.pullrequest.updated"
                        ],
                        "publishEvent": {
                            "url": "{{{url}}}",
                            "resourceDetailsToSend": "all",
                            "messagesToSend": "all",
                            "detailedMessagesToSend": "all"
                        }
                    }
                ]
            }
        }
    ]
}

Poznámka:

Nezapomeňte aktualizovat publisher vlastnost.

Pro každý příspěvek ve vašem rozšíření manifest definuje následující položky.

  • Typ příspěvku – služba příjemce (ms.vss-servicehooks.consumer) v tomto případě
  • Cíl příspěvku – služby příjemců (ms.vss-servicehooks.consumer) v tomto případě
  • Vlastnosti specifické pro každý typ příspěvku

Uživatelé mají následující vlastnosti.

Vlastnost Popis
ID Jedinečné ID služby příjemce.
name Název vlastního příjemce, který se zobrazí při vytváření předplatného hooku služby.
description Popisuje vaši spotřebitelskou službu.
informationUrl Přečtěte si další informace o rozšíření.
inputDescriptors Vstupy, které budou používat uživatelé, kteří vytvářejí předplatná se službou příjemce.
akce Popisuje akce, které se mají provést a které události tyto akce aktivují.

Akce pro uživatele mají následující vlastnosti:

Vlastnost Popis
ID ID pro vaši službu akcí.
name Název akce.
description Podrobný popis akce
supportedEventTypes Pole typů aktivačních událostí, pro které lze tuto akci použít. Další informace najdete v tématu Seznam typů událostí.
publishEvent.url Adresa URL, do které se odešle zpráva HTTP. Lze ho vytvořit pomocí hodnot poskytovaných inputDescriptory. Jejich skutečné hodnoty jsou definovány uživatelem při vytvoření předplatného.
  1. Nasaďte rozšíření do organizace Azure DevOps a otestujte ho.

Další kroky