aboutsummaryrefslogtreecommitdiff
path: root/test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2022-05-04 14:17:02 +0200
committerPaul Holzinger <pholzing@redhat.com>2022-05-04 17:11:43 +0200
commit3b9177995e0124beb064ef8615ba9a2ae7ca4f4b (patch)
tree9661f41f6ad6024874f778a09b16e96aaefb48c3 /test/tools/vendor/github.com/vbatts/git-validation/rules/messageregexp
parent9166894c696582ee37893ce92a694ba227744fa0 (diff)
downloadpodman-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.go61
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
+}