コード例 #1
0
ファイル: Functions.cs プロジェクト: sharwell/devops-util
        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();
        }
コード例 #2
0
ファイル: Functions.cs プロジェクト: sharwell/devops-util
        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);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: sharwell/devops-util
    // 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();
        }
    }