diff --git a/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs b/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs index 0dd20a8..6a261b1 100644 --- a/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs +++ b/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs @@ -27,5 +27,6 @@ public class GithubUsageEntry public string Username { get; set; } [Name("Notes")] public string Notes { get; set; } + public string TrimmedWorkflow => ActionWorkflow?.Replace(".github/workflows/", ""); } } \ No newline at end of file diff --git a/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs b/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs index 2d98e7c..4e70ed6 100644 --- a/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs +++ b/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs @@ -31,6 +31,7 @@ public class UsageReportViewModel public decimal TotalActionMinutesCost { get; set; } public List> ActionsSummary { get; set; } public List> ActionMinutesByRepository { get; set; } + public List> ActionMinutesByWorkflow { get; set; } public decimal AverageDailyStorage { get; set; } public List> DailyStorageSummary { get; set; } public List> AverageDailyStorageByRepo { get; set; } diff --git a/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs b/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs index 6e05809..5463387 100644 --- a/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs +++ b/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Cryptography.X509Certificates; using GitHubCostVisualizer.Web.Models; namespace GitHubCostVisualizer.Web.Processor @@ -34,7 +35,12 @@ into grp group x by x.Repository into grp select new KeyValuePair(grp.Key, grp.Sum(i => (int)i.Quantity))).ToList(); - + model.ActionMinutesByWorkflow = (from x in entries.Where(i => + i.Product.Equals(Constants.GitHubProducts.Actions, StringComparison.InvariantCultureIgnoreCase)) + group x by new { x.Repository, x.TrimmedWorkflow } + into grp + select new KeyValuePair($"{grp.Key.Repository} - {grp.Key.TrimmedWorkflow}", + grp.Sum(i => (int)i.Quantity))).ToList(); model.DailyStorageSummary = (from x in entries.Where(i => i.Product.Equals(Constants.GitHubProducts.SharedStorage, StringComparison.InvariantCultureIgnoreCase)) group x by x.Date into grp diff --git a/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml b/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml index ca0ef38..508a81b 100644 --- a/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml +++ b/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml @@ -26,6 +26,14 @@ aria-selected="False"> Chart (By Repo) + + List (By Workflow) + +