diff --git a/manifest/rfc2822.go b/manifest/rfc2822.go index ad4484e..5effa31 100644 --- a/manifest/rfc2822.go +++ b/manifest/rfc2822.go @@ -161,12 +161,6 @@ func (manifest *Manifest2822) AddEntry(entry Manifest2822Entry) error { if entry.GitRepo == "" || entry.GitFetch == "" || entry.GitCommit == "" { return fmt.Errorf("Tags %q missing one of GitRepo, GitFetch, or GitCommit", entry.TagsString()) } - if !GitFetchRegex.MatchString(entry.GitFetch) { - return fmt.Errorf(`Tags %q has invalid GitFetch (must be "refs/heads/..." or "refs/tags/..."): %q`, entry.TagsString(), entry.GitFetch) - } - if !GitCommitRegex.MatchString(entry.GitCommit) { - return fmt.Errorf(`Tags %q has invalid GitCommit (must be a commit, not a tag or ref): %q`, entry.TagsString(), entry.GitCommit) - } if invalidMaintainers := entry.InvalidMaintainers(); len(invalidMaintainers) > 0 { return fmt.Errorf("Tags %q has invalid Maintainers: %q (expected format %q)", strings.Join(invalidMaintainers, ", "), MaintainersFormat) } @@ -270,6 +264,13 @@ func Parse2822(readerIn io.Reader) (*Manifest2822, error) { return nil, err } + if !GitFetchRegex.MatchString(entry.GitFetch) { + return fmt.Errorf(`Tags %q has invalid GitFetch (must be "refs/heads/..." or "refs/tags/..."): %q`, entry.TagsString(), entry.GitFetch) + } + if !GitCommitRegex.MatchString(entry.GitCommit) { + return fmt.Errorf(`Tags %q has invalid GitCommit (must be a commit, not a tag or ref): %q`, entry.TagsString(), entry.GitCommit) + } + err = manifest.AddEntry(entry) if err != nil { return nil, err