diff --git a/server/forge/bitbucket/parse.go b/server/forge/bitbucket/parse.go index 7f8b6710b86..f27d20f0dc2 100644 --- a/server/forge/bitbucket/parse.go +++ b/server/forge/bitbucket/parse.go @@ -56,7 +56,7 @@ func parseHook(r *http.Request) (*model.Repo, *model.Pipeline, error) { } // parsePushHook parses a push hook and returns the Repo and Pipeline details. -// If the commit type is unsupported nil values are returned. +// If the commit type is unsupported it returns an ErrIgnoreEvent error. func parsePushHook(payload []byte) (*model.Repo, *model.Pipeline, error) { hook := internal.PushHook{} @@ -71,7 +71,7 @@ func parsePushHook(payload []byte) (*model.Repo, *model.Pipeline, error) { } return convertRepo(&hook.Repo, &internal.RepoPerm{}), convertPushHook(&hook, &change), nil } - return nil, nil, nil + return nil, nil, &types.ErrIgnoreEvent{Event: "push", Reason: "BB reports no Changes"} } // parsePullHook parses a pull request hook and returns the Repo and Pipeline diff --git a/server/forge/bitbucket/parse_test.go b/server/forge/bitbucket/parse_test.go index f0afb510287..9ba46a2e259 100644 --- a/server/forge/bitbucket/parse_test.go +++ b/server/forge/bitbucket/parse_test.go @@ -107,7 +107,7 @@ func Test_parseHook(t *testing.T) { r, b, err := parseHook(req) assert.Nil(t, r) assert.Nil(t, b) - assert.NoError(t, err) + assert.ErrorIs(t, err, &types.ErrIgnoreEvent{}) }) t.Run("push hook", func(t *testing.T) { diff --git a/server/forge/bitbucketdatacenter/parse.go b/server/forge/bitbucketdatacenter/parse.go index 8b5fe825377..75622e0db85 100644 --- a/server/forge/bitbucketdatacenter/parse.go +++ b/server/forge/bitbucketdatacenter/parse.go @@ -6,6 +6,7 @@ import ( bb "github.com/neticdk/go-bitbucket/bitbucket" + "go.woodpecker-ci.org/woodpecker/v3/server/forge/types" "go.woodpecker-ci.org/woodpecker/v3/server/model" ) @@ -35,7 +36,7 @@ func parseHook(r *http.Request, baseURL string) (*HookResult, error) { result.Repo = convertRepo(&e.PullRequest.Target.Repository, nil, "") result.Pipeline = convertPullRequestEvent(e, baseURL) default: - return nil, fmt.Errorf("unsupported webhook event type: %T", e) + return nil, &types.ErrIgnoreEvent{Event: fmt.Sprintf("%T", e), Reason: "unsupported webhook event type"} } return result, nil