func SupportedClients() []string {
	types := make([]string, 0, len(clients))
	for i := range clients {
		types = append(types, clients[i].GetType())
	}
	return types
}
SupportedClients return list of all supported clients
package scm
import "fmt"
type Client interface {
	NewClient() (Client, error)
	GetUserRepos(targetUsername string) ([]Repo, error)
	GetOrgRepos(targetOrg string) ([]Repo, error)
	GetType() string
}
var (
	clients []Client
)
func registerClient(c Client) {
	clients = append(clients, c)
}
func GetClient(cType string) (Client, error) {
	for i := range clients {
		if clients[i].GetType() == cType {
			return clients[i].NewClient()
		}
	}
	return nil, fmt.Errorf("client type '%s' unsupported", cType)
}