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  }