@@ -20,6 +20,7 @@ import (
2020 "encoding/json"
2121 "errors"
2222 "fmt"
23+ "github.com/devtron-labs/git-sensor/bean"
2324 "github.com/devtron-labs/git-sensor/internals"
2425 "github.com/devtron-labs/git-sensor/internals/sql"
2526 "github.com/devtron-labs/git-sensor/internals/util"
@@ -39,7 +40,7 @@ type RepoManager interface {
3940 AddRepo (gitCtx git.GitContext , material []* sql.GitMaterial ) ([]* sql.GitMaterial , error )
4041 UpdateRepo (gitCtx git.GitContext , material * sql.GitMaterial ) (* sql.GitMaterial , error )
4142 SavePipelineMaterial (gitCtx git.GitContext , material []* sql.CiPipelineMaterial ) ([]* sql.CiPipelineMaterial , error )
42- ReloadAllRepo (gitCtx git.GitContext )
43+ ReloadAllRepo (gitCtx git.GitContext , req * bean. ReloadAllMaterialQuery ) ( err error )
4344 ResetRepo (gitCtx git.GitContext , materialId int ) error
4445 GetReleaseChanges (gitCtx git.GitContext , request * ReleaseChangesRequest ) (* git.GitChanges , error )
4546 GetCommitInfoForTag (gitCtx git.GitContext , request * git.CommitMetadataRequest ) (* git.GitCommitBase , error )
@@ -202,7 +203,10 @@ func (impl RepoManagerImpl) updatePipelineMaterialCommit(gitCtx git.GitContext,
202203 var repository * git.GitRepository
203204 commits , err := impl .repositoryManager .ChangesSinceByRepository (gitCtx , repository , pipelineMaterial .Value , "" , "" , fetchCount , material .CheckoutLocation , true )
204205 //commits, err := impl.FetchChanges(pipelineMaterial.Id, "", "", 0)
205- if err == nil {
206+ if gitCtx .Err () != nil {
207+ impl .logger .Errorw ("context error in getting commits" , "err" , gitCtx .Err ())
208+ return gitCtx .Err ()
209+ } else if err == nil {
206210 impl .logger .Infow ("commits found" , "commit" , commits )
207211 b , err := json .Marshal (commits )
208212 if err == nil {
@@ -361,7 +365,10 @@ func (impl RepoManagerImpl) checkoutMaterial(gitCtx git.GitContext, material *sq
361365 checkoutLocationForFetching := impl .repositoryManager .GetCheckoutLocation (gitCtx , material , gitProvider .Url , checkoutPath )
362366
363367 err = impl .repositoryManager .Add (gitCtx , material .GitProviderId , checkoutPath , material .Url , gitProvider .AuthMode , gitProvider .SshPrivateKey )
364- if err == nil {
368+ if gitCtx .Err () != nil {
369+ impl .logger .Errorw ("context error in git checkout" , "err" , gitCtx .Err ())
370+ return material , gitCtx .Err ()
371+ } else if err == nil {
365372 material .CheckoutLocation = checkoutLocationForFetching
366373 material .CheckoutStatus = true
367374 } else {
@@ -386,18 +393,38 @@ func (impl RepoManagerImpl) checkoutMaterial(gitCtx git.GitContext, material *sq
386393 return material , nil
387394}
388395
389- func (impl RepoManagerImpl ) ReloadAllRepo (gitCtx git.GitContext ) {
390- materials , err := impl .materialRepository .FindAll ()
391- if err != nil {
392- impl .logger .Errorw ("error in reloading materials" )
396+ func (impl RepoManagerImpl ) ReloadAllRepo (gitCtx git.GitContext , req * bean.ReloadAllMaterialQuery ) (err error ) {
397+ var materials []* sql.GitMaterial
398+ if req != nil {
399+ materials , err = impl .materialRepository .FindInRage (req .Start , req .End )
400+ if err != nil {
401+ impl .logger .Errorw (bean .GetReloadAllLog ("error in getting reload materials" ), "err" , err )
402+ return err
403+ }
404+ } else {
405+ materials , err = impl .materialRepository .FindAll ()
406+ if err != nil {
407+ impl .logger .Errorw (bean .GetReloadAllLog ("error in getting reload materials" ), "err" , err )
408+ return err
409+ }
393410 }
411+
394412 for _ , material := range materials {
395- if _ , err := impl .checkoutRepo (gitCtx , material ); err != nil {
396- impl .logger .Errorw ("error in checkout" , "material" , material , "err" , err )
413+ impl .logger .Infow (bean .GetReloadAllLog ("performing material checkout for" ), "materialId" , material .Id )
414+ _ , err = impl .checkoutRepo (gitCtx , material )
415+ if gitCtx .Err () != nil {
416+ impl .logger .Errorw (bean .GetReloadAllLog ("error in material checkout" ), "materialId" , material .Id , "err" , gitCtx .Err ())
417+ return gitCtx .Err ()
418+ } else if err != nil {
419+ impl .logger .Errorw (bean .GetReloadAllLog ("context error in material while checkout" ), "materialId" , material .Id , "err" , err )
420+ // skipping for other materials to be processed
421+ } else {
422+ impl .logger .Infow (bean .GetReloadAllLog ("successfully checked out for material" ), "materialId" , material .Id )
397423 }
398-
399424 }
425+ return nil
400426}
427+
401428func (impl RepoManagerImpl ) ResetRepo (gitCtx git.GitContext , materialId int ) error {
402429 material , err := impl .materialRepository .FindById (materialId )
403430 if err != nil {
0 commit comments