@@ -38,6 +38,7 @@ type RestHandler interface {
3838 GetCommitMetadataForPipelineMaterial (w http.ResponseWriter , r * http.Request )
3939 ReloadAllMaterial (w http.ResponseWriter , r * http.Request )
4040 ReloadMaterial (w http.ResponseWriter , r * http.Request )
41+ ReloadMaterials (w http.ResponseWriter , r * http.Request )
4142 GetChangesInRelease (w http.ResponseWriter , r * http.Request )
4243 GetCommitInfoForTag (w http.ResponseWriter , r * http.Request )
4344 RefreshGitMaterial (w http.ResponseWriter , r * http.Request )
@@ -116,9 +117,13 @@ func (handler RestHandlerImpl) SaveGitProvider(w http.ResponseWriter, r *http.Re
116117func (handler RestHandlerImpl ) AddRepo (w http.ResponseWriter , r * http.Request ) {
117118 decoder := json .NewDecoder (r .Body )
118119
119- gitCtx := git .BuildGitContext (r .Context ())
120120 var Repo []* sql.GitMaterial
121121 err := decoder .Decode (& Repo )
122+ cloningMode := git .CloningModeFull
123+ if Repo != nil && len (Repo ) > 0 {
124+ cloningMode = Repo [0 ].CloningMode
125+ }
126+ gitCtx := git .BuildGitContext (r .Context ()).WithCloningMode (cloningMode )
122127 if err != nil {
123128 handler .logger .Error (err )
124129 handler .writeJsonResp (w , err , nil , http .StatusBadRequest )
@@ -135,9 +140,9 @@ func (handler RestHandlerImpl) AddRepo(w http.ResponseWriter, r *http.Request) {
135140
136141func (handler RestHandlerImpl ) UpdateRepo (w http.ResponseWriter , r * http.Request ) {
137142 decoder := json .NewDecoder (r .Body )
138- gitCtx := git .BuildGitContext (r .Context ())
139143 var Repo * sql.GitMaterial
140144 err := decoder .Decode (& Repo )
145+ gitCtx := git .BuildGitContext (r .Context ()).WithCloningMode (Repo .CloningMode )
141146 if err != nil {
142147 handler .logger .Error (err )
143148 handler .writeJsonResp (w , err , nil , http .StatusBadRequest )
@@ -180,6 +185,31 @@ func (handler RestHandlerImpl) ReloadAllMaterial(w http.ResponseWriter, r *http.
180185 handler .writeJsonResp (w , nil , "reloaded se logs for detail" , http .StatusOK )
181186}
182187
188+ func (handler RestHandlerImpl ) ReloadMaterials (w http.ResponseWriter , r * http.Request ) {
189+ decoder := json .NewDecoder (r .Body )
190+ var request ReloadMaterialsDto
191+ err := decoder .Decode (& request )
192+
193+ //materialId, err := strconv.Atoi(vars["materialId"])
194+ if err != nil {
195+ handler .logger .Error (err )
196+ handler .writeJsonResp (w , err , nil , http .StatusBadRequest )
197+ return
198+ }
199+ for _ , materialReq := range request .reloadMaterial {
200+ handler .logger .Infow ("reload all pipelineMaterial request" , "id" , materialReq .GitmaterialId )
201+ gitCtx := git .BuildGitContext (r .Context ()).WithCloningMode (materialReq .CloningMode )
202+ err = handler .repositoryManager .ResetRepo (gitCtx , materialReq .GitmaterialId )
203+ if err != nil {
204+ handler .logger .Errorw ("error in reloading pipeline material" , "err" , err )
205+ //handler.writeJsonResp(w, err, nil, http.StatusInternalServerError)
206+ }
207+ }
208+ //TODO: handle in such a way that it can propagate which material weren't able to reload
209+ handler .writeJsonResp (w , nil , "reloaded" , http .StatusOK )
210+
211+ }
212+
183213func (handler RestHandlerImpl ) ReloadMaterial (w http.ResponseWriter , r * http.Request ) {
184214 vars := mux .Vars (r )
185215 gitCtx := git .BuildGitContext (r .Context ())
@@ -238,7 +268,6 @@ func (handler RestHandlerImpl) GetHeadForPipelineMaterials(w http.ResponseWriter
238268
239269func (handler RestHandlerImpl ) GetCommitMetadata (w http.ResponseWriter , r * http.Request ) {
240270 decoder := json .NewDecoder (r .Body )
241- gitCtx := git .BuildGitContext (r .Context ())
242271
243272 material := & git.CommitMetadataRequest {}
244273 err := decoder .Decode (material )
@@ -247,6 +276,7 @@ func (handler RestHandlerImpl) GetCommitMetadata(w http.ResponseWriter, r *http.
247276 handler .writeJsonResp (w , err , nil , http .StatusBadRequest )
248277 return
249278 }
279+ gitCtx := git .BuildGitContext (r .Context ())
250280 handler .logger .Infow ("commit detail request" , "req" , material )
251281 var commits * git.GitCommitBase
252282 if len (material .GitTag ) > 0 {
0 commit comments