in code/go/internal/validator/semantic/validate_changelog_links.go [51:81]
func ensureLinksAreValid(links []string) specerrors.ValidationErrors {
type validateFn func(link *url.URL) error
var errs specerrors.ValidationErrors
validateLinks := []struct {
domain string
validateLink validateFn
}{
{
"github.com",
validateGithubLink,
},
}
for _, link := range links {
linkURL, err := url.Parse(link)
if err != nil {
errs.Append(specerrors.ValidationErrors{
specerrors.NewStructuredErrorf("invalid URL %v", err),
})
continue
}
for _, vl := range validateLinks {
if strings.Contains(linkURL.Host, vl.domain) {
if err = vl.validateLink(linkURL); err != nil {
errs.Append(specerrors.ValidationErrors{specerrors.NewStructuredError(err, specerrors.UnassignedCode)})
}
}
}
}
return errs
}