cli/context/context.go
2019-10-10 15:43:25 -05:00

45 lines
899 B
Go

package context
import (
"io/ioutil"
"os/user"
"regexp"
"strings"
"github.com/github/gh-cli/git"
"github.com/github/gh-cli/github"
)
// GetToken returns the authentication token as stored in the config file for the user running gh-cli
func GetToken() (string, error) {
usr, err := user.Current()
if err != nil {
return "", err
}
content, err := ioutil.ReadFile(usr.HomeDir + "/.config/hub")
if err != nil {
return "", err
}
r := regexp.MustCompile(`oauth_token: (\w+)`)
token := r.FindStringSubmatch(string(content))
return token[1], nil
}
func CurrentUsername() (string, error) {
host, err := github.CurrentConfig().DefaultHost()
if err != nil {
return "", nil
}
return host.User, nil
}
func CurrentBranch() (string, error) {
currentBranch, err := git.Head()
if err != nil {
return "", err
}
return strings.Replace(currentBranch, "refs/heads/", "", 1), nil
}