Em posts anteriores, reforço que um administrador de um servidor, de rede, e também do TFS / VSTS, deve saber usar o console, deve saber usar Powershell, na stack Microsoft, e futuramento no Linux, mas neste último existe a opção do bash também.

Porém isso é uma prática rara para quem trabalha com a plataforma Microsoft. Vamos começar a mudar esse paradigma, para isso vamos ver como podemos começar fazer uso do console e Powershell.

Microsoft Visual Studio Team Foundation Server 2015 Power Tools

Já escrevi sobre o TFPT aqui e mais recentemente aqui. Se você leu os posts já deve ter ele instalado, senão tem instale, sem ele não teremos os Cmdlets, ou command-lets, para o TFS / VSTS.

Na instalação escolha a opção customizada, e selecione Powershell CmdLets e escolha This feature will be installed on local hard drive.

Baixando apenas arquivos modificados em um único Changeset

O primeiro exemplo que vou mostrar aqui é bem básico, e vou utilizar o post do Viníciu MouraSource Control: Baixando apenas arquivos modificados em um único Changeset. Neste post, ele demonstra como baixar um changeset específico se você estiver utilizado o TFVC, usando na VM do Brian:

Get-TfsChangeset -ChangesetNumber 74

2016-02-02 02_10_26-Administrator_ Windows PowerShell

Lista dos arquivos alterados entre um changeset e outro

Get-TfsItemHistory $/fabrikamfiber -r -includeitems -version 74~73 | select-tfsitem | %{$_.path}

Aí está uma beleza do Powershell, essa única linha contém três comandos:

  • O cmdlet Get-TfsItemHistory, que irá trazer os changesets, com seus items
  • Select-TfsItem, que irá capturar os itens
  • e por último o % irá fazer um filtro e dar a saída somente do path, ignorando outras informações do comando anterior

2016-02-02 02_38_20-Administrator_ Windows PowerShell

Vai ficar ainda melhor!

Reports like a boss

Digamos que o seu processo de gestão de mudança inclua enviar uma relação de todos os arquivos alterados entre os changesets enviados pelos desenvolvedores nesta sprint… Como administrador do TFS / VSTS, você irá pedir para eles preencherem uma planilha?? PREENCHER uma planilha? Não!

Primeiro vamos colocar algumas características que queremos no relatório em uma variável $p, como abaixo:

$p=@{
 Title = "Relatório de arquivos alterados, tirado em $(Get-Date)"
 TitleFillPattern = "LightTrellis"
 TitleSize = 18
 TitleBold = $true

 Path = "c:YTempReport.xlsx"
 Show = $true
 AutoSize = $true
}

Nos formatamos o nome do relatório em Title, tamanho da fonte em TitleSize, colocamos em negrito em TitleBold, … Por fim, demos um nome e o path que o arquivo Excel deve ser criado, e que deve abrir a planilha em seguida ao executar, parâmetro Show. Se copiar e colar no console essas linhas, funciona, mesmo quebrando em várias.

Depois vamos executar o comando de exportação, passando essa variável:

Get-TfsItemHistory $/fabrikamfiber -r -includeitems -version 74~73 | select-tfsitem | % {$_.path} | Export-Excel @p

Lá no fim vai o Export-Excel, que é um módulo que instalei.

2016-02-02 04_26_29-Administrator_ Windows PowerShell

E vóila:

2016-02-02 04_27_25-Report.xlsx - Excel

Dicas:

  • Tirando o parâmetro Show é possível executar esse script no build! Lembre-se agora ele é “scriptado”! E em Powershell! Não sabia? Leia
  • Você só precisa instalar o módulo Powershell! Não precisa de Excel!! 😉

Para instalar o módulo, se você estiver rodando o Powershell V5 é só digitar:

Install-Module -Name ImportExcel

O módulo Excel parece simples, mas ele pode fazer a exportação criando gráficos, pivot tables, …

Tem alguma ideia de extração de relatório? Coloque nos comentários… pode virar o assunto de um futuro post.

Referências

Quer aprender mais sobre Powershell? Cmdlets? Baixe o PDF gratuito da série Succinctly aqui.

Emmanuel Brandão