@@ -20,6 +20,7 @@ import (
20
20
"encoding/json"
21
21
"errors"
22
22
"fmt"
23
+ "github.com/devtron-labs/git-sensor/bean"
23
24
"github.com/devtron-labs/git-sensor/internals"
24
25
"github.com/devtron-labs/git-sensor/internals/sql"
25
26
"github.com/devtron-labs/git-sensor/internals/util"
@@ -39,7 +40,7 @@ type RepoManager interface {
39
40
AddRepo (gitCtx git.GitContext , material []* sql.GitMaterial ) ([]* sql.GitMaterial , error )
40
41
UpdateRepo (gitCtx git.GitContext , material * sql.GitMaterial ) (* sql.GitMaterial , error )
41
42
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 )
43
44
ResetRepo (gitCtx git.GitContext , materialId int ) error
44
45
GetReleaseChanges (gitCtx git.GitContext , request * ReleaseChangesRequest ) (* git.GitChanges , error )
45
46
GetCommitInfoForTag (gitCtx git.GitContext , request * git.CommitMetadataRequest ) (* git.GitCommitBase , error )
@@ -202,7 +203,10 @@ func (impl RepoManagerImpl) updatePipelineMaterialCommit(gitCtx git.GitContext,
202
203
var repository * git.GitRepository
203
204
commits , err := impl .repositoryManager .ChangesSinceByRepository (gitCtx , repository , pipelineMaterial .Value , "" , "" , fetchCount , material .CheckoutLocation , true )
204
205
//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 {
206
210
impl .logger .Infow ("commits found" , "commit" , commits )
207
211
b , err := json .Marshal (commits )
208
212
if err == nil {
@@ -361,7 +365,10 @@ func (impl RepoManagerImpl) checkoutMaterial(gitCtx git.GitContext, material *sq
361
365
checkoutLocationForFetching := impl .repositoryManager .GetCheckoutLocation (gitCtx , material , gitProvider .Url , checkoutPath )
362
366
363
367
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 {
365
372
material .CheckoutLocation = checkoutLocationForFetching
366
373
material .CheckoutStatus = true
367
374
} else {
@@ -386,18 +393,38 @@ func (impl RepoManagerImpl) checkoutMaterial(gitCtx git.GitContext, material *sq
386
393
return material , nil
387
394
}
388
395
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
+ }
393
410
}
411
+
394
412
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 )
397
423
}
398
-
399
424
}
425
+ return nil
400
426
}
427
+
401
428
func (impl RepoManagerImpl ) ResetRepo (gitCtx git.GitContext , materialId int ) error {
402
429
material , err := impl .materialRepository .FindById (materialId )
403
430
if err != nil {
0 commit comments