mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
// Copyright 2020 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package cmd |
|
|
|
import ( |
|
"context" |
|
"strings" |
|
|
|
"code.gitea.io/gitea/modules/private" |
|
"code.gitea.io/gitea/modules/setting" |
|
|
|
"github.com/urfave/cli/v3" |
|
) |
|
|
|
// CmdRestoreRepository represents the available restore a repository sub-command. |
|
var CmdRestoreRepository = &cli.Command{ |
|
Name: "restore-repo", |
|
Usage: "Restore the repository from disk", |
|
Description: "This is a command for restoring the repository data.", |
|
Action: runRestoreRepository, |
|
Flags: []cli.Flag{ |
|
&cli.StringFlag{ |
|
Name: "repo_dir", |
|
Aliases: []string{"r"}, |
|
Value: "./data", |
|
Usage: "Repository dir path to restore from", |
|
}, |
|
&cli.StringFlag{ |
|
Name: "owner_name", |
|
Value: "", |
|
Usage: "Restore destination owner name", |
|
}, |
|
&cli.StringFlag{ |
|
Name: "repo_name", |
|
Value: "", |
|
Usage: "Restore destination repository name", |
|
}, |
|
&cli.StringFlag{ |
|
Name: "units", |
|
Value: "", |
|
Usage: `Which items will be restored, one or more units should be separated as comma. |
|
wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments are allowed. Empty means all units.`, |
|
}, |
|
&cli.BoolFlag{ |
|
Name: "validation", |
|
Usage: "Sanity check the content of the files before trying to load them", |
|
}, |
|
}, |
|
} |
|
|
|
func runRestoreRepository(ctx context.Context, c *cli.Command) error { |
|
setting.MustInstalled() |
|
var units []string |
|
if s := c.String("units"); s != "" { |
|
units = strings.Split(s, ",") |
|
} |
|
extra := private.RestoreRepo( |
|
ctx, |
|
c.String("repo_dir"), |
|
c.String("owner_name"), |
|
c.String("repo_name"), |
|
units, |
|
c.Bool("validation"), |
|
) |
|
return handleCliResponseExtra(extra) |
|
}
|
|
|