@@ -37,6 +37,8 @@ import (
3737 "github.com/devtron-labs/devtron/pkg/bean"
3838 "github.com/go-pg/pg"
3939 "go.uber.org/zap"
40+ "net/url"
41+ "path"
4042 "strconv"
4143 "strings"
4244 "time"
@@ -891,7 +893,14 @@ func (impl DbPipelineOrchestratorImpl) updateMaterial(updateMaterialDTO *bean.Up
891893 return nil , validationErr
892894 }
893895 currentMaterial .Url = updateMaterialDTO .Material .Url
894- currentMaterial .Name = strconv .Itoa (updateMaterialDTO .Material .GitProviderId ) + "-" + updateMaterialDTO .Material .Url [strings .LastIndex (updateMaterialDTO .Material .Url , "/" )+ 1 :strings .LastIndex (updateMaterialDTO .Material .Url , ".git" )]
896+ materialUrl , err := url .Parse (updateMaterialDTO .Material .Url )
897+ if err != nil {
898+ return nil , err
899+ }
900+ basePath := path .Base (materialUrl .Path )
901+ basePath = strings .TrimSuffix (basePath , ".git" )
902+
903+ currentMaterial .Name = strconv .Itoa (updateMaterialDTO .Material .GitProviderId ) + "-" + basePath
895904 currentMaterial .GitProviderId = updateMaterialDTO .Material .GitProviderId
896905 currentMaterial .CheckoutPath = updateMaterialDTO .Material .CheckoutPath
897906 currentMaterial .AuditLog = models.AuditLog {UpdatedBy : updateMaterialDTO .UserId , CreatedBy : currentMaterial .CreatedBy , UpdatedOn : time .Now (), CreatedOn : currentMaterial .CreatedOn }
@@ -905,16 +914,22 @@ func (impl DbPipelineOrchestratorImpl) updateMaterial(updateMaterialDTO *bean.Up
905914}
906915
907916func (impl DbPipelineOrchestratorImpl ) createMaterial (inputMaterial * bean.GitMaterial , appId int , userId int32 ) (* pipelineConfig.GitMaterial , error ) {
917+ materialUrl , err := url .Parse (inputMaterial .Url )
918+ if err != nil {
919+ return nil , err
920+ }
921+ basePath := path .Base (materialUrl .Path )
922+ basePath = strings .TrimSuffix (basePath , ".git" )
908923 material := & pipelineConfig.GitMaterial {
909924 Url : inputMaterial .Url ,
910925 AppId : appId ,
911- Name : strconv .Itoa (inputMaterial .GitProviderId ) + "-" + inputMaterial . Url [ strings . LastIndex ( inputMaterial . Url , "/" ) + 1 : strings . LastIndex ( inputMaterial . Url , ".git" )] ,
926+ Name : strconv .Itoa (inputMaterial .GitProviderId ) + "-" + basePath ,
912927 GitProviderId : inputMaterial .GitProviderId ,
913928 Active : true ,
914929 CheckoutPath : inputMaterial .CheckoutPath ,
915930 AuditLog : models.AuditLog {UpdatedBy : userId , CreatedBy : userId , UpdatedOn : time .Now (), CreatedOn : time .Now ()},
916931 }
917- err : = impl .materialRepository .SaveMaterial (material )
932+ err = impl .materialRepository .SaveMaterial (material )
918933 if err != nil {
919934 impl .logger .Errorw ("error in saving material" , "material" , material , "err" , err )
920935 return nil , err
0 commit comments