Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
Você pode consultar seus dados de controle de trabalho do Azure DevOps usando as consultas básicas fornecidas neste artigo. Essas consultas atendem às necessidades diárias enquanto demonstram vários recursos do Analytics. Você pode adaptar a maioria dessas consultas para atender às suas necessidades.
Este artigo baseia-se nas informações fornecidas em Construir consultas OData para análise e referência de metadados para o Azure Boards Analytics.
Nota
O serviço Analytics é automaticamente habilitado e suportado na produção para todos os serviços nos Serviços de DevOps do Azure. A integração do Power BI e o acesso ao feed OData do serviço Analytics estão geralmente disponíveis. Você é incentivado a usar o feed OData do Google Analytics e fornecer feedback.
Os dados disponíveis dependem da versão. A última versão suportada da API OData é v2.0, e a versão de visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.
Nota
O serviço Analytics é instalado automaticamente e suportado na produção para todas as novas coleções de projetos para o Azure DevOps Server 2020 e versões posteriores. A integração do Power BI e o acesso ao feed OData do serviço Analytics estão geralmente disponíveis. Você é incentivado a usar o feed OData do Google Analytics e fornecer feedback. Se você atualizar do Azure DevOps Server 2019, poderá instalar o serviço Analytics durante a atualização.
Os dados disponíveis dependem da versão. A última versão suportada da API OData é v2.0, e a versão de visualização mais recente é v4.0-preview. Para obter mais informações, consulte o artigo Controlo de Versões da API OData.
Pré-requisitos
| Categoria | Requerimentos |
|---|---|
| Níveis de acesso |
-
Membro do projeto. - Pelo menos acesso básico ao. |
| Permissões | Por padrão, os membros do projeto têm permissão para consultar o Google Analytics e criar modos de exibição. Para obter mais informações sobre outros pré-requisitos relacionados com a ativação de serviços e funcionalidades e atividades gerais de monitorização de dados, consulte Permissões e pré-requisitos para aceder ao Analytics. |
Todos os exemplos têm como escopo um projeto no Azure DevOps. Para obter exemplos de definição de âmbito a nível de organização ou do Azure DevOps Server, consulte Consultas com âmbito de projeto e organização.
Gorjeta
Você pode usar a extensão WIQL to OData Azure DevOps Marketplace para gerar rapidamente uma consulta OData com base numa consulta de item de trabalho na página de Consultas. Esta extensão suporta a conversão de lista simples de itens de trabalho e itens de trabalho e links diretos. As extensões não são recursos suportados dos Painéis do Azure e, portanto, não são suportados pela equipe do produto. Para dúvidas, sugestões ou problemas que você tem ao usar essas extensões, visite a página de extensão correspondente.
Filtrar itens de trabalho com base em uma Data Alterada
Você consulta o conjunto de entidades WorkItems para listar itens de trabalho que atendem aos critérios de campo.
A consulta a seguir retorna Itens da lista de pendências do produto, Bugs e Funcionalidades que têm uma Data de Alteração maior que 12 de dezembro 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 itens de trabalho com base na Área
Você pode modificar a consulta a seguir para listar todos os itens de trabalho em um Caminho de Área específico.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Area/AreaPath eq '{area path}'
&$select=WorkItemId, Title, State
Exemplo de consulta:
Por exemplo, a sintaxe a seguir consulta a contagem de itens de trabalho para cada projeto definido para a organização fabrikam .
https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$apply=groupby((Project/ProjectName), aggregate($count as Count))
Exemplo de resposta:
E a resposta retorna dados para os cinco projetos a seguir.
{
"@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 itens de trabalho com base na Iteração
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Iteration/IterationPath eq '{iteration path}'
&$select=WorkItemId, Title, State
Exemplo de consulta:
Por exemplo, as consultas de sintaxe a seguir retornam itens de trabalho para o projeto Fabrikam Fiber sob a Iteration Path=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')
Exemplo de resposta:
E a resposta retorna dados para os quatro itens de trabalho a seguir.
{
"@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 itens para uma iteração
Você pode recuperar todos os itens de trabalho para uma determinada iteração que ficam entre o primeiro dia da iteração e o último dia da iteração. Aqui, sua consulta é restringida pelos dados contidos nos dados de acompanhamento de trabalho.
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 itens de trabalho que contenham tags específicas
O operador any é usado aqui porque há uma coleção de tags que podem ser associadas a um item de trabalho.
Do ponto de vista do uso, o formato é: {Navigation Property}/any(d:d/{Field Name} {operator} {expression}). Qualquer item não cercado por colchetes encaracolados ({}) é um literal. Existem algumas variações. Por exemplo, você não precisa usar "d" como usado na expressão acima.
Seguir este formato mantém a simplicidade.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Tags/any(d:d/TagName eq '{tag name}')
&$select=WorkItemId, Title, State
Filtrar itens de trabalho para uma equipe específica
Use a consulta a seguir para listar itens de trabalho para uma equipe específica.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
$filter=Teams/any(d:d/TeamName eq '{team name}')
&$select=WorkItemId, Title, State
Filtrar itens de trabalho com base em um campo que alguma vez teve um valor específico
A consulta a seguir é semelhante a uma consulta de item de trabalho que usa o 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}')
Exemplo de consulta:
A consulta a seguir retorna os itens de trabalho que já foram atribuídos a Jamal Hartnett cujo e-mail é 'fabrikamfiber4@hotmail.com' para o projeto Fabrikam Fibra .
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
Exemplo de resposta:
A resposta retorna dois itens de trabalho.
{
"@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"
}
}
]
}
Recuperar as equipes atribuídas em um Caminho de Área
A consulta a seguir retorna os nomes das equipas atribuídas a caminhos de área sob a Área de Gestão de Contas para o projeto Fabrikam Fibra.
> 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"
Retornar o histórico de um item de trabalho específico
Você consulta o conjunto de entidades para listar a história dos itens de trabalho WorkItemRevisions. A consulta a seguir retorna o valor de Title, State e Iteration Path para cada revisão de um item de trabalho especificado.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItemRevisions?
$filter=WorkItemId eq {Id}
&$select=WorkItemId, Title, State, Iteration Path
Nota
Sempre que uma alteração é feita em um item de trabalho, incluindo uma alteração no valor da classificação da pilha, uma revisão é criada. Para obter mais informações sobre dados históricos, consulte Aplicando filtros a dados históricos.
Exemplo de consulta:
Por exemplo, a sintaxe a seguir consulta revisões para ID=1145 no projeto Fabrikam Fibra.
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)
Exemplo de resposta:
E a resposta retorna dados para as quatro revisões:
{
"@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"
}
}
]
}