|
@ -46,12 +46,12 @@ func IsRepositoryExist(user *User, reposName string) (bool, error) { |
|
|
//
|
|
|
//
|
|
|
func CreateRepository(user *User, reposName string) (*Repo, error) { |
|
|
func CreateRepository(user *User, reposName string) (*Repo, error) { |
|
|
f := RepoPath(user.Name, reposName) |
|
|
f := RepoPath(user.Name, reposName) |
|
|
_, err := git.InitRepository(f, false) |
|
|
|
|
|
|
|
|
_, err := git.InitRepository(f, true) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
return nil, err |
|
|
return nil, err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
repo := Repo{OwnerId: user.Id, Name: reposName} |
|
|
|
|
|
|
|
|
repo := Repo{OwnerId: user.Id, Name: reposName, LowerName: strings.ToLower(reposName)} |
|
|
session := orm.NewSession() |
|
|
session := orm.NewSession() |
|
|
defer session.Close() |
|
|
defer session.Close() |
|
|
session.Begin() |
|
|
session.Begin() |
|
@ -64,6 +64,19 @@ func CreateRepository(user *User, reposName string) (*Repo, error) { |
|
|
session.Rollback() |
|
|
session.Rollback() |
|
|
return nil, err |
|
|
return nil, err |
|
|
} |
|
|
} |
|
|
|
|
|
access := Access{UserName: user.Name, |
|
|
|
|
|
RepoName: repo.Name, |
|
|
|
|
|
Mode: AU_WRITABLE, |
|
|
|
|
|
} |
|
|
|
|
|
_, err = session.Insert(&access) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
err2 := os.RemoveAll(f) |
|
|
|
|
|
if err2 != nil { |
|
|
|
|
|
log.Error("delete repo directory %s/%s failed", user.Name, reposName) |
|
|
|
|
|
} |
|
|
|
|
|
session.Rollback() |
|
|
|
|
|
return nil, err |
|
|
|
|
|
} |
|
|
_, err = session.Exec("update user set num_repos = num_repos + 1 where id = ?", user.Id) |
|
|
_, err = session.Exec("update user set num_repos = num_repos + 1 where id = ?", user.Id) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
err2 := os.RemoveAll(f) |
|
|
err2 := os.RemoveAll(f) |
|
|