Skip to content

Commit 1c29859

Browse files
authored
Merge pull request #6462 from devtron-labs/chore-refactoring-git-watcher
chore: added supoort for backup in update repo api
2 parents 874ee33 + 6e56f9f commit 1c29859

File tree

9 files changed

+523
-496
lines changed

9 files changed

+523
-496
lines changed

client/gitSensor/GitSensorGrpcClient.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ func (client *GrpcApiClientImpl) AddRepo(ctx context.Context, materials []*GitMa
160160
Deleted: item.Deleted,
161161
FilterPattern: item.FilterPattern,
162162
CloningMode: item.CloningMode,
163+
CreateBackup: item.CreateBackup,
163164
})
164165
}
165166
}
@@ -191,6 +192,7 @@ func (client *GrpcApiClientImpl) UpdateRepo(ctx context.Context, material *GitMa
191192
Deleted: material.Deleted,
192193
FilterPattern: material.FilterPattern,
193194
CloningMode: material.CloningMode,
195+
CreateBackup: material.CreateBackup,
194196
}
195197

196198
_, err = serviceClient.UpdateRepo(ctx, mappedMaterial)

client/gitSensor/GitSensorRestClient.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ type GitMaterial struct {
8888
FetchSubmodules bool
8989
FilterPattern []string
9090
CloningMode string
91+
CreateBackup bool
9192
}
9293
type GitProvider struct {
9394
Id int

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/devtron-labs/authenticator v0.4.35-0.20240809073103-6e11da8083f8
2424
github.com/devtron-labs/common-lib v0.18.1-0.20241001061923-eda545dc839e
2525
github.com/devtron-labs/go-bitbucket v0.9.60-beta
26-
github.com/devtron-labs/protos v0.0.3-0.20240802105333-92ee9bb85d80
26+
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e
2727
github.com/evanphx/json-patch v5.9.0+incompatible
2828
github.com/gammazero/workerpool v1.1.3
2929
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,8 +798,8 @@ github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250317062447-742cf1
798798
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250317062447-742cf1539ee2/go.mod h1:1QJJLpgJSkb5Jm9xPeKAk+kXb0QgBOOOgJj0cgYhAVA=
799799
github.com/devtron-labs/go-bitbucket v0.9.60-beta h1:VEx1jvDgdtDPS6A1uUFoaEi0l1/oLhbr+90xOwr6sDU=
800800
github.com/devtron-labs/go-bitbucket v0.9.60-beta/go.mod h1:GnuiCesvh8xyHeMCb+twm8lBR/kQzJYSKL28ZfObp1Y=
801-
github.com/devtron-labs/protos v0.0.3-0.20240802105333-92ee9bb85d80 h1:xwbTeijNTf4/j1v+tSfwVqwLVnReas/NqEKeQHvSTys=
802-
github.com/devtron-labs/protos v0.0.3-0.20240802105333-92ee9bb85d80/go.mod h1:ypUknVph8Ph4dxSlrFoouf7wLedQxHku2LQwgRrdgS4=
801+
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs=
802+
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e/go.mod h1:1TqULGlTey+VNhAu/ag7NJuUvByJemkqodsc9L5PHJk=
803803
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
804804
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
805805
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=

pkg/bean/app.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ type GitMaterial struct {
9292
FetchSubmodules bool `json:"fetchSubmodules"`
9393
IsUsedInCiConfig bool `json:"isUsedInCiConfig"`
9494
FilterPattern []string `json:"filterPattern"`
95+
CreateBackup bool `json:"createBackup"`
9596
}
9697

9798
// UpdateSanitisedGitRepoUrl will remove all trailing slashes , leading and trailing spaces from git repository url

pkg/pipeline/CiCdPipelineOrchestrator.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,7 +1351,7 @@ func (impl CiCdPipelineOrchestratorImpl) DeleteApp(appId int, userId int32) erro
13511351

13521352
impl.logger.Debug("deleting materials in git_sensor")
13531353
for _, m := range materials {
1354-
err = impl.updateRepositoryToGitSensor(m, "")
1354+
err = impl.updateRepositoryToGitSensor(m, "", false)
13551355
if err != nil {
13561356
impl.logger.Errorw("error in updating to git-sensor", "err", err)
13571357
return err
@@ -1467,7 +1467,8 @@ func (impl CiCdPipelineOrchestratorImpl) UpdateMaterial(updateMaterialDTO *bean.
14671467
return nil, err
14681468
}
14691469

1470-
err = impl.updateRepositoryToGitSensor(updatedMaterial, "")
1470+
err = impl.updateRepositoryToGitSensor(updatedMaterial, "",
1471+
updateMaterialDTO.Material.CreateBackup)
14711472
if err != nil {
14721473
impl.logger.Errorw("error in updating to git-sensor", "err", err)
14731474
return nil, err
@@ -1480,7 +1481,8 @@ func (impl CiCdPipelineOrchestratorImpl) UpdateMaterial(updateMaterialDTO *bean.
14801481
return updateMaterialDTO, nil
14811482
}
14821483

1483-
func (impl CiCdPipelineOrchestratorImpl) updateRepositoryToGitSensor(material *repository6.GitMaterial, cloningMode string) error {
1484+
func (impl CiCdPipelineOrchestratorImpl) updateRepositoryToGitSensor(material *repository6.GitMaterial,
1485+
cloningMode string, createBackup bool) error {
14841486
sensorMaterial := &gitSensor.GitMaterial{
14851487
Name: material.Name,
14861488
Url: material.Url,
@@ -1491,8 +1493,16 @@ func (impl CiCdPipelineOrchestratorImpl) updateRepositoryToGitSensor(material *r
14911493
FetchSubmodules: material.FetchSubmodules,
14921494
FilterPattern: material.FilterPattern,
14931495
CloningMode: cloningMode,
1496+
CreateBackup: createBackup,
14941497
}
1495-
return impl.GitSensorClient.UpdateRepo(context.Background(), sensorMaterial)
1498+
timeout := 10 * time.Minute
1499+
if createBackup {
1500+
// additional time may be required for dir snapshot
1501+
timeout = 15 * time.Minute
1502+
}
1503+
ctx, cancel := context.WithTimeout(context.Background(), timeout)
1504+
defer cancel()
1505+
return impl.GitSensorClient.UpdateRepo(ctx, sensorMaterial)
14961506
}
14971507

14981508
func (impl CiCdPipelineOrchestratorImpl) addRepositoryToGitSensor(materials []*bean.GitMaterial, cloningMode string) error {
@@ -1510,7 +1520,9 @@ func (impl CiCdPipelineOrchestratorImpl) addRepositoryToGitSensor(materials []*b
15101520
}
15111521
sensorMaterials = append(sensorMaterials, sensorMaterial)
15121522
}
1513-
return impl.GitSensorClient.AddRepo(context.Background(), sensorMaterials)
1523+
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
1524+
defer cancel()
1525+
return impl.GitSensorClient.AddRepo(ctx, sensorMaterials)
15141526
}
15151527

15161528
// FIXME: not thread safe

0 commit comments

Comments
 (0)