diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-05-04 14:17:02 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-05-04 17:11:43 +0200 |
commit | 3b9177995e0124beb064ef8615ba9a2ae7ca4f4b (patch) | |
tree | 9661f41f6ad6024874f778a09b16e96aaefb48c3 /test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp | |
parent | 9166894c696582ee37893ce92a694ba227744fa0 (diff) | |
download | podman-3b9177995e0124beb064ef8615ba9a2ae7ca4f4b.tar.gz podman-3b9177995e0124beb064ef8615ba9a2ae7ca4f4b.tar.bz2 podman-3b9177995e0124beb064ef8615ba9a2ae7ca4f4b.zip |
vendor test tools in submodule
Instead of using the main module we should vendor the test tools in a
different directory. That way we do not add extra dependencies to the
main module which can be problemetic for packages or other users.
This is already done in buildah so this makes us more consitent.
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp')
-rw-r--r-- | test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp/rule.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp/rule.go b/test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp/rule.go new file mode 100644 index 000000000..98587f262 --- /dev/null +++ b/test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp/rule.go @@ -0,0 +1,61 @@ +package messageregexp + +import ( + "fmt" + "regexp" + "strings" + + "github.com/vbatts/git-validation/git" + "github.com/vbatts/git-validation/validate" +) + +func init() { + validate.RegisterRule(RegexpRule) +} + +var ( + // RegexpRule for validating a user provided regex on the commit messages + RegexpRule = validate.Rule{ + Name: "message_regexp", + Description: "checks the commit message for a user provided regular expression", + Run: ValidateMessageRegexp, + Default: false, // only for users specifically calling it through -run ... + } +) + +// ValidateMessageRegexp is the message regex func to run +func ValidateMessageRegexp(r validate.Rule, c git.CommitEntry) (vr validate.Result) { + if r.Value == "" { + vr.Pass = true + vr.Msg = "noop: message_regexp value is blank" + return vr + } + + re := regexp.MustCompile(r.Value) + vr.CommitEntry = c + if len(strings.Split(c["parent"], " ")) > 1 { + vr.Pass = true + vr.Msg = "merge commits are not checked for message_regexp" + return vr + } + + hasValid := false + for _, line := range strings.Split(c["subject"], "\n") { + if re.MatchString(line) { + hasValid = true + } + } + for _, line := range strings.Split(c["body"], "\n") { + if re.MatchString(line) { + hasValid = true + } + } + if !hasValid { + vr.Pass = false + vr.Msg = fmt.Sprintf("commit message does not match %q", r.Value) + } else { + vr.Pass = true + vr.Msg = fmt.Sprintf("commit message matches %q", r.Value) + } + return vr +} |