-
Notifications
You must be signed in to change notification settings - Fork 0
Português
Elvis Souza edited this page Oct 4, 2021
·
17 revisions
- SQL Server
- Aplicação .Net Core 3.1+
- Conta no Azure DevOps
PM > Install-Package AzureDevOpsTracker -Version 1.0.1Depois da instalação, atualize seu arquivo de Startup.cs OWIN com o seguinte código:
public void ConfigureServices(IServiceCollection services)
{
services.AddAzureDevopsStateTracker(new AzureDevopsStateTracker.Data.DataBaseConfig("[CONNECTION_STRING]"));
}
public void Configure(IApplicationBuilder app, IServiceProvider serviceProvider)
{
app.UseAzureDevopsStateTracker(serviceProvider);
}Para a integração com o Service Hook do Azure DevOps, é necessário que existam dois EndPoints que recebam uma requisição POST com as Json específicas. Essas requisições receberão dados de Workitems criados e Workitems atualizados.
public class ExampleController : Controller
{
private readonly IAzureDevopsTrackerService _azureDevopsTrackerService;
public ExampleController(
IAzureDevopsTrackerService azureDevopsTrackerService)
{
_azureDevopsTrackerService = azureDevopsTrackerService;
}
[HttpPost("workitem-updated")]
public async Task<IActionResult> WorkItemUpdated([FromBody] UpdatedWorkItemDTO updatedWorkItemDTO)
{
await _azureDevopsTrackerService.Update(updatedWorkItemDTO);
return Ok();
}
[HttpPost("workitem-created")]
public async Task<IActionResult> WorkItemCreated([FromBody] CreateWorkItemDTO createWorkItemDTO)
{
await _azureDevopsTrackerService.Create(createWorkItemDTO);
return Ok();
}
}Para mais informações sobre a utilização com Azure Function, consulte nossa página de Azure DevOps Function Tracker.
]
]
]
Os mesmos passos devem ser realizados para o WorkItem Updated
Pronto, agora todas as mudanças feitas nos WorkItems já serão salvas automaticamente no banco de dados!! 🎉😍
select
t.State,
dbo.ToTime(AVG(t.TotalWorkedTime)) as AvgTime,
dbo.ToTime(MAX(t.TotalWorkedTime)) as MaxTime,
dbo.ToTime(MIN(t.TotalWorkedTime)) as MinorTime,
dbo.ToTime(SUM(t.TotalWorkedTime)) as SumTime,
AVG(t.TotalWorkedTime / 60 / 60) as AvgInHours
from WorkItems w
join TimeByStates t on t.WorkItemId = w.Id
where 1=1
and w.IterationPath = 'Sprint 12'
and w.Type IN ('Bug', 'Task')
group by t.Stateselect
w.Id,
w.Title,
dbo.ToTime(t.TotalWorkedTime) as TotalWorkedTime,
w.AssignedTo,
t.TotalWorkedTime
from WorkItems w
join TimeByStates t on t.WorkItemId = w.Id
where w.IterationPath = 'Sprint 12'
and w.Type IN ('Bug', 'Task')
and t.TotalWorkedTime > 60
and t.State = 'Active'
order by t.TotalWorkedTime desc