From 8ecc62ea64b7c4e4116bbbeefdcf4fdf6b01710d Mon Sep 17 00:00:00 2001 From: motatoes Date: Thu, 25 Jan 2024 15:53:33 +0000 Subject: [PATCH] handle no projects impacted case --- backend/controllers/github.go | 11 +++++++++-- backend/utils/pr_comment.go | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/backend/controllers/github.go b/backend/controllers/github.go index ce87b5e4..d1577a90 100644 --- a/backend/controllers/github.go +++ b/backend/controllers/github.go @@ -444,6 +444,10 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR utils.InitCommentReporter(ghService, prNumber, fmt.Sprintf(":x: Failed to comment initial status for jobs: %v", err)) return fmt.Errorf("failed to comment initial status for jobs") } + + if len(jobsForImpactedProjects) == 0 { + return nil + } err = utils.SetPRStatusForJobs(ghService, prNumber, jobsForImpactedProjects) if err != nil { @@ -573,7 +577,7 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu issueNumber := *payload.Issue.Number if *payload.Action != "created" { - log.Printf("comment is not created, ignoring") + log.Printf("comment is not of type 'created', ignoring") return nil } @@ -610,7 +614,6 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu } jobs, _, err := dg_github.ConvertGithubIssueCommentEventToJobs(payload, impactedProjects, requestedProject, config.Workflows, prBranchName) - if err != nil { log.Printf("Error converting event to jobs: %v", err) utils.InitCommentReporter(ghService, issueNumber, fmt.Sprintf(":x: Error converting event to jobs: %v", err)) @@ -625,6 +628,10 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu return fmt.Errorf("failed to comment initial status for jobs") } + if len(jobs) == 0 { + return nil + } + err = utils.SetPRStatusForJobs(ghService, issueNumber, jobs) if err != nil { log.Printf("error setting status for PR: %v", err) diff --git a/backend/utils/pr_comment.go b/backend/utils/pr_comment.go index 0e2656ff..c47a7a4c 100644 --- a/backend/utils/pr_comment.go +++ b/backend/utils/pr_comment.go @@ -25,6 +25,27 @@ func InitCommentReporter(prService *github2.GithubService, prNumber int, comment } func ReportInitialJobsStatus(cr *CommentReporter, jobs []orchestrator.Job) error { + prNumber := cr.PrNumber + prService := cr.PrService + commentId := cr.CommentId + message := "" + if len(jobs) == 0 { + message = message + ":construction_worker: The following projects are impacted\n\n" + for _, job := range jobs { + message = message + fmt.Sprintf(""+ + "\n"+ + ":clock11: **%v**: pending...\n"+ + "\n"+ + "", job.ProjectName, job.ProjectName, job.ProjectName) + } + } else { + message = message + ":construction_worker: No projects impacted" + } + err := prService.EditComment(prNumber, commentId, message) + return err +} + +func ReportNoProjectsImpacted(cr *CommentReporter, jobs []orchestrator.Job) error { prNumber := cr.PrNumber prService := cr.PrService commentId := cr.CommentId