Consulta de datos de seguimiento del trabajo mediante Analytics
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Puede consultar los datos de seguimiento del trabajo de Azure DevOps mediante las consultas básicas proporcionadas en este artículo. Estas consultas abordan las necesidades diarias al tiempo que muestran diversas funcionalidades de Analytics. Puede adaptar la mayoría de estas consultas para satisfacer sus necesidades.
En este artículo se crea información proporcionada en Construcción de consultas de OData para análisis y referencia de metadatos para Azure Boards Analytics.
Nota:
El servicio Analytics se habilita automáticamente y se admite en producción para todos los servicios de Azure DevOps. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Nota:
El servicio Analytics se instala y admite automáticamente en producción para todas las colecciones de proyectos nuevas para Azure DevOps Server 2020 y versiones posteriores. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios. Si ha actualizado desde Azure DevOps Server 2019, puede instalar el servicio Analytics durante la actualización.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Nota:
El servicio Analytics está en versión preliminar para Azure DevOps Server 2019. Puede habilitarlo o instalarlo para una colección de proyectos. La integración y el acceso de Power BI a la fuente OData del servicio Analytics se encuentran en versión preliminar. Le recomendamos que lo use y nos envíe sus comentarios.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Requisitos previos
- Access: sea miembro de un proyecto con al menos acceso básico .
- Permisos: de forma predeterminada, los miembros del proyecto tienen permiso para consultar Analytics y crear vistas.
- Para obtener más información sobre otros requisitos previos relacionados con las actividades de habilitación de servicios y características y seguimiento de datos generales, consulte Permisos y requisitos previos para acceder a Analytics.
Todos los ejemplos se limitan a un proyecto en Azure DevOps. Para obtener ejemplos de ámbito de nivel de organización o Azure DevOps Server, consulte Consultas con ámbito de proyecto y organización.
Sugerencia
Puede usar la extensión WIQL to OData azure DevOps Marketplace para generar rápidamente una consulta de OData basada en una consulta de elemento de trabajo desde la página Consultas . Esta extensión admite la conversión de lista plana de elementos de trabajo y elementos de trabajo y vínculos directos. Las extensiones no son características admitidas de Azure Boards y, por tanto, no son compatibles con el equipo del producto. Si tiene preguntas, sugerencias o problemas al usar estas extensiones, visite la página correspondiente de cada una.
Filtrar elementos de trabajo en función de una fecha modificada
Puede consultar el WorkItems
conjunto de entidades para enumerar los elementos de trabajo que cumplen los criterios de campo.
La consulta siguiente devuelve elementos de trabajo pendiente de producto, errores y características que tienen una fecha modificada mayor que el 12 de diciembre de 2021.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
$select=WorkItemId, WorkItemType, Title, State
&$expand=AssignedTo($select=UserEmail)
&$filter=(Project/ProjectName eq 'Fabrikam Fiber'
AND (WorkItemType eq 'Product Backlog Item' or WorkItemType eq 'Bug' or WorkItemType eq 'Feature')
AND ChangedOn/Date ge 2021-12-16T23:44:15.619Z)
&$orderby=WorkItemType desc
Filtrar elementos de trabajo en función del área
Puede modificar la siguiente consulta para enumerar todos los elementos de trabajo en una ruta de acceso de área específica.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Area/AreaPath eq '{area path}'
&$select=WorkItemId, Title, State
Consulta de ejemplo:
Por ejemplo, la sintaxis siguiente consulta el recuento de elementos de trabajo para cada proyecto definido para la organización fabrikam .
https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$apply=groupby((Project/ProjectName), aggregate($count as Count))
Respuesta de ejemplo:
Y la respuesta devuelve datos de los cinco proyectos siguientes.
{
"@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(Project(ProjectName),Count)",
"value":[
{
"@odata.id":null,
"Count":2,
"Project":{
"@odata.id":null,
"ProjectName":"Basic Fabrikam"
}
},
{
"@odata.id":null,
"Count":19,
"Project":{
"@odata.id":null,
"ProjectName":"Demo 11"
}
},
{
"@odata.id":null,
"Count":188,
"Project":{
"@odata.id":null,
"ProjectName":"Fabrikam Fiber"
}
},
{
"@odata.id":null,
"Count":89,
"Project":{
"@odata.id":null,
"ProjectName":"MyFirstProject"
}
},
{
"@odata.id":null,
"Count":2,
"Project":{
"@odata.id":null,
"ProjectName":"MyPublicProject"
}
}
]
}
Filtrar elementos de trabajo en función de la iteración
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Iteration/IterationPath eq '{iteration path}'
&$select=WorkItemId, Title, State
Consulta de ejemplo:
Por ejemplo, la sintaxis siguiente consulta elementos de trabajo para el proyecto Fabrikam Fiber en la ruta de acceso de iteración=Fabrikam Fiber\Release 1\Sprint 6.
https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$select=WorkItemId, WorkItemType, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemType ne '' AND Iteration/IterationPath eq 'Fabrikam Fiber\Release 1\Sprint 6')
Respuesta de ejemplo:
Y la respuesta devuelve datos de los cuatro elementos de trabajo siguientes.
{
"@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration(IterationPath))",
"value":[
{
"WorkItemId":361,
"Title":"Hello World Web Site",
"WorkItemType":"Product Backlog Item",
"State":"New",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
}
},
{
"WorkItemId":1126,
"Title":"web site task",
"WorkItemType":"Task",
"State":"To Do",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
}
},
{
"WorkItemId":1136,
"Title":"Add a new task with two new tags",
"WorkItemType":"Task",
"State":"To Do",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
}
},
{
"WorkItemId":1140,
"Title":"New task - test for Blocked",
"WorkItemType":"Task",
"State":"To Do",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
}
}
]
}
Recuperar elementos para una iteración
Puede recuperar todos los elementos de trabajo de una iteración determinada que se encuentran entre el primer día de la iteración y el último día de la iteración. Aquí, la consulta está restringida por los datos contenidos en los datos de seguimiento del trabajo.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Iteration/IterationPath eq '{iteration path}'
and ChangedDate ge Iteration/StartDate
and ChangedDate le Iteration/EndDate
&$select=WorkItemId, Title, State
Filtrar elementos de trabajo que contienen etiquetas específicas
El operador any se usa aquí porque hay una colección de etiquetas que se pueden asociar a un elemento de trabajo.
Desde una perspectiva de uso, el formato es: {Navigation Property}/any(d:d/{Field Name} {operator} {expression})
. Cualquier elemento que no esté rodeado de corchetes ({}) es un literal. Hay algunas variaciones. Por ejemplo, no es necesario usar "d" como se usa en la expresión anterior.
Seguir este formato lo mantiene sencillo.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Tags/any(d:d/TagName eq '{tag name}')
&$select=WorkItemId, Title, State
Filtrar elementos de trabajo para un equipo específico
Use la siguiente consulta para enumerar los elementos de trabajo de un equipo específico.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Teams/any(d:d/TeamName eq '{team name}')
&$select=WorkItemId, Title, State
Filtrar elementos de trabajo basados en un campo que tenga un valor específico
La consulta siguiente es similar a una consulta de elemento de trabajo que usa el operador Was Ever .
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=WorkItemType eq '{Type}'
and Revisions/any(r:r/ResolvedBy/UserName eq '{User}')
Consulta de ejemplo:
La consulta siguiente devuelve los elementos de trabajo que se asignaron alguna vez a Jamal Hartnett cuyo correo electrónico es "fabrikamfiber4@hotmail.com" para el proyecto Fabrikam Fiber .
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?
$select=WorkItemType, Title, State,
&$expand=AssignedTo($select=UserEmail), Area($select=AreaPath)
&$filter=(WorkItemType ne '' AND State ne '' AND Revisions/any(r:r/AssignedTo/UserEmail eq 'fabrikamfiber4@hotmail.com'))
&$orderby=WorkItemType asc
Respuesta de ejemplo:
La respuesta devuelve dos elementos de trabajo.
{
"@odata.context":"https://analytics.dev.azure.com/fabrikam/Design%20Agile/_odata/v4.0-preview/$metadata#WorkItems(Priority,WorkItemType,Title,State,TagNames,AssignedTo(UserEmail),Area(AreaPath))",
"value":[
{
"Title":"New home page design",
"WorkItemType":"Feature",
"State":"Closed",
"AssignedTo":{
"UserEmail":"fabrikamfiber4@hotmail.com"
},
"Area":{
"AreaPath":"Design Agile"
}
},
{
"Title":"Check performance",
"WorkItemType":"User Story",
"State":"New",
"AssignedTo":{
"UserEmail":"fabrikamfiber4@hotmail.com"
},
"Area":{
"AreaPath":"Design Agile"
}
}
]
}
Recuperación de los equipos asignados en una ruta de acceso de área
La consulta siguiente devuelve los nombres de los equipos asignados a rutas de acceso de área en el área Administración de cuentas del proyecto Fabrikam Fiber .
> https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/Areas?
> $filter=startswith(AreaPath,'Fabrikam Fiber\Account Management')
> &$select=AreaPath&$expand=Teams($select=TeamName)
>```
The response returns three area paths and the names of several teams assigned to each.
> [!div class="tabbedCodeSnippets"]
```OData
> @odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Areas(AreaPath,Teams(TeamName))"
> value
> 0
> AreaPath "Fabrikam Fiber\\Account Management\\Customer Profile"
> Teams
> 0
> TeamName "Organization Management"
> 1
> TeamName "Fabrikam Team"
> 2
> TeamName "Customer Profile"
> 1
> AreaPath "Fabrikam Fiber\\Account Management\\Shopping Cart"
> Teams
> 0
> TeamName "Organization Management"
> 1
> TeamName "Shopping Cart"
> 2
> TeamName "Fabrikam Team"
> 2
> AreaPath "Fabrikam Fiber\\Account Management"
> Teams
> 0
> TeamName "Organization Management"
> 1
> TeamName "Fabrikam Team"
Devolver el historial de un elemento de trabajo específico
Puede consultar el conjunto de entidades para enumerar el WorkItemRevisions
historial de elementos de trabajo. La consulta siguiente devuelve el valor de la ruta de acceso título, estado e iteración para cada revisión de un elemento de trabajo especificado.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItemRevisions?
$filter=WorkItemId eq {Id}
&$select=WorkItemId, Title, State, Iteration Path
Nota:
Cada vez que se realiza un cambio en un elemento de trabajo, incluido un cambio en su valor de clasificación de pila, se crea una revisión. Para obtener más información sobre los datos históricos, consulte Aplicación de filtros a datos históricos.
Consulta de ejemplo:
Por ejemplo, la sintaxis siguiente consulta las revisiones de ID=1145 en el proyecto Fabrikam Fiber.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItemRevisions?$select=WorkItemId, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemId eq 1145 AND State ne '' AND Revision gt 1)
Respuesta de ejemplo:
Y la respuesta devuelve datos de las cuatro revisiones:
{
"@odata.context":"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItemRevisions(WorkItemId,Title,State,Iteration(IterationPath))",
"value":[
{
"WorkItemId":1145,
"Title":"Sprint 2 work added in June",
"State":"New",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Future"
}
},
{
"WorkItemId":1145,
"Title":"Sprint 2 work added in June",
"State":"New",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Future"
}
},
{
"WorkItemId":1145,
"Title":"Sprint 2 work added in June",
"State":"New",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
}
},
{
"WorkItemId":1145,
"Title":"Sprint 2 work added in June",
"State":"Done",
"Iteration":{
"IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
}
}
]
}