MCPcopy Create free account
hub / github.com/gogs/gogs / ChangeRepositoryName

Function ChangeRepositoryName

internal/database/repo.go:1512–1546  ·  view source on GitHub ↗

ChangeRepositoryName changes all corresponding setting from old repository name to new one.

(u *User, oldRepoName, newRepoName string)

Source from the content-addressed store, hash-verified

1510
1511// ChangeRepositoryName changes all corresponding setting from old repository name to new one.
1512func 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
1548func getRepositoriesByForkID(e Engine, forkID int64) ([]*Repository, error) {
1549 repos := make([]*Repository, 0, 10)

Callers 1

SettingsPostFunction · 0.92

Calls 10

isRepoNameAllowedFunction · 0.85
IsRepositoryExistFunction · 0.85
GetRepositoryByNameFunction · 0.85
RepoPathFunction · 0.85
WikiPathFunction · 0.85
RemoveAllWithNoticeFunction · 0.85
deleteRepoLocalCopyFunction · 0.85
RepoPathMethod · 0.80
WikiPathMethod · 0.80
LocalWikiPathMethod · 0.80

Tested by

no test coverage detected