github.com/abhinav/git-pr@v0.6.1-0.20171029234004-54218d68c11b/repo/parse.go (about) 1 package repo 2 3 import ( 4 "errors" 5 "fmt" 6 "strings" 7 ) 8 9 // Parse parses a repository name in the format 'owner/repo'. 10 func Parse(value string) (*Repo, error) { 11 parts := strings.Split(value, "/") 12 if len(parts) != 2 { 13 return nil, errors.New("repository must be in the form owner/repo") 14 } 15 16 owner := parts[0] 17 if owner == "" { 18 return nil, fmt.Errorf("owner in repository %q cannot be empty", value) 19 } 20 21 name := parts[1] 22 if name == "" { 23 return nil, fmt.Errorf("name in repository %q cannot be empty", value) 24 } 25 26 return &Repo{Owner: owner, Name: name}, nil 27 }