@@ -23,19 +23,23 @@ import (
2323 "fmt"
2424 "io"
2525 "net/http"
26+ "os"
27+ "path"
2628 "strconv"
2729 "strings"
2830
2931 "github.com/gin-gonic/gin"
3032 "k8s.io/apimachinery/pkg/util/sets"
3133
34+ "github.com/koderover/zadig/v2/pkg/microservice/aslan/config"
3235 commonrepo "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/mongodb"
3336 commonservice "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service"
37+ "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/command"
3438 fsservice "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/fs"
3539 commonutil "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/util"
3640 "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/environment/service"
37- codehostdb "github.com/koderover/zadig/v2/pkg/microservice/systemconfig/core/codehost/repository/mongodb"
3841 "github.com/koderover/zadig/v2/pkg/setting"
42+ "github.com/koderover/zadig/v2/pkg/shared/client/systemconfig"
3943 internalhandler "github.com/koderover/zadig/v2/pkg/shared/handler"
4044 e "github.com/koderover/zadig/v2/pkg/tool/errors"
4145 "github.com/koderover/zadig/v2/pkg/types"
@@ -2231,20 +2235,43 @@ func OpenAPIAddHelmServicesToEnv(c *gin.Context) {
22312235
22322236 valuesData := & commonservice.ValuesDataArgs {}
22332237 if service .ImportValuesFromGit != nil {
2234- codehostID , err := codehostdb . NewCodehostColl ().GetCodeHostByAlias (service .ImportValuesFromGit .CodehostName )
2238+ codeHost , err := systemconfig . New ().GetCodeHostByAlias (service .ImportValuesFromGit .CodehostName )
22352239 if err != nil {
2236- ctx .RespErr = e .ErrInvalidParam .AddDesc (fmt .Sprintf ("codehost %s not found " , service .ImportValuesFromGit .CodehostName ))
2240+ ctx .RespErr = e .ErrInvalidParam .AddDesc (fmt .Sprintf ("failed to get codehost %s, err: %s " , service .ImportValuesFromGit .CodehostName , err ))
22372241 return
22382242 }
22392243
2240- autoSyncYamlBytes , err := fsservice .DownloadFileFromSource (& fsservice.DownloadFromSourceArgs {
2241- CodehostID : codehostID .ID ,
2242- Namespace : service .ImportValuesFromGit .Namespace ,
2243- Owner : service .ImportValuesFromGit .Namespace ,
2244- Repo : service .ImportValuesFromGit .Repo ,
2245- Branch : service .ImportValuesFromGit .Branch ,
2246- Path : service .ImportValuesFromGit .ValuePath ,
2247- })
2244+ var autoSyncYamlBytes []byte
2245+ if codeHost .Type == setting .SourceFromOther {
2246+ service .ImportValuesFromGit .AutoSync = false
2247+ err = command .RunGitCmds (
2248+ codeHost ,
2249+ service .ImportValuesFromGit .Namespace ,
2250+ service .ImportValuesFromGit .Namespace ,
2251+ service .ImportValuesFromGit .Repo ,
2252+ service .ImportValuesFromGit .Branch ,
2253+ "origin" ,
2254+ )
2255+ if err != nil {
2256+ ctx .RespErr = e .ErrInvalidParam .AddDesc (fmt .Sprintf ("failed to sync git repo for values yaml, err: %s" , err ))
2257+ return
2258+ }
2259+ repoPath := path .Join (config .S3StoragePath (), service .ImportValuesFromGit .Repo , service .ImportValuesFromGit .ValuePath )
2260+ autoSyncYamlBytes , err = os .ReadFile (repoPath )
2261+ if err != nil {
2262+ ctx .RespErr = e .ErrInvalidParam .AddDesc (fmt .Sprintf ("failed to read values yaml from synced repo, path: %s, err: %s" , repoPath , err ))
2263+ return
2264+ }
2265+ } else {
2266+ autoSyncYamlBytes , err = fsservice .DownloadFileFromSource (& fsservice.DownloadFromSourceArgs {
2267+ CodehostID : codeHost .ID ,
2268+ Namespace : service .ImportValuesFromGit .Namespace ,
2269+ Owner : service .ImportValuesFromGit .Namespace ,
2270+ Repo : service .ImportValuesFromGit .Repo ,
2271+ Branch : service .ImportValuesFromGit .Branch ,
2272+ Path : service .ImportValuesFromGit .ValuePath ,
2273+ })
2274+ }
22482275 if err != nil {
22492276 ctx .RespErr = e .ErrInvalidParam .AddDesc (fmt .Sprintf ("failed to download auto sync yaml, err: %s" , err ))
22502277 return
@@ -2254,7 +2281,7 @@ func OpenAPIAddHelmServicesToEnv(c *gin.Context) {
22542281
22552282 valuesData = & commonservice.ValuesDataArgs {
22562283 GitRepoConfig : & commonservice.RepoConfig {
2257- CodehostID : codehostID .ID ,
2284+ CodehostID : codeHost .ID ,
22582285 Owner : service .ImportValuesFromGit .Namespace ,
22592286 Namespace : service .ImportValuesFromGit .Namespace ,
22602287 Repo : service .ImportValuesFromGit .Repo ,
0 commit comments