@@ -28,6 +28,8 @@ import (
28
28
"golang.org/x/exp/maps"
29
29
)
30
30
31
+ const githubCommentMaxSize = 65536
32
+
31
33
type promotionInstanceMetaData struct {
32
34
SourcePath string `json:"sourcePath"`
33
35
TargetPaths []string `json:"targetPaths"`
@@ -186,12 +188,20 @@ func HandlePREvent(eventPayload *github.PullRequestEvent, ghPrClientDetails GhPr
186
188
err , templateOutput := executeTemplate (ghPrClientDetails .PrLogger , "argoCdDiff" , "argoCD-diff-pr-comment.gotmpl" , diffCommentData )
187
189
if err != nil {
188
190
prHandleError = err
189
- log .Errorf ("Failed to generate ArgoCD diff comment template: err=%s\n " , err )
191
+ ghPrClientDetails .PrLogger .Errorf ("Failed to generate ArgoCD diff comment template: err=%s\n " , err )
192
+ } else if len (templateOutput ) > githubCommentMaxSize {
193
+ ghPrClientDetails .PrLogger .Warnf ("Diff comment is too large (%d bytes), using concise template" , len (templateOutput ))
194
+ err , templateOutput = executeTemplate (ghPrClientDetails .PrLogger , "argoCdDiffConcise" , "argoCD-diff-pr-comment-concise.gotmpl" , diffCommentData )
195
+ if err != nil {
196
+ prHandleError = err
197
+ ghPrClientDetails .PrLogger .Errorf ("Failed to generate ArgoCD diff comment template: err=%s\n " , err )
198
+ }
190
199
}
200
+
191
201
err = commentPR (ghPrClientDetails , templateOutput )
192
202
if err != nil {
193
203
prHandleError = err
194
- log .Errorf ("Failed to comment ArgoCD diff: err=%s\n " , err )
204
+ ghPrClientDetails . PrLogger .Errorf ("Failed to comment ArgoCD diff: err=%s\n " , err )
195
205
}
196
206
} else {
197
207
ghPrClientDetails .PrLogger .Debugf ("Diff not find affected ArogCD apps" )
0 commit comments