mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 10:20:39 +00:00
parent
436ef5b50a
commit
6f8e388b55
4 changed files with 21 additions and 2 deletions
|
@ -423,13 +423,18 @@ func createUpdateHook(repoPath string) error {
|
||||||
|
|
||||||
// InitRepository initializes README and .gitignore if needed.
|
// InitRepository initializes README and .gitignore if needed.
|
||||||
func initRepository(e Engine, repoPath string, u *User, repo *Repository, initReadme bool, repoLang, license string) error {
|
func initRepository(e Engine, repoPath string, u *User, repo *Repository, initReadme bool, repoLang, license string) error {
|
||||||
|
// Somehow the directory could exist.
|
||||||
|
if com.IsExist(repoPath) {
|
||||||
|
return fmt.Errorf("initRepository: path already exists: %s", repoPath)
|
||||||
|
}
|
||||||
|
|
||||||
// Init bare new repository.
|
// Init bare new repository.
|
||||||
os.MkdirAll(repoPath, os.ModePerm)
|
os.MkdirAll(repoPath, os.ModePerm)
|
||||||
_, stderr, err := process.ExecDir(-1, repoPath,
|
_, stderr, err := process.ExecDir(-1, repoPath,
|
||||||
fmt.Sprintf("initRepository(git init --bare): %s", repoPath),
|
fmt.Sprintf("initRepository(git init --bare): %s", repoPath),
|
||||||
"git", "init", "--bare")
|
"git", "init", "--bare")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("git init --bare: " + stderr)
|
return fmt.Errorf("git init --bare: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := createUpdateHook(repoPath); err != nil {
|
if err := createUpdateHook(repoPath); err != nil {
|
||||||
|
|
|
@ -27,7 +27,7 @@ func (repo *Repository) GetTags() ([]string, error) {
|
||||||
}
|
}
|
||||||
stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l")
|
stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New(stderr)
|
return nil, concatenateError(err, stderr)
|
||||||
}
|
}
|
||||||
tags := strings.Split(stdout, "\n")
|
tags := strings.Split(stdout, "\n")
|
||||||
return tags[:len(tags)-1], nil
|
return tags[:len(tags)-1], nil
|
||||||
|
|
|
@ -7,6 +7,7 @@ package git
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"container/list"
|
"container/list"
|
||||||
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -67,3 +68,10 @@ func isFile(filePath string) bool {
|
||||||
}
|
}
|
||||||
return !f.IsDir()
|
return !f.IsDir()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func concatenateError(err error, stderr string) error {
|
||||||
|
if len(stderr) == 0 {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return fmt.Errorf("%v: %s", err, stderr)
|
||||||
|
}
|
||||||
|
|
|
@ -47,6 +47,12 @@ func OrgAssignment(redirect bool, args ...bool) macaron.Handler {
|
||||||
org := ctx.Org.Organization
|
org := ctx.Org.Organization
|
||||||
ctx.Data["Org"] = org
|
ctx.Data["Org"] = org
|
||||||
|
|
||||||
|
// Force redirection when username is actually a user.
|
||||||
|
if !org.IsOrganization() {
|
||||||
|
ctx.Redirect("/" + org.Name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if ctx.IsSigned {
|
if ctx.IsSigned {
|
||||||
ctx.Org.IsOwner = org.IsOwnedBy(ctx.User.Id)
|
ctx.Org.IsOwner = org.IsOwnedBy(ctx.User.Id)
|
||||||
if ctx.Org.IsOwner {
|
if ctx.Org.IsOwner {
|
||||||
|
|
Loading…
Reference in a new issue