in app/registry/public_api.go [183:230]
func (a *App) removePublicAPIReg(ctx *gin.Context) (router.Response, error) {
registryName := ctx.Param("name")
systemName := ctx.PostForm("reg-name")
if systemName == "" {
return nil, errors.New("reg-name is required")
}
vals, err := GetValuesFromGit(registryName, MasterBranch, a.Gerrit)
if err != nil {
return nil, fmt.Errorf("unable to get values from git, %w", err)
}
if err != nil {
return nil, fmt.Errorf("unable to decode publicAPI regs, %w", err)
}
found := false
for i, v := range vals.PublicApi {
if v.Name == systemName {
vals.PublicApi = append(vals.PublicApi[:i], vals.PublicApi[i+1:]...)
found = true
break
}
}
if !found {
return nil, errors.New("reg-name not found")
}
vals.OriginalYaml[publicAPIValuesIndex] = vals.PublicApi
if err != nil {
return nil, fmt.Errorf("unable to encode new values yaml, %w", err)
}
if err := CreateEditMergeRequest(
ctx,
registryName,
vals.OriginalYaml,
a.Gerrit, []string{},
MRLabel{Key: MRLabelPublicApiTarget, Value: mrTargetPublicAPIReg},
MRLabel{Key: MRLabelPublicApiName, Value: ctx.PostForm("reg-name")},
MRLabel{Key: MRLabelPublicApiSubTarget, Value: "deletion"},
); err != nil {
return nil, fmt.Errorf("unable to create MR, %w", err)
}
return router.MakeRedirectResponse(http.StatusFound,
fmt.Sprintf("/admin/registry/view/%s", registryName)), nil
}