From 859d2fc8f418bac4c218b9f9335e29cd8662b647 Mon Sep 17 00:00:00 2001 From: nikohofmann <41592016+nikohofmann@users.noreply.github.com> Date: Mon, 22 Jun 2026 09:33:02 -0600 Subject: [PATCH 1/3] fix: use protojson for webhook create/list output --- .../beta/registry/webhook/webhookcreate/webhookcreate.go | 4 ++-- .../command/beta/registry/webhook/webhooklist/webhooklist.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go b/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go index 6abb629635..43247afe3e 100644 --- a/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go +++ b/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go @@ -16,7 +16,6 @@ package webhookcreate import ( "context" - "encoding/json" "fmt" "buf.build/go/app/appcmd" @@ -27,6 +26,7 @@ import ( registryv1alpha1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/registry/v1alpha1" "github.com/bufbuild/buf/private/pkg/connectclient" "github.com/spf13/pflag" + "google.golang.org/protobuf/encoding/protojson" ) const ( @@ -135,7 +135,7 @@ func run( if err != nil { return err } - webhookJSON, err := json.MarshalIndent(resp.Msg.GetWebhook(), "", "\t") + webhookJSON, err := protojson.MarshalOptions{Multiline: true, Indent: "\t"}.Marshal(resp.Msg) if err != nil { return err } diff --git a/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go b/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go index 99ca1d717e..aecb1da4b6 100644 --- a/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go +++ b/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go @@ -16,7 +16,6 @@ package webhooklist import ( "context" - "encoding/json" "buf.build/go/app/appcmd" "buf.build/go/app/appext" @@ -26,6 +25,7 @@ import ( registryv1alpha1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/registry/v1alpha1" "github.com/bufbuild/buf/private/pkg/connectclient" "github.com/spf13/pflag" + "google.golang.org/protobuf/encoding/protojson" ) const ( @@ -117,7 +117,7 @@ func run( _, _ = container.Stdout().Write([]byte("[]")) return nil } - webhooksJSON, err := json.MarshalIndent(resp.Msg.GetWebhooks(), "", "\t") + webhooksJSON, err := protojson.MarshalOptions{Multiline: true, Indent: "\t"}.Marshal(resp.Msg) if err != nil { return err } From 69aefa891ebcf8756552033b514cd49e41ffe7d7 Mon Sep 17 00:00:00 2001 From: nikohofmann <41592016+nikohofmann@users.noreply.github.com> Date: Mon, 22 Jun 2026 09:55:30 -0600 Subject: [PATCH 2/3] Use protoencoding wrapper for webhook JSON output The repo lint rule forbids direct protojson.MarshalOptions use; private/pkg/protoencoding is the sanctioned wrapper. --- .../beta/registry/webhook/webhookcreate/webhookcreate.go | 4 ++-- .../command/beta/registry/webhook/webhooklist/webhooklist.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go b/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go index 43247afe3e..471e3461c4 100644 --- a/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go +++ b/cmd/buf/internal/command/beta/registry/webhook/webhookcreate/webhookcreate.go @@ -25,8 +25,8 @@ import ( "github.com/bufbuild/buf/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect" registryv1alpha1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/registry/v1alpha1" "github.com/bufbuild/buf/private/pkg/connectclient" + "github.com/bufbuild/buf/private/pkg/protoencoding" "github.com/spf13/pflag" - "google.golang.org/protobuf/encoding/protojson" ) const ( @@ -135,7 +135,7 @@ func run( if err != nil { return err } - webhookJSON, err := protojson.MarshalOptions{Multiline: true, Indent: "\t"}.Marshal(resp.Msg) + webhookJSON, err := protoencoding.NewJSONMarshaler(nil, protoencoding.JSONMarshalerWithIndent()).Marshal(resp.Msg) if err != nil { return err } diff --git a/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go b/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go index aecb1da4b6..e3b1bace95 100644 --- a/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go +++ b/cmd/buf/internal/command/beta/registry/webhook/webhooklist/webhooklist.go @@ -24,8 +24,8 @@ import ( "github.com/bufbuild/buf/private/gen/proto/connect/buf/alpha/registry/v1alpha1/registryv1alpha1connect" registryv1alpha1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/registry/v1alpha1" "github.com/bufbuild/buf/private/pkg/connectclient" + "github.com/bufbuild/buf/private/pkg/protoencoding" "github.com/spf13/pflag" - "google.golang.org/protobuf/encoding/protojson" ) const ( @@ -117,7 +117,7 @@ func run( _, _ = container.Stdout().Write([]byte("[]")) return nil } - webhooksJSON, err := protojson.MarshalOptions{Multiline: true, Indent: "\t"}.Marshal(resp.Msg) + webhooksJSON, err := protoencoding.NewJSONMarshaler(nil, protoencoding.JSONMarshalerWithIndent()).Marshal(resp.Msg) if err != nil { return err } From 14d37b94efc84dcd99fc3bd19efec30ad020d8e4 Mon Sep 17 00:00:00 2001 From: nikohofmann <41592016+nikohofmann@users.noreply.github.com> Date: Mon, 22 Jun 2026 10:17:22 -0600 Subject: [PATCH 3/3] Add changelog entry for webhook JSON output fix --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23ea2ec8f2..011f9ee6af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [Unreleased] -- No changes yet. +- Fix `buf beta registry webhook create` and `buf beta registry webhook list` to emit proto JSON output. ## [v1.71.0] - 2026-06-16