diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-06-05 18:05:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-05 18:05:31 +0800 |
commit | 3d1fda737bc36e80a670f856fd85f6b884872b73 (patch) | |
tree | ab2d9a46730324b16c663bf38dc2409f303a1a5e | |
parent | d851bd9a6b469019f9593ed21b8216a12329710a (diff) | |
download | gitea-3d1fda737bc36e80a670f856fd85f6b884872b73.tar.gz gitea-3d1fda737bc36e80a670f856fd85f6b884872b73.zip |
Use git command instead of the ini package to remove the `origin` remote (#25066)
-rw-r--r-- | modules/repository/repo.go | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/modules/repository/repo.go b/modules/repository/repo.go index 3991e9ad99..bcb43f15e1 100644 --- a/modules/repository/repo.go +++ b/modules/repository/repo.go @@ -9,7 +9,6 @@ import ( "fmt" "io" "net/http" - "path" "strings" "time" @@ -26,8 +25,6 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/util" - - "gopkg.in/ini.v1" //nolint:depguard ) /* @@ -240,14 +237,14 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User, // cleanUpMigrateGitConfig removes mirror info which prevents "push --all". // This also removes possible user credentials. -func cleanUpMigrateGitConfig(configPath string) error { - cfg, err := ini.Load(configPath) // FIXME: the ini package doesn't really work with git config files - if err != nil { - return fmt.Errorf("open config file: %w", err) - } - cfg.DeleteSection("remote \"origin\"") - if err = cfg.SaveToIndent(configPath, "\t"); err != nil { - return fmt.Errorf("save config file: %w", err) +func cleanUpMigrateGitConfig(ctx context.Context, repoPath string) error { + cmd := git.NewCommand(ctx, "remote", "rm", "origin") + // if the origin does not exist + _, stderr, err := cmd.RunStdString(&git.RunOpts{ + Dir: repoPath, + }) + if err != nil && !strings.HasPrefix(stderr, "fatal: No such remote") { + return err } return nil } @@ -270,7 +267,7 @@ func CleanUpMigrateInfo(ctx context.Context, repo *repo_model.Repository) (*repo } if repo.HasWiki() { - if err := cleanUpMigrateGitConfig(path.Join(repo.WikiPath(), "config")); err != nil { + if err := cleanUpMigrateGitConfig(ctx, repo.WikiPath()); err != nil { return repo, fmt.Errorf("cleanUpMigrateGitConfig (wiki): %w", err) } } |