From ddfb6ca7243f61c08186bcf2f1f73c7d8efabe52 Mon Sep 17 00:00:00 2001 From: majiayu000 <1835304752@qq.com> Date: Wed, 8 Apr 2026 17:42:54 +0800 Subject: [PATCH 1/2] fix: log edited comment events at debug level instead of error Edited or deleted issue comments on GitHub trigger a webhook that reaches processEvent(), which returned an error for any non-"created" action. That error propagated up to sinker and was logged as Errorf, producing scary log entries for a normal, harmless event. Replace the error return with a debug log and nil,nil return so these events are silently skipped, matching the existing skip pattern used elsewhere in the file. Signed-off-by: majiayu000 <1835304752@qq.com> --- pkg/provider/github/parse_payload.go | 3 ++- pkg/provider/github/parse_payload_test.go | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/provider/github/parse_payload.go b/pkg/provider/github/parse_payload.go index f7159ed8bb..1be48e3674 100644 --- a/pkg/provider/github/parse_payload.go +++ b/pkg/provider/github/parse_payload.go @@ -354,7 +354,8 @@ func (v *Provider) processEvent(ctx context.Context, event *info.Event, eventInt "exiting... (hint: did you forget setting a secret on your repo?)") } if gitEvent.GetAction() != "created" { - return nil, fmt.Errorf("only newly created comment is supported, received: %s", gitEvent.GetAction()) + v.Logger.Debugf("only newly created comment is supported, received: %s, skipping", gitEvent.GetAction()) + return nil, nil } processedEvent, err = v.handleIssueCommentEvent(ctx, gitEvent) if err != nil { diff --git a/pkg/provider/github/parse_payload_test.go b/pkg/provider/github/parse_payload_test.go index 4858c2124a..8f4750f0f9 100644 --- a/pkg/provider/github/parse_payload_test.go +++ b/pkg/provider/github/parse_payload_test.go @@ -745,8 +745,7 @@ func TestParsePayLoad(t *testing.T) { }, }, { - name: "bad/issue_comment_not_from_created", - wantErrString: "only newly created comment is supported, received: deleted", + name: "good/issue_comment_not_from_created_skip", payloadEventStruct: github.IssueCommentEvent{Action: github.Ptr("deleted")}, eventType: "issue_comment", triggerTarget: "pull_request", From ab5c8c19a93d58f9175bdb8d5aeebd42a0014cda Mon Sep 17 00:00:00 2001 From: majiayu000 <1835304752@qq.com> Date: Wed, 8 Apr 2026 23:21:21 +0800 Subject: [PATCH 2/2] fix: assert debug log output in issue comment skip test Signed-off-by: majiayu000 <1835304752@qq.com> --- pkg/provider/github/parse_payload_test.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pkg/provider/github/parse_payload_test.go b/pkg/provider/github/parse_payload_test.go index 8f4750f0f9..bcc6b284a6 100644 --- a/pkg/provider/github/parse_payload_test.go +++ b/pkg/provider/github/parse_payload_test.go @@ -10,6 +10,8 @@ import ( "github.com/google/go-github/v84/github" "github.com/jonboulle/clockwork" + "go.uber.org/zap" + zapobserver "go.uber.org/zap/zaptest/observer" "gotest.tools/v3/assert" "gotest.tools/v3/env" corev1 "k8s.io/api/core/v1" @@ -462,6 +464,7 @@ func TestParsePayLoad(t *testing.T) { objectType string gitopscommentprefix string wantRepoCRError bool + wantLogSnippet string }{ { name: "bad/unknown event", @@ -750,6 +753,7 @@ func TestParsePayLoad(t *testing.T) { eventType: "issue_comment", triggerTarget: "pull_request", githubClient: true, + wantLogSnippet: "only newly created comment is supported", }, { name: "good/issue comment", @@ -1397,11 +1401,12 @@ func TestParsePayLoad(t *testing.T) { } stdata, _ := testclient.SeedTestData(t, ctx, tdata) - logger, _ := logger.GetLogger() + observer, logCatcher := zapobserver.New(zap.DebugLevel) + fakelogger := zap.New(observer).Sugar() run := ¶ms.Run{ Clients: clients.Clients{ PipelineAsCode: stdata.PipelineAsCode, - Log: logger, + Log: fakelogger, Kube: stdata.Kube, }, } @@ -1484,7 +1489,7 @@ func TestParsePayLoad(t *testing.T) { gprovider := Provider{ ghClient: ghClient, - Logger: logger, + Logger: fakelogger, pacInfo: &info.PacOpts{ Settings: settings.Settings{SkipPushEventForPRCommits: tt.skipPushEventForPRCommits}, }, @@ -1503,6 +1508,10 @@ func TestParsePayLoad(t *testing.T) { return } assert.NilError(t, err) + if tt.wantLogSnippet != "" { + assert.Assert(t, logCatcher.FilterMessageSnippet(tt.wantLogSnippet).Len() > 0, + "expected debug log containing %q but got none", tt.wantLogSnippet) + } // If shaRet is empty, this is a skip case (push event for PR commit) // In this case, ret should be nil if tt.shaRet == "" {