Na primeira parte desta série sobre como construir um relatório Stories Overview no VSTS com MS Excel e Powershell foi explicado as diversas partes do relatório existente no template Agile do Team Foudation Server.
Nesta segunda parte será visto como buscar as User Stories, que são a parte principal deste relatório.
Powershell + TfsCmdLets
A maneira mais fácil de trabalharmos com a API do TFS/VSTS é via scripts Powershell encapsulando a API, e para isso já existe um projeto bem abrangente, open source e que aceita contribuições da comunidade!
TfsCmdLets
Criado por Igor Abade o TfsCmdLets é um projeto que une o poder Cmdlets PowerShell com as API’s do Team Foundation Server e Visual Studio Team Services. Eu já havia comentado brevemente sobre ele e usado no post Administrando usuários, grupos e permissões no console com TFSSecurity. Mas agora faremos um uso intensivo dele na construção do relatório.
Você pode baixar o código fonte aqui.
Com o Windows 10 e Powershell 5 é muito fácil de instalar, basta:
Install-Module TfsCmdLets
Para verificar se a instalação foi feita:
Get-Module
Agora para podermos usar com o TFS/VSTS precisamos conectar a Team Project Collection e a um Team Project, para isso, vamos executar as linhas abaixo, e lembrando que eu vou utilizar a nossa conhecida VM do Brian Keller, com o Team Project de exemplo TailspinToys:
Connect-TfsTeamProjectCollection http://vsalm:8080/tfs/TailspinToysCollection Connect-TfsTeamProject "Tailspin Toys"
Para testar vamos ver as Iterations cadastradas para esse TP:
Get-TfsIteration
Bem fácil não?
Buscando as Stories
Vamos construir nossa primeira query do relatório, que é buscar as User Stories, obviamente, já que o relatório é sobre isso.
Baseado na imagem acima e usando o filtros Team Project e Iteration… vamos lá! Se eu não soubesse nada sobre o comando, para encontrá-lo posso usar o cmdlet Get-Command, usando o parâmetro para determinar o módulo que eu vou buscar, TfsCmdLets, e algo no sobre o nome, por isso o *workitem*:
Get-Command -Module TfsCmdLets -Name *workitem*
Retornaria:
Portanto o mais provável para o nosso relatório seria Get-TfsWorkItem, para saber sobre ele:
Get-Help Get-TfsWorkItem
Para esta query é preciso usar 2 parâmetros: Work Items do tipo User Story e que estejam na Iteration 2. Como este cmdlet não tem um param para eles vamos usar o parâmetro Filter. Para quem já customizou um WIT, será fácil lembrar os nomes desses campos: System.IterationPath e System.WorkItemType. Vai ficar:
Get-TfsWorkItem -Filter '[System.IterationPath] = "Tailspin Toys\Iteration 2" And [System.WorkItemType] = "User Story"'
Como ele está filtrando por IterationPath, nesse caso, irá retornar somente os WIT’s do Team Project Tailspin Toys!
Por enquanto o nosso script está assim:
Emmanuel Brandão