Creación de un consumidor personalizado para enlaces de servicio
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Con los enlaces de servicio, puede notificar a los sistemas de terceros los eventos que se producen en el proyecto. Puede usar un consumidor personalizado para enviar un mensaje HTTP al punto de conexión definido en el manifiesto de la extensión.
En este artículo se explica el desarrollo de una extensión que implementa un servicio de consumidor de ejemplo, que incluye los siguientes eventos y acciones.
- Eventos admitidos que desencadenan las siguientes acciones:
- Código insertado
- Solicitud de incorporación de cambios creada
- Solicitud de incorporación de cambios actualizada
- Acciones admitidas para realizar cuando se producen eventos:
- Acción do (Enviar mensaje HTTP)
Nota
En este artículo, nos referimos al directorio principal del proyecto como "home".
Para obtener más información, consulte el repositorio de GitHub de ejemplo de extensión. Para obtener una lista de todos los eventos admitidos que puede usar como desencadenadores para la extensión de consumidor personalizada, consulte Lista de tipos de eventos.
Sugerencia
Consulte nuestra documentación más reciente sobre el desarrollo de extensiones mediante el SDK de extensión de Azure DevOps.
Funcionamiento de los enlaces de servicio
Los publicadores de enlaces de servicio definen un conjunto de eventos. Las suscripciones escuchan y esperan los eventos y definen las acciones para cuando se desencadena el evento.
Esta es una descripción general de cómo funcionan todas nuestras implementaciones de enlace de servicio. En nuestro caso, especificamos nuestro consumidor definido por una extensión, así como la acción especificada para cuando se produce un evento.
Creación de la extensión
Agregue la contribución específica para la implementación de consumidor personalizada al archivo de manifiesto básico. Vea el ejemplo siguiente de cómo debe tener el manifiesto después de agregar la contribución.
{
"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"
}
}
]
}
}
]
}
Nota
Recuerde actualizar la publisher
propiedad .
Para cada contribución de la extensión, el manifiesto define los siguientes elementos.
- Tipo de contribución: servicio de consumidor (ms.vss-servicehooks.consumer) en este caso
- Destino de contribución: servicios de consumidor (ms.vss-servicehooks.consumers) en este caso
- Propiedades específicas de cada tipo de contribución
Los consumidores tienen las siguientes propiedades.
Propiedad | Descripción |
---|---|
id | Identificador único para el servicio de consumidor. |
name | Nombre del consumidor personalizado, que es visible durante la creación de la suscripción de enlace de servicio. |
description | Describe el servicio de consumidor. |
informationUrl | Encuentra más información sobre tu extensión. |
inputDescriptors | Entradas que usarán los usuarios que crean suscripciones con el servicio de consumidor. |
actions | Describe las acciones que se van a realizar y qué eventos desencadenan esas acciones. |
Las acciones para el consumidor tienen las siguientes propiedades:
Propiedad | Descripción |
---|---|
id | Identificador del servicio de acción. |
name | Nombre de la acción. |
description | Descripción detallada de la acción. |
supportedEventTypes | Matriz de tipos de desencadenador para los que se puede usar esta acción. Para obtener más información, vea Lista de tipos de eventos. |
publishEvent.url | Dirección URL a la que se envía el mensaje HTTP. Los valores proporcionados por inputDescriptors pueden crear plantillas. Sus valores reales se definen por el usuario cuando se crea la suscripción. |
- Implemente la extensión en la organización de Azure DevOps y pruebela.