in pkg/review/header.go [111:173]
func Header(result *header2.Result, config *header2.ConfigHeader) error {
ghOnce.Do(Init)
if !result.HasFailure() || !IsPR() || gh == nil || config.Comment == header2.Never {
return nil
}
commentedFiles := make(map[string]bool)
for _, comment := range GetAllReviewsComments() {
decodeString := comment.GetBody()
if strings.Contains(decodeString, Identification) {
logger.Log.Debugln("Path:", comment.GetPath())
commentedFiles[comment.GetPath()] = true
}
}
logger.Log.Debugln("CommentedFiles:", commentedFiles)
s := "RIGHT"
l := 1
var comments []*github.DraftReviewComment
for _, changedFile := range GetChangedFiles() {
logger.Log.Debugln("ChangedFile:", changedFile.GetFilename())
if commentedFiles[changedFile.GetFilename()] {
logger.Log.Debugln("ChangedFile was reviewed, skipping:", changedFile.GetFilename())
continue
}
for _, invalidFile := range result.Failure {
if !strings.HasSuffix(invalidFile, changedFile.GetFilename()) {
continue
}
blob, _, err := gh.Git.GetBlob(ctx, owner, repo, changedFile.GetSHA())
if err != nil {
logger.Log.Warnln("Failed to get blob:", changedFile.GetFilename(), changedFile.GetSHA())
continue
}
style := comments2.FileCommentStyle(changedFile.GetFilename())
if style == nil {
logger.Log.Warnln("Failed to determine the comment style of file:", changedFile.GetFilename())
continue
}
header, err := header2.GenerateLicenseHeader(style, config)
if err != nil {
logger.Log.Warnln("Failed to generate comment header:", changedFile.GetFilename())
continue
}
decodeString, err := base64.StdEncoding.DecodeString(blob.GetContent())
if err != nil {
logger.Log.Debugln("Failed to decode blob content:", err)
continue
}
body := "```suggestion\n" + header + strings.Split(string(decodeString), "\n")[0] + "\n```\n" + fmt.Sprintf(`<!-- %v -->`, Identification)
comments = append(comments, &github.DraftReviewComment{
Path: changedFile.Filename,
Body: &body,
Side: &s,
Line: &l,
})
}
}
return tryReview(result, config, comments)
}