diff options
author | Justin Nuß <justin.nuss@hmmh.de> | 2014-07-24 12:29:37 +0200 |
---|---|---|
committer | Justin Nuß <justin.nuss@hmmh.de> | 2014-07-24 12:29:37 +0200 |
commit | 967856f36ebd2d6216ceb2299b5399f7d25e86e9 (patch) | |
tree | bfde3326df1efcda39927bea2b44e9dcc0d436e5 /models/repo.go | |
parent | 3c025b395077292a721419942f997311ef575fd9 (diff) | |
parent | a76a948a029f46697a0e2327ea6ca86872a760d7 (diff) |
Merge branch 'dev' into feature/attachments
Conflicts:
models/issue.go
routers/repo/issue.go
Diffstat (limited to 'models/repo.go')
-rw-r--r-- | models/repo.go | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/models/repo.go b/models/repo.go index 845c1b75..8dda6f0d 100644 --- a/models/repo.go +++ b/models/repo.go @@ -7,9 +7,9 @@ package models import ( "errors" "fmt" - "io/ioutil" "html" "html/template" + "io/ioutil" "os" "path" "path/filepath" @@ -43,6 +43,7 @@ var ( ErrRepoNameIllegal = errors.New("Repository name contains illegal characters") ErrRepoFileNotLoaded = errors.New("Repository file not loaded") ErrMirrorNotExist = errors.New("Mirror does not exist") + ErrInvalidReference = errors.New("Invalid reference specified") ) var ( @@ -837,6 +838,26 @@ func DeleteRepository(userId, repoId int64, userName string) error { return sess.Commit() } +// GetRepositoryByRef returns a Repository specified by a GFM reference. +// See https://help.github.com/articles/writing-on-github#references for more information on the syntax. +func GetRepositoryByRef(ref string) (*Repository, error) { + n := strings.IndexByte(ref, byte('/')) + + if n < 2 { + return nil, ErrInvalidReference + } + + userName, repoName := ref[:n], ref[n+1:] + + user, err := GetUserByName(userName) + + if err != nil { + return nil, err + } + + return GetRepositoryByName(user.Id, repoName) +} + // GetRepositoryByName returns the repository by given name under user if exists. func GetRepositoryByName(userId int64, repoName string) (*Repository, error) { repo := &Repository{ @@ -1017,4 +1038,4 @@ func IsWatching(uid, rid int64) bool { func ForkRepository(repoName string, uid int64) { -}
\ No newline at end of file +} |