Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletions backend/config/envgetters.go
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
package config

import (
"fmt"
"os"
"strconv"
)

func GetMaxProjectsCreated() int {
// the maximum number of impacted projects possible for a change
// digger will fail when this number exceeds it
// default value of 0 or negative means unlimited allowed
maxProjects := os.Getenv("DIGGER_MAX_PROJECTS_IMPACTED")
maxProjectsNum, err := strconv.Atoi(maxProjects)
if err != nil {
fmt.Printf("Error converting env var to number: %v\n", err)
return 0
}
return maxProjectsNum
func LimitByNumOfFilesChanged() bool {
// if this flag is set then it will fail if there are more projects impacted than the
// number of files changed
return os.Getenv("DIGGER_LIMIT_MAX_PROJECTS_TO_FILES_CHANGED") == "1"
}
23 changes: 10 additions & 13 deletions backend/controllers/github.go
Original file line number Diff line number Diff line change
Expand Up @@ -402,12 +402,11 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR
return nil
}

// ratio of impacted projects to changed files should be less than MAX_RATIO
maxProjects := config2.GetMaxProjectsCreated()
if maxProjects > 0 {
if len(impactedProjects) > maxProjects {
log.Printf("Error the number impacted projects %v exceeds maximum allowed: %v", len(impactedProjects), maxProjects)
commentReporterManager.UpdateComment(fmt.Sprintf(":x: Error the number impacted projects %v exceeds maximum allowed: %v", len(impactedProjects), maxProjects))
// if flag set we dont allow more projects impacted than the number of changed files in PR (safety check)
if config2.LimitByNumOfFilesChanged() {
if len(impactedProjects) > len(changedFiles) {
log.Printf("Error the number impacted projects %v exceeds number of changed files: %v", len(impactedProjects), len(changedFiles))
commentReporterManager.UpdateComment(fmt.Sprintf(":x: Error the number impacted projects %v exceeds number of changed files: %v", len(impactedProjects), len(changedFiles)))
log.Printf("Information about the event:")
log.Printf("GH payload: %v", payload)
log.Printf("PR changed files: %v", changedFiles)
Expand All @@ -420,7 +419,6 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR
return fmt.Errorf("error processing event")
}
}

diggerCommand, err := orchestrator_scheduler.GetCommandFromJob(jobsForImpactedProjects[0])
if err != nil {
log.Printf("could not determine digger command from job: %v", jobsForImpactedProjects[0].Commands)
Expand Down Expand Up @@ -792,12 +790,11 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu
}
log.Printf("GitHub IssueComment event converted to Jobs successfully\n")

// ratio of impacted projects to changed files should be less than MAX_RATIO
maxProjects := config2.GetMaxProjectsCreated()
if maxProjects > 0 {
if len(impactedProjects) > maxProjects {
log.Printf("Error the number impacted projects %v exceeds maximum allowed: %v", len(impactedProjects), maxProjects)
commentReporterManager.UpdateComment(fmt.Sprintf(":x: Error the number impacted projects %v exceeds maximum allowed: %v", len(impactedProjects), maxProjects))
// if flag set we dont allow more projects impacted than the number of changed files in PR (safety check)
if config2.LimitByNumOfFilesChanged() {
if len(impactedProjects) > len(changedFiles) {
log.Printf("Error the number impacted projects %v exceeds number of changed files: %v", len(impactedProjects), len(changedFiles))
commentReporterManager.UpdateComment(fmt.Sprintf(":x: Error the number impacted projects %v exceeds number of changed files: %v", len(impactedProjects), len(changedFiles)))
log.Printf("Information about the event:")
log.Printf("GH payload: %v", payload)
log.Printf("PR changed files: %v", changedFiles)
Expand Down
Loading