@@ -391,13 +391,14 @@ func handlePushEvent(gh utils.GithubClientProvider, payload *github.PushEvent) e
391391 log .Printf ("Error getting github service: %v" , err )
392392 return fmt .Errorf ("error getting github service" )
393393 }
394- utils .CloneGitRepoAndDoAction (cloneURL , defaultBranch , * token , func (dir string ) {
394+ utils .CloneGitRepoAndDoAction (cloneURL , defaultBranch , * token , func (dir string ) error {
395395 dat , err := os .ReadFile (path .Join (dir , "digger.yml" ))
396396 //TODO: fail here and return failure to main fn (need to refactor CloneGitRepoAndDoAction for that
397397 if err != nil {
398398 log .Printf ("ERROR fetching digger.yml file: %v" , err )
399399 }
400400 models .DB .UpdateRepoDiggerConfig (link .OrganisationId , string (dat ), repo )
401+ return nil
401402 })
402403 }
403404
@@ -412,7 +413,7 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR
412413 cloneURL := * payload .Repo .CloneURL
413414 prNumber := * payload .PullRequest .Number
414415
415- ghService , config , projectsGraph , branch , err := getDiggerConfig (gh , installationId , repoFullName , repoOwner , repoName , cloneURL , prNumber )
416+ diggerYmlStr , ghService , config , projectsGraph , branch , err := getDiggerConfig (gh , installationId , repoFullName , repoOwner , repoName , cloneURL , prNumber )
416417 if err != nil {
417418 log .Printf ("getDiggerConfig error: %v" , err )
418419 return fmt .Errorf ("error getting digger config" )
@@ -466,14 +467,8 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR
466467 impactedJobsMap [j .ProjectName ] = j
467468 }
468469
469- repo , err := GetRepoByInstllationId (installationId , repoOwner , repoName )
470- if err != nil {
471- log .Printf ("GetRepoByInstallationId error: %v" , err )
472- utils .InitCommentReporter (ghService , prNumber , fmt .Sprintf (":x: GetRepoByInstallationId error: %v" , err ))
473- return fmt .Errorf ("error converting jobs, GetRepoByInstallationId error: %v" , err )
474- }
475470 batchType := getBatchType (jobsForImpactedProjects )
476- batchId , _ , err := utils .ConvertJobsToDiggerJobs (impactedJobsMap , impactedProjectsMap , projectsGraph , installationId , * branch , prNumber , repoOwner , repoName , repoFullName , commentReporter .CommentId , repo . DiggerConfig , batchType )
471+ batchId , _ , err := utils .ConvertJobsToDiggerJobs (impactedJobsMap , impactedProjectsMap , projectsGraph , installationId , * branch , prNumber , repoOwner , repoName , repoFullName , commentReporter .CommentId , diggerYmlStr , batchType )
477472 if err != nil {
478473 log .Printf ("ConvertJobsToDiggerJobs error: %v" , err )
479474 utils .InitCommentReporter (ghService , prNumber , fmt .Sprintf (":x: ConvertJobsToDiggerJobs error: %v" , err ))
@@ -490,54 +485,39 @@ func handlePullRequestEvent(gh utils.GithubClientProvider, payload *github.PullR
490485 return nil
491486}
492487
493- func getDiggerConfig (gh utils.GithubClientProvider , installationId int64 , repoFullName string , repoOwner string , repoName string , cloneUrl string , prNumber int ) (* dg_github.GithubService , * dg_configuration.DiggerConfig , graph.Graph [string , dg_configuration.Project ], * string , error ) {
488+ func getDiggerConfig (gh utils.GithubClientProvider , installationId int64 , repoFullName string , repoOwner string , repoName string , cloneUrl string , prNumber int ) (string , * dg_github.GithubService , * dg_configuration.DiggerConfig , graph.Graph [string , dg_configuration.Project ], * string , error ) {
494489 ghService , token , err := utils .GetGithubService (gh , installationId , repoFullName , repoOwner , repoName )
495490 if err != nil {
496491 log .Printf ("Error getting github service: %v" , err )
497- return nil , nil , nil , nil , fmt .Errorf ("error getting github service" )
492+ return "" , nil , nil , nil , nil , fmt .Errorf ("error getting github service" )
498493 }
499494 var prBranch string
500495 prBranch , err = ghService .GetBranchName (prNumber )
501496 if err != nil {
502497 log .Printf ("Error getting branch name: %v" , err )
503- return nil , nil , nil , nil , fmt .Errorf ("error getting branch name" )
504- }
505-
506- repo , err := GetRepoByInstllationId (installationId , repoOwner , repoName )
507- if err != nil {
508- return nil , nil , nil , nil , err
509- }
510- if err != nil {
511- log .Printf ("Error getting repo: %v" , err )
512- return nil , nil , nil , nil , fmt .Errorf ("error getting repo" )
513- }
514-
515- configYaml , err := dg_configuration .LoadDiggerConfigYamlFromString (repo .DiggerConfig )
516- if err != nil {
517- log .Printf ("Error loading digger config: %v" , err )
518- return nil , nil , nil , nil , fmt .Errorf ("error loading digger config" )
498+ return "" , nil , nil , nil , nil , fmt .Errorf ("error getting branch name" )
519499 }
520500
521- log .Printf ("Digger config loadded successfully\n " )
522-
523- if configYaml .GenerateProjectsConfig != nil {
524- err = utils .CloneGitRepoAndDoAction (cloneUrl , prBranch , * token , func (dir string ) {
525- dg_configuration .HandleYamlProjectGeneration (configYaml , dir )
526- })
501+ var config * dg_configuration.DiggerConfig
502+ var diggerYmlStr string
503+ var dependencyGraph graph.Graph [string , dg_configuration.Project ]
504+ err = utils .CloneGitRepoAndDoAction (cloneUrl , prBranch , * token , func (dir string ) error {
505+ diggerYmlBytes , err := os .ReadFile (path .Join (dir , "digger.yml" ))
506+ diggerYmlStr = string (diggerYmlBytes )
507+ config , _ , dependencyGraph , err = dg_configuration .LoadDiggerConfig (dir )
527508 if err != nil {
528- log .Printf ("Error generating projects : %v" , err )
529- return nil , nil , nil , nil , fmt . Errorf ( "error generating projects" )
509+ log .Printf ("Error loading digger config : %v" , err )
510+ return err
530511 }
531- }
532-
533- config , dependencyGraph , err := loadDiggerConfig (configYaml )
534-
512+ return nil
513+ })
535514 if err != nil {
536- log .Printf ("Error loading digger config : %v" , err )
537- return nil , nil , nil , nil , fmt .Errorf ("error loading digger config " )
515+ log .Printf ("Error generating projects : %v" , err )
516+ return "" , nil , nil , nil , nil , fmt .Errorf ("error generating projects " )
538517 }
539- log .Printf ("Digger config parsed successfully\n " )
540- return ghService , config , dependencyGraph , & prBranch , nil
518+
519+ log .Printf ("Digger config loadded successfully\n " )
520+ return diggerYmlStr , ghService , config , dependencyGraph , & prBranch , nil
541521}
542522
543523func GetRepoByInstllationId (installationId int64 , repoOwner string , repoName string ) (* models.Repo , error ) {
@@ -581,7 +561,7 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu
581561 return nil
582562 }
583563
584- ghService , config , projectsGraph , branch , err := getDiggerConfig (gh , installationId , repoFullName , repoOwner , repoName , cloneURL , issueNumber )
564+ diggerYmlStr , ghService , config , projectsGraph , branch , err := getDiggerConfig (gh , installationId , repoFullName , repoOwner , repoName , cloneURL , issueNumber )
585565 if err != nil {
586566 log .Printf ("getDiggerConfig error: %v" , err )
587567 return fmt .Errorf ("error getting digger config" )
@@ -649,13 +629,8 @@ func handleIssueCommentEvent(gh utils.GithubClientProvider, payload *github.Issu
649629 impactedProjectsJobMap [j .ProjectName ] = j
650630 }
651631
652- repo , err := GetRepoByInstllationId (installationId , repoOwner , repoName )
653- if err != nil {
654- log .Printf ("GetRepoByInstallationId error: %v" , err )
655- return fmt .Errorf ("error converting jobs, GetRepoByInstallationId error: %v" , err )
656- }
657632 batchType := getBatchType (jobs )
658- batchId , _ , err := utils .ConvertJobsToDiggerJobs (impactedProjectsJobMap , impactedProjectsMap , projectsGraph , installationId , * branch , issueNumber , repoOwner , repoName , repoFullName , commentReporter .CommentId , repo . DiggerConfig , batchType )
633+ batchId , _ , err := utils .ConvertJobsToDiggerJobs (impactedProjectsJobMap , impactedProjectsMap , projectsGraph , installationId , * branch , issueNumber , repoOwner , repoName , repoFullName , commentReporter .CommentId , diggerYmlStr , batchType )
659634 if err != nil {
660635 log .Printf ("ConvertJobsToDiggerJobs error: %v" , err )
661636 utils .InitCommentReporter (ghService , issueNumber , fmt .Sprintf (":x: ConvertJobsToDiggerJobs error: %v" , err ))
0 commit comments