From 88485ade75419e62eaa7c4e4bd7358511dd79938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Ga=C4=87e=C5=A1a?= Date: Fri, 6 Sep 2024 08:21:03 +0000 Subject: [PATCH] add commit message to pullreq update branch activity (#2654) * add commit message to pullreq update branch activity --- app/services/pullreq/handlers_branch.go | 32 ++++++++++++++++++++++--- types/pullreq_activity_payload.go | 7 ++++-- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/services/pullreq/handlers_branch.go b/app/services/pullreq/handlers_branch.go index 14f017415..581f5d0d3 100644 --- a/app/services/pullreq/handlers_branch.go +++ b/app/services/pullreq/handlers_branch.go @@ -57,6 +57,30 @@ func (s *Service) triggerPREventOnBranchUpdate(ctx context.Context, } } + var commitTitle string + err := func() error { + repo, err := s.repoGitInfoCache.Get(ctx, event.Payload.RepoID) + if err != nil { + return fmt.Errorf("failed to get repo git info: %w", err) + } + + commit, err := s.git.GetCommit(ctx, &git.GetCommitParams{ + ReadParams: git.ReadParams{RepoUID: repo.GitUID}, + Revision: event.Payload.NewSHA, + }) + if err != nil { + return fmt.Errorf("failed to get commit info: %w", err) + } + + commitTitle = commit.Commit.Title + + return nil + }() + if err != nil { + // non critical error + log.Ctx(ctx).Warn().Err(err).Msgf("failed to get commit info from git") + } + // TODO: This function is currently executed directly on branch update event. // TODO: But it should be executed after the PR's head ref has been updated. // TODO: This is to make sure the commit exists on the target repository for forked repositories. @@ -65,7 +89,7 @@ func (s *Service) triggerPREventOnBranchUpdate(ctx context.Context, targetRepo, err := s.repoGitInfoCache.Get(ctx, pr.TargetRepoID) if err != nil { - return fmt.Errorf("failed to get repo git info: %w", err) + return fmt.Errorf("failed to get target repo git info: %w", err) } mergeBaseInfo, err := s.git.MergeBase(ctx, git.MergeBaseParams{ @@ -116,8 +140,10 @@ func (s *Service) triggerPREventOnBranchUpdate(ctx context.Context, } payload := &types.PullRequestActivityPayloadBranchUpdate{ - Old: event.Payload.OldSHA, - New: event.Payload.NewSHA, + Old: event.Payload.OldSHA, + New: event.Payload.NewSHA, + Forced: event.Payload.Forced, + CommitTitle: commitTitle, } _, err = s.activityStore.CreateWithPayload(ctx, pr, event.Payload.PrincipalID, payload, nil) diff --git a/types/pullreq_activity_payload.go b/types/pullreq_activity_payload.go index 2a9070e00..c843f4428 100644 --- a/types/pullreq_activity_payload.go +++ b/types/pullreq_activity_payload.go @@ -141,8 +141,11 @@ func (a *PullRequestActivityPayloadReviewerDelete) ActivityType() enum.PullReqAc } type PullRequestActivityPayloadBranchUpdate struct { - Old string `json:"old"` - New string `json:"new"` + Old string `json:"old"` + New string `json:"new"` + Forced bool `json:"forced"` + + CommitTitle string `json:"commit_title"` } func (a *PullRequestActivityPayloadBranchUpdate) ActivityType() enum.PullReqActivityType {