package repos

import (
	"net/url"
	"regexp"
	"strings"
)

var gitProviders = map[string]string{
	"github.com":    "gitHub",
	"dev.azure.com": "azureDevOpsServices",
	"gitlab.com":    "gitLab",
	"bitbucket.org": "bitbucketCloud",
}

var awsCodeCommitRegexp = regexp.MustCompile(`^git-codecommit\.[^.]+\.amazonaws.com$`)

func DetectProvider(rawURL string) string {
	provider := ""
	u, err := url.Parse(rawURL)
	if err != nil {
		return provider
	}
	if v, ok := gitProviders[strings.ToLower(u.Host)]; ok {
		provider = v
	} else if awsCodeCommitRegexp.MatchString(u.Host) {
		provider = "awsCodeCommit"
	}
	return provider
}