12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package service
- import (
- "context"
- "fmt"
- "strings"
- "go-common/app/tool/saga/model"
- "go-common/library/log"
- )
- // HandleGitlabComment handle comment webhook
- func (s *Service) HandleGitlabComment(c context.Context, event *model.HookComment) (err error) {
- var (
- comment = strings.TrimSpace(event.ObjectAttributes.Note)
- projName = event.MergeRequest.Source.Name
- targetBranch = event.MergeRequest.TargetBranch
- gitRepo *model.Repo
- ok bool
- )
- if event.ObjectAttributes.NoteableType != model.HookCommentTypeMR {
- log.Info("Comment hook noteableType [%s] ignore", event.ObjectAttributes.NoteableType)
- return
- }
- if event.MergeRequest.State == model.MRStateMerged {
- log.Info("Gitlab MR [%d] has been merged", event.MergeRequest.ID)
- return
- }
- if gitRepo, ok = s.gitRepoMap[projName]; !ok {
- log.Info("Gitlab MR (%d) unknown projName (%s)", event.MergeRequest.ID, projName)
- return
- }
- if !s.validTargetBranch(targetBranch, gitRepo) {
- log.Info("Target branch (%s) is not in white list, won't serve comment!", targetBranch)
- return
- }
- fmt.Println("HandleGitlabComment:", event)
- if err = s.cmd.Exec(c, comment, event, gitRepo); err != nil {
- log.Error("Command Exec cmd: %s err: (%+v)", comment, err)
- return
- }
- return
- }
|