public async Task IssuesUpdate( [TimerTrigger("0 */15 * * * *")] TimerInfo timerInfo, ILogger logger) { var util = new AutoTriageUtil(Server, GitHubClient, Context, logger); await util.UpdateQueryIssues(); await util.UpdateStatusIssue(); }
public async Task OnBuildComplete( [QueueTrigger("build-complete", Connection = "AzureWebJobsStorage")] string message, ILogger logger) { var buildCompleteMessage = JsonConvert.DeserializeObject <BuildCompleteMessage>(message); var projectName = await Server.ConvertProjectIdToNameAsync(buildCompleteMessage.ProjectId); logger.LogInformation($"Triaging build {projectName} {buildCompleteMessage.BuildNumber}"); var util = new AutoTriageUtil(Server, GitHubClient, Context, logger); await util.Triage(projectName, buildCompleteMessage.BuildNumber); }
// internal static async Task<int> Main(string[] args) => await MainCore(args.ToList()); internal static async Task <int> MainCore(TriageContext context, List <string> args) { var azdoToken = Environment.GetEnvironmentVariable("RUNFO_AZURE_TOKEN"); var gitHubToken = Environment.GetEnvironmentVariable("RUNFO_GITHUB_TOKEN"); var cacheDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "runfo", "json"); var server = new CachingDevOpsServer(cacheDirectory, "dnceng", azdoToken); var gitHubClient = new GitHubClient(new ProductHeaderValue("RuntimeStatusPage")); var queryUtil = new DotNetQueryUtil(server); using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); // TODO: should not hard code jaredpar here gitHubClient.Credentials = new Credentials("jaredpar", gitHubToken); string command; if (args.Count == 0) { command = "list"; } else { command = args[0]; args = args.Skip(1).ToList(); } var autoTriageUtil = new AutoTriageUtil(server, gitHubClient, context, loggerFactory.CreateLogger <AutoTriageUtil>()); switch (command) { case "auto": await RunAutoTriage(args); break; case "issues": await RunIssues(); break; case "rebuild": await RunRebuild(); break; case "scratch": await RunScratch(); break; default: Console.WriteLine($"Unrecognized option {command}"); break; } return(ExitSuccess); async Task RunAutoTriage(List <string> args) { autoTriageUtil.EnsureTriageIssues(); await autoTriageUtil.Triage("-d runtime -c 100 -pr"); await autoTriageUtil.Triage("-d runtime-official -c 20 -pr"); await autoTriageUtil.UpdateQueryIssues(); await autoTriageUtil.UpdateStatusIssue(); } async Task RunIssues() { await autoTriageUtil.UpdateQueryIssues(); await autoTriageUtil.UpdateStatusIssue(); } async Task RunRebuild() { autoTriageUtil.EnsureTriageIssues(); await autoTriageUtil.Triage("-d runtime -c 1000 -pr"); await autoTriageUtil.Triage("-d aspnet -c 1000 -pr"); await autoTriageUtil.Triage("-d runtime-official -c 50 -pr"); await autoTriageUtil.Triage("-d aspnet-official -c 50 -pr"); } async Task RunScratch() { // autoTriageUtil.EnsureTriageIssues(); // await autoTriageUtil.Triage("-d runtime -c 500 -pr"); // await autoTriageUtil.Triage("-d runtime-official -c 50 -pr"); // await autoTriageUtil.UpdateQueryIssues(); await autoTriageUtil.UpdateStatusIssue(); } }