@@ -38,7 +38,7 @@ type ReleaseNoteService interface {
3838 UpdateReleases (requestBodyBytes []byte ) (bool , error )
3939 GetModulesV2 () ([]* common.Module , error )
4040 GetModuleByName (name string ) (* common.Module , error )
41- GetReleasesOnInitialisation (repository bean.Repository )
41+ GetReleasesOnInitialisation (repository bean.Repository ) error
4242}
4343
4444type ReleaseNoteServiceImpl struct {
@@ -68,7 +68,11 @@ func NewReleaseNoteServiceImpl(logger *zap.SugaredLogger, client *util.GitHubCli
6868 // Async Call for getting releases from Github
6969 serviceImpl .logger .Infow ("getting release from github" )
7070 for _ , repo := range client .GitHubConfig .GitHubRepo {
71- go serviceImpl .GetReleasesOnInitialisation (bean .Repository (repo ))
71+ err := serviceImpl .GetReleasesOnInitialisation (bean .Repository (repo ))
72+ if err != nil {
73+ logger .Errorw ("error in getting releases from github" , "err" , err )
74+ return nil , err
75+ }
7276 }
7377 return serviceImpl , nil
7478}
@@ -283,6 +287,8 @@ func (impl *ReleaseNoteServiceImpl) GetReleasesFromGithubWithRetry(repository be
283287 retryCount = retryCount + 1
284288 releasesDto , releaseStatus := impl .GetReleasesFromGithub (repository )
285289 if ! releaseStatus {
290+ // adding sleep for 3 seconds before retry
291+ time .Sleep (3 * time .Second )
286292 continue
287293 }
288294 operationComplete = releaseStatus
@@ -468,23 +474,25 @@ func (impl *ReleaseNoteServiceImpl) GetModuleByName(name string) (*common.Module
468474 return module , nil
469475}
470476
471- func (impl * ReleaseNoteServiceImpl ) GetReleasesOnInitialisation (repository bean.Repository ) {
477+ func (impl * ReleaseNoteServiceImpl ) GetReleasesOnInitialisation (repository bean.Repository ) error {
472478 cacheKey := bean .GetCacheKeyBasedOnRepo (repository )
473479 // Getting releases from github on Initialisation(will try 3 times if failed)
474480 releases , err := impl .GetReleasesFromGithubWithRetry (repository )
475481 if err != nil {
476482 impl .logger .Errorw ("error in getting releases from github on initialisation" , "err" , fmt .Errorf ("failed operation on fetching releases from github, attempted 3 times" ))
477- return
483+ return err
478484 }
479485 if len (releases ) > 0 {
480486 releaseCache [cacheKey ] = releases
481487 releaseInfo := releases [0 ]
482488 _ , err = impl .updateTagToBlobStorage (releaseInfo , repository )
483489 if err != nil {
484490 impl .logger .Errorw ("error in updating on blob" , "err" , err , "tagName" , releaseInfo .TagName )
491+ return err
485492 }
486493
487494 }
495+ return nil
488496}
489497
490498func (impl * ReleaseNoteServiceImpl ) createBlobStorageRequest (cloudProvider blob_storage.BlobStorageType , sourceKey string , destinationKey string ) * blob_storage.BlobStorageRequest {
0 commit comments