github.com/jingweno/gh@v2.1.1-0.20221007190738-04a7985fa9a1+incompatible/github/hosts.go (about)

     1  package github
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/jingweno/gh/git"
     6  	"os"
     7  	"strings"
     8  )
     9  
    10  var (
    11  	GitHubHostEnv = os.Getenv("GITHUB_HOST")
    12  )
    13  
    14  type Hosts []string
    15  
    16  func (h Hosts) Include(host string) bool {
    17  	for _, hh := range h {
    18  		if hh == host {
    19  			return true
    20  		}
    21  	}
    22  
    23  	return false
    24  }
    25  
    26  func knownHosts() (hosts Hosts) {
    27  	ghHosts, _ := git.Config("gh.host")
    28  	for _, ghHost := range strings.Split(ghHosts, "\n") {
    29  		hosts = append(hosts, ghHost)
    30  	}
    31  
    32  	defaultHost := DefaultHost()
    33  	hosts = append(hosts, defaultHost)
    34  	hosts = append(hosts, fmt.Sprintf("ssh.%s", defaultHost))
    35  
    36  	return
    37  }
    38  
    39  func DefaultHost() string {
    40  	defaultHost := GitHubHostEnv
    41  	if defaultHost == "" {
    42  		defaultHost = GitHubHost
    43  	}
    44  
    45  	return defaultHost
    46  }