123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright 2021 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package private
-
- import (
- "io"
- "net/http"
-
- myCtx "code.gitea.io/gitea/modules/context"
- "code.gitea.io/gitea/modules/json"
- "code.gitea.io/gitea/modules/private"
- "code.gitea.io/gitea/services/migrations"
- )
-
- // RestoreRepo restore a repository from data
- func RestoreRepo(ctx *myCtx.PrivateContext) {
- bs, err := io.ReadAll(ctx.Req.Body)
- if err != nil {
- ctx.JSON(http.StatusInternalServerError, private.Response{
- Err: err.Error(),
- })
- return
- }
- params := struct {
- RepoDir string
- OwnerName string
- RepoName string
- Units []string
- Validation bool
- }{}
- if err = json.Unmarshal(bs, ¶ms); err != nil {
- ctx.JSON(http.StatusInternalServerError, private.Response{
- Err: err.Error(),
- })
- return
- }
-
- if err := migrations.RestoreRepository(
- ctx,
- params.RepoDir,
- params.OwnerName,
- params.RepoName,
- params.Units,
- params.Validation,
- ); err != nil {
- ctx.JSON(http.StatusInternalServerError, private.Response{
- Err: err.Error(),
- })
- } else {
- ctx.Status(http.StatusOK)
- }
- }
|