diff --git a/internal/events/deploy.go b/internal/events/deploy.go index 329e232f62..31b597ff31 100644 --- a/internal/events/deploy.go +++ b/internal/events/deploy.go @@ -20,7 +20,7 @@ func (e *Events) CreateDeployTask(project schema.Project, deployData lagoon.Depl } if !exists { if project.OrganizationDetails.QuotaEnvironment != -1 && len(project.OrganizationDetails.Environments) >= project.OrganizationDetails.QuotaEnvironment { - return nil, fmt.Errorf("exceed environment quota") + return nil, fmt.Errorf("%s: exceed environment quota", project.Name) } } } @@ -44,7 +44,7 @@ func (e *Events) CreateDeployTask(project schema.Project, deployData lagoon.Depl } } if !exists { - return nil, fmt.Errorf("exceed production limit") + return nil, fmt.Errorf("%s: exceed production limit", project.Name) } } } else { @@ -62,7 +62,7 @@ func (e *Events) CreateDeployTask(project schema.Project, deployData lagoon.Depl } } if !exists { - return nil, fmt.Errorf("exceed development limit") + return nil, fmt.Errorf("%s: exceed development limit", project.Name) } } } diff --git a/internal/events/deploy_promote.go b/internal/events/deploy_promote.go index b1af1ac55a..bc93be0ee9 100644 --- a/internal/events/deploy_promote.go +++ b/internal/events/deploy_promote.go @@ -22,7 +22,7 @@ func (e *Events) deployPromote(project schema.Project, deployData lagoon.DeployD } if !foundEnvironment { - return nil, fmt.Errorf("no existing environment to promote from that contains a valid deploytarget") + return nil, fmt.Errorf("%s: no existing environment to promote from that contains a valid deploytarget", project.Name) } if deployTarget != nil { diff --git a/internal/events/deploy_pull.go b/internal/events/deploy_pull.go index 9d5b511ee1..7b38a2d4e4 100644 --- a/internal/events/deploy_pull.go +++ b/internal/events/deploy_pull.go @@ -37,7 +37,7 @@ func (e *Events) deployPull(project schema.Project, deployData lagoon.DeployData if deployTarget != nil && activeStandby != nil { if deployTarget.ID != activeStandby.ID { - return nil, fmt.Errorf("environments must be on same deploytarget") + return nil, fmt.Errorf("%s: environments must be on same deploytarget", project.Name) } } @@ -66,7 +66,7 @@ func (e *Events) deployPull(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil case "false": - errs = append(errs, fmt.Sprintf("deployment not allowed on deploytargetconfig %s pullrequests disabled", dtc.DeployTarget.Name)) + errs = append(errs, fmt.Sprintf("%s: deployment not allowed on deploytargetconfig %s pullrequests disabled", project.Name, dtc.DeployTarget.Name)) continue default: re := regexp2.MustCompile(dtc.Pullrequests, 0) @@ -80,7 +80,7 @@ func (e *Events) deployPull(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil } else { - errs = append(errs, fmt.Sprintf("deployment not allowed on deploytargetconfig %s didn't match pullrequest title regex pattern for deploytargetconfig", dtc.DeployTarget.Name)) + errs = append(errs, fmt.Sprintf("%s: deployment not allowed on deploytargetconfig %s didn't match pullrequest title regex pattern for deploytargetconfig", project.Name, dtc.DeployTarget.Name)) continue } } @@ -100,7 +100,7 @@ func (e *Events) deployPull(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil case "false": - return nil, fmt.Errorf("deployments disabled for project pullrequests") + return nil, fmt.Errorf("%s: deployments disabled for project pullrequests", project.Name) default: re := regexp2.MustCompile(project.PullRequests, 0) if match, _ := re.MatchString(deployData.Pullrequest.Title); match { @@ -113,7 +113,7 @@ func (e *Events) deployPull(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil } else { - return nil, fmt.Errorf("didn't match pullrequest title regex pattern for project") + return nil, fmt.Errorf("%s: didn't match pullrequest title regex pattern for project", project.Name) } } } diff --git a/internal/events/deploy_push.go b/internal/events/deploy_push.go index 17e1e01316..9614cbf5a2 100644 --- a/internal/events/deploy_push.go +++ b/internal/events/deploy_push.go @@ -27,7 +27,7 @@ func (e *Events) deployPush(project schema.Project, deployData lagoon.DeployData if deployTarget != nil && activeStandby != nil { if deployTarget.ID != activeStandby.ID { - return nil, fmt.Errorf("environments must be on same deploytarget") + return nil, fmt.Errorf("%s: environments must be on same deploytarget", project.Name) } } @@ -57,7 +57,7 @@ func (e *Events) deployPush(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil case "false": - errs = append(errs, fmt.Sprintf("deployment not allowed on deploytargetconfig %s branches disabled", dtc.DeployTarget.Name)) + errs = append(errs, fmt.Sprintf("%s: deployment not allowed on deploytargetconfig %s branches disabled", project.Name, dtc.DeployTarget.Name)) continue default: re := regexp2.MustCompile(dtc.Branches, 0) @@ -71,7 +71,7 @@ func (e *Events) deployPush(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil } else { - errs = append(errs, fmt.Sprintf("deployment not allowed on deploytargetconfig %s didn't match branches regex pattern for deploytargetconfig", dtc.DeployTarget.Name)) + errs = append(errs, fmt.Sprintf("%s: deployment not allowed on deploytargetconfig %s didn't match branches regex pattern for deploytargetconfig", project.Name, dtc.DeployTarget.Name)) continue } } @@ -91,7 +91,7 @@ func (e *Events) deployPush(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil case "false": - return nil, fmt.Errorf("deployments disabled for project branches") + return nil, fmt.Errorf("%s: deployments disabled for project branches", project.Name) default: re := regexp2.MustCompile(project.Branches, 0) if match, _ := re.MatchString(deployData.UnsafeEnvironmentName); match { @@ -104,7 +104,7 @@ func (e *Events) deployPush(project schema.Project, deployData lagoon.DeployData e.Messaging.SendToLagoonTasks(fmt.Sprintf("%s:builddeploy", deployData.DeployTarget.Name), lagoon.BuildToBytes(buildData)) return lagoon.BuildToBytes(buildData), nil } else { - return nil, fmt.Errorf("didn't match regex pattern for project") + return nil, fmt.Errorf("%s: didn't match regex pattern for project", project.Name) } } } diff --git a/services/webhook-handler/internal/server/server.go b/services/webhook-handler/internal/server/server.go index 0ce37d5fc7..7524b678c6 100644 --- a/services/webhook-handler/internal/server/server.go +++ b/services/webhook-handler/internal/server/server.go @@ -143,6 +143,7 @@ func (s *Server) handleWebhookPost(w http.ResponseWriter, r *http.Request) { e := events.New(s.LagoonAPI, s.Messaging) if webhook != nil { var response []events.Response + var repositoryUrl, repositoryName string var err error switch scmWebhook := webhook.(type) { case *scm.PushHook: @@ -152,21 +153,29 @@ func (s *Server) handleWebhookPost(w http.ResponseWriter, r *http.Request) { scmWebhook.Repo.Clone = scmWebhook.Repo.Link scmWebhook.Repo.CloneSSH = events.BitBucketGitURL(scmWebhook.Repo.Link, fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name)) } + repositoryUrl = scmWebhook.Repo.Clone + repositoryName = fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name) response, err = e.HandlePush(gitType, event, reqUUID, scmWebhook) case *scm.BranchHook: if gitType == "bitbucket" { scmWebhook.Repo.Clone = scmWebhook.Repo.Link scmWebhook.Repo.CloneSSH = events.BitBucketGitURL(scmWebhook.Repo.Link, fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name)) } + repositoryUrl = scmWebhook.Repo.Clone + repositoryName = fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name) response, err = e.HandleBranch(gitType, event, reqUUID, scmWebhook) case *scm.PullRequestHook: if gitType == "bitbucket" { scmWebhook.Repo.Clone = scmWebhook.Repo.Link scmWebhook.Repo.CloneSSH = events.BitBucketGitURL(scmWebhook.Repo.Link, fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name)) } + repositoryUrl = scmWebhook.Repo.Clone + repositoryName = fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name) response, err = e.HandlePull(gitType, event, reqUUID, scmWebhook) case *scm.TagHook: // future? + repositoryUrl = scmWebhook.Repo.Clone + repositoryName = fmt.Sprintf("%s/%s", scmWebhook.Repo.Namespace, scmWebhook.Repo.Name) respondWithError(w, http.StatusBadRequest, "tags events are currently unsupported") return } @@ -178,9 +187,9 @@ func (s *Server) handleWebhookPost(w http.ResponseWriter, r *http.Request) { errs = append(errs, i.Error.Error()) } } - log.Println("Errors:", strings.Join(errs, ";")) + log.Printf("errors: (%s:%s): %s\n", repositoryUrl, repositoryName, strings.Join(errs, ";")) } else { - log.Println("Error:", err) + log.Printf("error: (%s:%s): %v\n", repositoryUrl, repositoryName, err) } respondWithError(w, http.StatusBadRequest, "invalid resquest payload") return