Auditoria: Report de Changesets no TFS
Hoje, um cliente que passará por uma auditoria, me pediu um relatório que exibisse todas as changesets realizadas durante um período, por um determinado usuário e que apresentasse todos os arquivos alterados na changeset.
O TFS não possui nenhum tipo de relatório que apresente essa listagem pronta, mas também não é nada do outro mundo construir um relatório que apresente isso. Com uma simples query você consegue puxar todos os dados para construir o seu report.
Basicamente você precisará consultar as tabelas tbl_Changeset e tbl_Version para obter as changesets e lista de arquivos e depois mais 3 tabelas para conseguir descobrir o nome do usuário, sendo elas tbl_VCIdentityMap, tbl_IdentityMap e tbl_identity, lembrando que apenas a última não está na base da sua Team Project Collection, ela está na base TFS_Configuration.
A query final apresenta o seguinte formato:
SELECT
cs.ChangeSetId,
i.DisplayName,
v.FullPath,
cs.Comment,
cs.CreationDate AS [Date]
FROM tbl_Changeset cs
INNER JOIN tbl_Version v ON v.VersionFrom = cs.ChangesetID
INNER JOIN tbl_VCIdentityMap vcim ON cs.OwnerId = vcim.IdentityId
INNER JOIN tbl_IdentityMap im ON vcim.TeamFoundationId = im.localId
INNER JOIN Tfs_Configuration..tbl_identity i ON im.masterId = i.Id
ORDER BY cs.ChangeSetId DESC
Na imagem 1 podemos ver o histórico de ChangeSets dentro do Visual Studio e na Imagem 2 vemos como tudo está armazenado dentro do SQL Server.
![]()
Imagem 1 – Changesets no Visual Studio
![]()
Imagem 2 – Changesets no SQL Server
Espero que ajude nos seus reports de auditoria.
Abraços e até a próxima.
André Dias
Comentários