func parseReferer()

in cmd/redirector/referer.go [15:27]


func parseReferer(v string, extractors map[string]extractor) (repoRef, error) {
	u, err := url.Parse(v)
	if err != nil {
		return nil, errors.Errorf("could not parse %s as url", v)
	}
	fn, ok := extractors[u.Hostname()]
	if !ok {
		return nil, errors.Errorf("hostname %s not supported", u.Hostname())
	}

	out, err := fn(u)
	return out, errors.Wrap(err, "failed to extract URL components")
}