Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Las extensiones agregan funcionalidades a Azure DevOps mediante la declaración de tipos de contribución y instancias de contribución. Un tipo de contribución define un contrato (las propiedades y el comportamiento) que deben implementar las contribuciones de ese tipo. Una contribución es una instancia concreta de un tipo de contribución (por ejemplo, un concentrador o una tarea de compilación).
Sugerencia
Si va a iniciar una nueva extensión de Azure DevOps, pruebe primero estas colecciones de ejemplo mantenidas: funcionan con compilaciones de productos actuales y cubren escenarios modernos (por ejemplo, agregar pestañas en páginas de solicitud de incorporación de cambios).
- Ejemplo de extensión de Azure DevOps (GitHub): un ejemplo de inicio compacto que muestra patrones de extensión comunes: https://github.com/microsoft/azure-devops-extension-sample
- Ejemplos de extensión de Azure DevOps (guía de colecciones y contribuciones heredadas): instale para inspeccionar los destinos de la interfaz de usuario o vea el origen: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide y https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Ejemplos de Microsoft Learn (examinar ejemplos de Azure DevOps)—ejemplos curados y actualizados en Microsoft Docs: /samples/browse/?terms=azure%20devops%20extension
Si un ejemplo no funciona en su organización, instálelo en una organización personal o de prueba y compare los identificadores de destino y las versiones de API del manifiesto de extensión con los documentos actuales. Para obtener referencia y API, consulte:
Para obtener más información, consulte:
Tipos de contribución
Un tipo de contribución define las propiedades y reglas que deben seguir las contribuciones de ese tipo. Un tipo de contribución puede extender otro tipo de contribución, heredando sus propiedades.
Entre los tipos de contribución comunes se incluyen:
hubactionbuild-task
Cada definición de propiedad incluye:
- tipo de propiedad (por ejemplo, cadena o booleano)
- si se requiere la propiedad
- un valor predeterminado opcional
Example
Una declaración de tipo de contribución en un manifiesto tiene este aspecto:
{
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "Optional ordering value indicating the hub's position within the hub group",
"type": "integer"
}
}
}
]
}
Contribuciones
Una contribución es una instancia de un tipo de contribución. Por ejemplo, el Queries centro en el grupo centro de trabajo es una contribución de tipo hub y la Publish Test Results tarea de compilación es una contribución de tipo build-task.
Todas las contribuciones deben especificar un tipo y especificar valores para las propiedades necesarias para ese tipo de contribución.
Example
Este es un ejemplo de una declaración de contribución del centro en un manifiesto de extensión:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Contribuciones objetivo
Una contribución puede tener como destino una o varias contribuciones, lo que crea una relación entre la contribución y cada uno de sus objetivos. El sistema puede detectar contribuciones para el destino en tiempo de ejecución. Por ejemplo, una contribución (hub) podría tener como Explorer destino una contribución específica hub-group (Build).
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Cuando se representa el grupo de concentradores, el sistema puede consultar todas las contribuciones del concentrador que tienen como destino el grupo de concentradores para determinar qué concentradores se van a representar.
Identificación de contribuciones y tipos
Cada contribución y su tipo deben tener un identificador único dentro de la extensión en la que se declara.
Un identificador de contribución completo incluye los siguientes elementos, que se separan con un punto . :
- Id. del publicador
- Id. de extensión
- Id. de contribución/tipo
Por ejemplo: ms.vss-web.hub es el identificador completo de la siguiente contribución:
- Id. del publicador:
ms - Id. de extensión:
vss-web - Identificador de contribución/tipo:
hub
Puede usar referencias de contribuciones relativas dentro de un manifiesto de extensión para hacer referencia a una contribución o tipo de contribución en relación con otra dentro de esa misma extensión. En este caso, los identificadores de editor y extensión no se incluyen y el identificador es un punto . seguido del identificador de contribución. Por ejemplo, .hub se puede usar dentro de la extensión vss-web mencionada anteriormente como atajo para ms.vss-web.hub.