filecheck/nonasciiMsg #35
| 
						 | 
					@ -10,17 +10,13 @@ import (
 | 
				
			||||||
	"github.com/go-git/go-git/v5/plumbing/object"
 | 
						"github.com/go-git/go-git/v5/plumbing/object"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// nonAsciiMsg checks for non-ASCII characters in the commit message.
 | 
					// NonAsciiMsg checks for non-ASCII characters in the commit message.
 | 
				
			||||||
// If the message starts with "Merge pull request", it skips the non-ASCII characters check.
 | 
					// It skips the non-ASCII characters check for lines starting with specific keywords like "Co-authored-by", "Reviewed-by", and "Co-committed-by".
 | 
				
			||||||
// Otherwise, it iterates over each character in the message and checks if it is a non-ASCII character.
 | 
					 | 
				
			||||||
// If a non-ASCII character is found, it returns an error indicating not to use non-ASCII characters in commit messages.
 | 
					 | 
				
			||||||
// Otherwise, it returns nil indicating that the commit message is valid.
 | 
					 | 
				
			||||||
func NonAsciiMsg(root string) error {
 | 
					func NonAsciiMsg(root string) error {
 | 
				
			||||||
	// cmd := exec.Command("git", "log", "--encoding=UTF-8", "--format=%B")
 | 
					 | 
				
			||||||
	repo, err := git.PlainOpen(root)
 | 
						repo, err := git.PlainOpen(root)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		slog.Error("openning git repo", "err", err)
 | 
							slog.Error("opening git repo", "err", err)
 | 
				
			||||||
		return fmt.Errorf("error openning git repo: %v", err)
 | 
							return fmt.Errorf("error opening git repo: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ref, err := repo.Head()
 | 
						ref, err := repo.Head()
 | 
				
			||||||
| 
						 | 
					@ -45,16 +41,38 @@ func NonAsciiMsg(root string) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var nonAsciiMsgs []string
 | 
						var nonAsciiMsgs []string
 | 
				
			||||||
 | 
						// List of prefixes to ignore in the commit message
 | 
				
			||||||
 | 
						ignoredPrefixes := []string{
 | 
				
			||||||
 | 
							"Co-authored-by:",
 | 
				
			||||||
 | 
							"Reviewed-by:",
 | 
				
			||||||
 | 
							"Co-committed-by:",
 | 
				
			||||||
 | 
							"Reviewed-on:",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, msg := range msgs {
 | 
						for _, msg := range msgs {
 | 
				
			||||||
		if msg == "" {
 | 
							if msg == "" {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if strings.HasPrefix(msg, "Merge pull request") {
 | 
							// Split message by lines and ignore specific lines with prefixes
 | 
				
			||||||
 | 
							lines := strings.Split(msg, "\n")
 | 
				
			||||||
 | 
							for _, line := range lines {
 | 
				
			||||||
 | 
								trimmedLine := strings.TrimSpace(line)
 | 
				
			||||||
 | 
								ignore := false
 | 
				
			||||||
 | 
								for _, prefix := range ignoredPrefixes {
 | 
				
			||||||
 | 
									if strings.HasPrefix(trimmedLine, prefix) {
 | 
				
			||||||
 | 
										ignore = true
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if ignore {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		for _, c := range msg {
 | 
								// Check for non-ASCII characters in the rest of the lines
 | 
				
			||||||
 | 
								for _, c := range line {
 | 
				
			||||||
				if c > unicode.MaxASCII {
 | 
									if c > unicode.MaxASCII {
 | 
				
			||||||
					nonAsciiMsgs = append(nonAsciiMsgs, msg)
 | 
										nonAsciiMsgs = append(nonAsciiMsgs, msg)
 | 
				
			||||||
 | 
										break
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user