Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
motatoes committed Mar 3, 2024
1 parent c7564e5 commit 08adc0a
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 18 deletions.
25 changes: 18 additions & 7 deletions cli/cmd/digger/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import (
"context"
"encoding/json"
"fmt"
core_drift "github.com/diggerhq/digger/cli/pkg/core/drift"
core_reporting "github.com/diggerhq/digger/cli/pkg/core/reporting"
"github.com/diggerhq/digger/cli/pkg/drift"
"log"
"net/http"
"os"
Expand Down Expand Up @@ -96,7 +98,7 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
if !strings.Contains(os.Getenv("DIGGER_HOSTNAME"), "cloud.digger.dev") {
usage.SendUsageRecord(githubActor, "log", "selfhosted")
}

type Inputs struct {
JobString string `json:"job"`
Id string `json:"id"`
Expand Down Expand Up @@ -237,7 +239,7 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
StateEnvVars: stateEnvVars,
CommandEnvVars: commandEnvVars,
}
err := digger.RunJob(jobs, ghRepository, githubActor, &githubPrService, policyChecker, planStorage, backendApi, currentDir)
err := digger.RunJob(jobs, ghRepository, githubActor, &githubPrService, policyChecker, planStorage, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -266,7 +268,16 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
Namespace: ghRepository,
EventName: "drift-detect",
}
err := digger.RunJob(job, ghRepository, githubActor, &githubPrService, policyChecker, nil, backendApi, currentDir)

slackNotificationUrl := os.Getenv("INPUT_DRIFT_DETECTION_SLACK_NOTIFICATION_URL")
var notification core_drift.Notification
if slackNotificationUrl != "" {
notification = drift.SlackNotification{slackNotificationUrl}
} else {
reportErrorAndExit(githubActor, fmt.Sprintf("Could not identify drift mode, please specify slack webhook url"), 8)
}

err := digger.RunJob(job, ghRepository, githubActor, &githubPrService, policyChecker, nil, backendApi, &notification, currentDir)
if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -640,7 +651,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
StateEnvVars: stateEnvVars,
CommandEnvVars: commandEnvVars,
}
err := digger.RunJob(jobs, repository, actor, &bitbucketService, policyChecker, planStorage, backendApi, currentDir)
err := digger.RunJob(jobs, repository, actor, &bitbucketService, policyChecker, planStorage, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -669,7 +680,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "drift-detect",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -699,7 +710,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "commit_to_default",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand All @@ -726,7 +737,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "commit_to_default",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down
13 changes: 9 additions & 4 deletions cli/pkg/digger/digger.go
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,7 @@ func RunJob(
policyChecker policy.Checker,
planStorage storage.PlanStorage,
backendApi backend.Api,
driftNotification *core_drift.Notification,
workingDir string,
) error {
runStartedAt := time.Now()
Expand Down Expand Up @@ -648,7 +649,7 @@ func RunJob(
}

case "digger drift-detect":
output, err := runDriftDetection(policyChecker, SCMOrganisation, SCMrepository, job.ProjectName, requestedBy, job.EventName, diggerExecutor)
output, err := runDriftDetection(policyChecker, SCMOrganisation, SCMrepository, job.ProjectName, requestedBy, job.EventName, diggerExecutor, driftNotification)
if err != nil {
return fmt.Errorf("failed to Run digger drift-detect command. %v", err)
}
Expand All @@ -662,7 +663,7 @@ func RunJob(
return nil
}

func runDriftDetection(policyChecker policy.Checker, SCMOrganisation string, SCMrepository string, projectName string, requestedBy string, eventName string, diggerExecutor execution.Executor, notification core_drift.Notification) (string, error) {
func runDriftDetection(policyChecker policy.Checker, SCMOrganisation string, SCMrepository string, projectName string, requestedBy string, eventName string, diggerExecutor execution.Executor, notification *core_drift.Notification) (string, error) {
err := usage.SendUsageRecord(requestedBy, eventName, "drift-detect")
if err != nil {
log.Printf("Failed to send usage report. %v", err)
Expand All @@ -687,9 +688,13 @@ func runDriftDetection(policyChecker policy.Checker, SCMOrganisation string, SCM
}

if planPerformed && nonEmptyPlan {
err := notification.Send(projectName, plan)
if notification == nil {
log.Print("Warning: no notification configured, not sending any notifications")
return plan, nil
}
err := (*notification).Send(projectName, plan)
if err != nil {
log.Printf("Erorr sending drift drift: %v", err)
log.Printf("Error sending drift drift: %v", err)
}
} else if planPerformed && !nonEmptyPlan {
log.Printf("No drift detected")
Expand Down
30 changes: 23 additions & 7 deletions ee/cli/cmd/digger/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ import (
"context"
"encoding/json"
"fmt"
core_drift "github.com/diggerhq/digger/cli/pkg/core/drift"
core_reporting "github.com/diggerhq/digger/cli/pkg/core/reporting"
"github.com/diggerhq/digger/cli/pkg/drift"
ee_drift "github.com/diggerhq/digger/ee/cli/pkg/drift"
"log"
"net/http"
"os"
Expand Down Expand Up @@ -96,7 +99,7 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
if !strings.Contains(os.Getenv("DIGGER_HOSTNAME"), "cloud.digger.dev") {
usage.SendUsageRecord(githubActor, "log", "selfhosted")
}

type Inputs struct {
JobString string `json:"job"`
Id string `json:"id"`
Expand Down Expand Up @@ -237,7 +240,7 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
StateEnvVars: stateEnvVars,
CommandEnvVars: commandEnvVars,
}
err := digger.RunJob(jobs, ghRepository, githubActor, &githubPrService, policyChecker, planStorage, backendApi, currentDir)
err := digger.RunJob(jobs, ghRepository, githubActor, &githubPrService, policyChecker, planStorage, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -266,7 +269,20 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
Namespace: ghRepository,
EventName: "drift-detect",
}
err := digger.RunJob(job, ghRepository, githubActor, &githubPrService, policyChecker, nil, backendApi, currentDir)

slackNotificationUrl := os.Getenv("INPUT_DRIFT_DETECTION_SLACK_NOTIFICATION_URL")
DriftAsGithubIssues := os.Getenv("INPUT_DRIFT_GITHUB_ISSUES")
var notification core_drift.Notification
if slackNotificationUrl != "" {
notification = drift.SlackNotification{slackNotificationUrl}
} else if DriftAsGithubIssues != "" {
var notificationService orchestrator.PullRequestService = githubPrService
notification = ee_drift.GithubIssueNotification{GithubService: &notificationService}
} else {
reportErrorAndExit(githubActor, fmt.Sprintf("Could not identify drift mode, please specify slack or github"), 8)
}

err := digger.RunJob(job, ghRepository, githubActor, &githubPrService, policyChecker, nil, backendApi, &notification, currentDir)
if err != nil {
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -640,7 +656,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
StateEnvVars: stateEnvVars,
CommandEnvVars: commandEnvVars,
}
err := digger.RunJob(jobs, repository, actor, &bitbucketService, policyChecker, planStorage, backendApi, currentDir)
err := digger.RunJob(jobs, repository, actor, &bitbucketService, policyChecker, planStorage, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -669,7 +685,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "drift-detect",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down Expand Up @@ -699,7 +715,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "commit_to_default",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand All @@ -726,7 +742,7 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
Namespace: repository,
EventName: "commit_to_default",
}
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, currentDir)
err := digger.RunJob(job, repository, actor, &bitbucketService, policyChecker, nil, backendApi, nil, currentDir)
if err != nil {
reportErrorAndExit(actor, fmt.Sprintf("Failed to run commands. %s", err), 8)
}
Expand Down

0 comments on commit 08adc0a

Please sign in to comment.