diff options
Diffstat (limited to 'models/issue.go')
-rw-r--r-- | models/issue.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/models/issue.go b/models/issue.go index 17aef10553..00e0bf8027 100644 --- a/models/issue.go +++ b/models/issue.go @@ -964,7 +964,7 @@ func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, uuids []string) // GetIssueByRef returns an Issue specified by a GFM reference. // See https://help.github.com/articles/writing-on-github#references for more information on the syntax. func GetIssueByRef(ref string) (*Issue, error) { - n := strings.IndexByte(ref, byte('#')) + n := strings.IndexByte(ref, '#') if n == -1 { return nil, errMissingIssueNumber } @@ -974,7 +974,12 @@ func GetIssueByRef(ref string) (*Issue, error) { return nil, errInvalidIssueNumber } - repo, err := GetRepositoryByRef(ref[:n]) + i := strings.IndexByte(ref[:n], '/') + if i < 2 { + return nil, ErrInvalidReference + } + + repo, err := GetRepositoryByOwnerAndName(ref[:i], ref[i+1:n]) if err != nil { return nil, err } |