Skip to content

Commit

Permalink
check invalid unit names
Browse files Browse the repository at this point in the history
  • Loading branch information
wxiaoguang committed Jun 13, 2022
1 parent 180e935 commit 040100f
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions services/migrations/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package migrations

import (
"context"
"errors"
"fmt"
"io"
"net/http"
Expand Down Expand Up @@ -572,7 +573,7 @@ func DumpRepository(ctx context.Context, baseDir, ownerName string, opts base.Mi
return nil
}

func updateOptionsUnits(opts *base.MigrateOptions, units []string) {
func updateOptionsUnits(opts *base.MigrateOptions, units []string) error {
if len(units) == 0 {
opts.Wiki = true
opts.Issues = true
Expand All @@ -585,6 +586,8 @@ func updateOptionsUnits(opts *base.MigrateOptions, units []string) {
} else {
for _, unit := range units {
switch strings.ToLower(unit) {
case "":
continue
case "wiki":
opts.Wiki = true
case "issues":
Expand All @@ -601,9 +604,12 @@ func updateOptionsUnits(opts *base.MigrateOptions, units []string) {
opts.Comments = true
case "pull_requests":
opts.PullRequests = true
default:
return errors.New("invalid unit: " + unit)
}
}
}
return nil
}

// RestoreRepository restore a repository from the disk directory
Expand All @@ -626,7 +632,9 @@ func RestoreRepository(ctx context.Context, baseDir, ownerName, repoName string,
migrateOpts := base.MigrateOptions{
GitServiceType: structs.GitServiceType(tp),
}
updateOptionsUnits(&migrateOpts, units)
if err = updateOptionsUnits(&migrateOpts, units); err != nil {
return err
}

if err = migrateRepository(downloader, uploader, migrateOpts, nil); err != nil {
if err1 := uploader.Rollback(); err1 != nil {
Expand Down

0 comments on commit 040100f

Please sign in to comment.