ChangeRepositoryName changes all corresponding setting from old repository name to new one.
(u *User, oldRepoName, newRepoName string)
| 1510 | |
| 1511 | // ChangeRepositoryName changes all corresponding setting from old repository name to new one. |
| 1512 | func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error) { |
| 1513 | oldRepoName = strings.ToLower(oldRepoName) |
| 1514 | newRepoName = strings.ToLower(newRepoName) |
| 1515 | if err = isRepoNameAllowed(newRepoName); err != nil { |
| 1516 | return err |
| 1517 | } |
| 1518 | |
| 1519 | has, err := IsRepositoryExist(u, newRepoName) |
| 1520 | if err != nil { |
| 1521 | return errors.Newf("IsRepositoryExist: %v", err) |
| 1522 | } else if has { |
| 1523 | return ErrRepoAlreadyExist{args: errutil.Args{"ownerID": u.ID, "name": newRepoName}} |
| 1524 | } |
| 1525 | |
| 1526 | repo, err := GetRepositoryByName(u.ID, oldRepoName) |
| 1527 | if err != nil { |
| 1528 | return errors.Newf("GetRepositoryByName: %v", err) |
| 1529 | } |
| 1530 | |
| 1531 | // Change repository directory name |
| 1532 | if err = os.Rename(repo.RepoPath(), RepoPath(u.Name, newRepoName)); err != nil { |
| 1533 | return errors.Newf("rename repository directory: %v", err) |
| 1534 | } |
| 1535 | |
| 1536 | wikiPath := repo.WikiPath() |
| 1537 | if com.IsExist(wikiPath) { |
| 1538 | if err = os.Rename(wikiPath, WikiPath(u.Name, newRepoName)); err != nil { |
| 1539 | return errors.Newf("rename repository wiki: %v", err) |
| 1540 | } |
| 1541 | RemoveAllWithNotice("Delete repository wiki local copy", repo.LocalWikiPath()) |
| 1542 | } |
| 1543 | |
| 1544 | deleteRepoLocalCopy(repo.ID) |
| 1545 | return nil |
| 1546 | } |
| 1547 | |
| 1548 | func getRepositoriesByForkID(e Engine, forkID int64) ([]*Repository, error) { |
| 1549 | repos := make([]*Repository, 0, 10) |
no test coverage detected