Skip to content

Commit

Permalink
Split bufapi module to separate packages (#3428)
Browse files Browse the repository at this point in the history
Co-authored-by: bufdev <[email protected]>
  • Loading branch information
emcfarlane and bufdev authored Oct 29, 2024
1 parent 91bf561 commit 225aeaf
Show file tree
Hide file tree
Showing 39 changed files with 565 additions and 290 deletions.
25 changes: 17 additions & 8 deletions private/buf/bufcli/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ import (
"path/filepath"

"github.com/bufbuild/buf/private/buf/bufwkt/bufwktstore"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmoduleapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmodulecache"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmodulestore"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapiowner"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/command"
"github.com/bufbuild/buf/private/pkg/filelock"
Expand Down Expand Up @@ -119,7 +120,10 @@ func NewModuleDataProvider(container appext.Container) (bufmodule.ModuleDataProv
}
return newModuleDataProvider(
container,
bufapi.NewClientProvider(
bufregistryapimodule.NewClientProvider(
clientConfig,
),
bufregistryapiowner.NewClientProvider(
clientConfig,
),
)
Expand All @@ -134,7 +138,10 @@ func NewCommitProvider(container appext.Container) (bufmodule.CommitProvider, er
}
return newCommitProvider(
container,
bufapi.NewClientProvider(
bufregistryapimodule.NewClientProvider(
clientConfig,
),
bufregistryapiowner.NewClientProvider(
clientConfig,
),
)
Expand Down Expand Up @@ -174,16 +181,17 @@ func NewWKTStore(container appext.Container) (bufwktstore.Store, error) {

func newModuleDataProvider(
container appext.Container,
clientProvider bufapi.ClientProvider,
moduleClientProvider bufregistryapimodule.ClientProvider,
ownerClientProvider bufregistryapiowner.ClientProvider,
) (bufmodule.ModuleDataProvider, error) {
if err := createCacheDir(container.CacheDirPath(), v3CacheModuleRelDirPath); err != nil {
return nil, err
}
fullCacheDirPath := normalpath.Join(container.CacheDirPath(), v3CacheModuleRelDirPath)
delegateModuleDataProvider := bufmoduleapi.NewModuleDataProvider(
container.Logger(),
clientProvider,
newGraphProvider(container, clientProvider),
moduleClientProvider,
newGraphProvider(container, moduleClientProvider, ownerClientProvider),
)
// No symlinks.
storageosProvider := storageos.NewProvider()
Expand Down Expand Up @@ -211,13 +219,14 @@ func newModuleDataProvider(

func newCommitProvider(
container appext.Container,
clientProvider bufapi.ClientProvider,
moduleClientProvider bufregistryapimodule.ClientProvider,
ownerClientProvider bufregistryapiowner.ClientProvider,
) (bufmodule.CommitProvider, error) {
if err := createCacheDir(container.CacheDirPath(), v3CacheCommitsRelDirPath); err != nil {
return nil, err
}
fullCacheDirPath := normalpath.Join(container.CacheDirPath(), v3CacheCommitsRelDirPath)
delegateReader := bufmoduleapi.NewCommitProvider(container.Logger(), clientProvider)
delegateReader := bufmoduleapi.NewCommitProvider(container.Logger(), moduleClientProvider, ownerClientProvider)
// No symlinks.
storageosProvider := storageos.NewProvider()
cacheBucket, err := storageosProvider.NewReadWriteBucket(fullCacheDirPath)
Expand Down
14 changes: 8 additions & 6 deletions private/buf/bufcli/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ package bufcli

import (
"github.com/bufbuild/buf/private/buf/bufctl"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmoduleapi"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapiowner"
"github.com/bufbuild/buf/private/pkg/app/appext"
)

Expand All @@ -36,12 +37,13 @@ func NewController(
if err != nil {
return nil, err
}
clientProvider := bufapi.NewClientProvider(clientConfig)
moduleDataProvider, err := newModuleDataProvider(container, clientProvider)
moduleClientProvider := bufregistryapimodule.NewClientProvider(clientConfig)
ownerClientProvider := bufregistryapiowner.NewClientProvider(clientConfig)
moduleDataProvider, err := newModuleDataProvider(container, moduleClientProvider, ownerClientProvider)
if err != nil {
return nil, err
}
commitProvider, err := newCommitProvider(container, clientProvider)
commitProvider, err := newCommitProvider(container, moduleClientProvider, ownerClientProvider)
if err != nil {
return nil, err
}
Expand All @@ -52,8 +54,8 @@ func NewController(
return bufctl.NewController(
container.Logger(),
container,
newGraphProvider(container, clientProvider),
bufmoduleapi.NewModuleKeyProvider(container.Logger(), clientProvider),
newGraphProvider(container, moduleClientProvider, ownerClientProvider),
bufmoduleapi.NewModuleKeyProvider(container.Logger(), moduleClientProvider),
moduleDataProvider,
commitProvider,
wktStore,
Expand Down
15 changes: 11 additions & 4 deletions private/buf/bufcli/graph_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
package bufcli

import (
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmoduleapi"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapiowner"
"github.com/bufbuild/buf/private/pkg/app/appext"
)

Expand All @@ -27,16 +28,22 @@ func NewGraphProvider(container appext.Container) (bufmodule.GraphProvider, erro
if err != nil {
return nil, err
}
return newGraphProvider(container, bufapi.NewClientProvider(clientConfig)), nil
return newGraphProvider(
container,
bufregistryapimodule.NewClientProvider(clientConfig),
bufregistryapiowner.NewClientProvider(clientConfig),
), nil
}

func newGraphProvider(
container appext.Container,
clientProvider bufapi.ClientProvider,
moduleClientProvider bufregistryapimodule.ClientProvider,
ownerClientProvider bufregistryapiowner.ClientProvider,
) bufmodule.GraphProvider {
return bufmoduleapi.NewGraphProvider(
container.Logger(),
clientProvider,
moduleClientProvider,
ownerClientProvider,
// OK if empty
bufmoduleapi.GraphProviderWithLegacyFederationRegistry(container.Env(legacyFederationRegistryEnvKey)),
// OK if empty
Expand Down
4 changes: 2 additions & 2 deletions private/buf/bufcli/module_key_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
package bufcli

import (
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmoduleapi"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appext"
)

Expand All @@ -29,7 +29,7 @@ func NewModuleKeyProvider(container appext.Container) (bufmodule.ModuleKeyProvid
}
return bufmoduleapi.NewModuleKeyProvider(
container.Logger(),
bufapi.NewClientProvider(
bufregistryapimodule.NewClientProvider(
clientConfig,
),
), nil
Expand Down
6 changes: 3 additions & 3 deletions private/buf/bufcli/uploader.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
package bufcli

import (
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufmodule/bufmoduleapi"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appext"
)

Expand All @@ -27,12 +27,12 @@ func NewUploader(container appext.Container) (bufmodule.Uploader, error) {
if err != nil {
return nil, err
}
return newUploader(container, bufapi.NewClientProvider(clientConfig)), nil
return newUploader(container, bufregistryapimodule.NewClientProvider(clientConfig)), nil
}

func newUploader(
container appext.Container,
clientProvider bufapi.ClientProvider,
clientProvider bufregistryapimodule.ClientProvider,
) bufmodule.Uploader {
return bufmoduleapi.NewUploader(
container.Logger(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/slicesext"
Expand Down Expand Up @@ -107,8 +107,8 @@ func run(
if err != nil {
return err
}
clientProvider := bufapi.NewClientProvider(clientConfig)
labelServiceClient := clientProvider.V1LabelServiceClient(moduleRef.ModuleFullName().Registry())
moduleClientProvider := bufregistryapimodule.NewClientProvider(clientConfig)
labelServiceClient := moduleClientProvider.V1LabelServiceClient(moduleRef.ModuleFullName().Registry())
requestValues := slicesext.Map(labels, func(label string) *modulev1.CreateOrUpdateLabelsRequest_Value {
return &modulev1.CreateOrUpdateLabelsRequest_Value{
LabelRef: &modulev1.LabelRef{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/syserror"
Expand Down Expand Up @@ -94,7 +94,7 @@ func run(
if err != nil {
return err
}
commitServiceClient := bufapi.NewClientProvider(clientConfig).V1CommitServiceClient(moduleRef.ModuleFullName().Registry())
commitServiceClient := bufregistryapimodule.NewClientProvider(clientConfig).V1CommitServiceClient(moduleRef.ModuleFullName().Registry())
resp, err := commitServiceClient.GetCommits(
ctx,
connect.NewRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/slicesext"
Expand Down Expand Up @@ -117,10 +117,10 @@ func run(
return err
}
registry := moduleRef.ModuleFullName().Registry()
clientProvider := bufapi.NewClientProvider(clientConfig)
commitServiceClient := clientProvider.V1CommitServiceClient(registry)
labelServiceClient := clientProvider.V1LabelServiceClient(registry)
resourceServiceClient := clientProvider.V1ResourceServiceClient(registry)
moduleClientProvider := bufregistryapimodule.NewClientProvider(clientConfig)
commitServiceClient := moduleClientProvider.V1CommitServiceClient(registry)
labelServiceClient := moduleClientProvider.V1LabelServiceClient(registry)
resourceServiceClient := moduleClientProvider.V1ResourceServiceClient(registry)
resourceResp, err := resourceServiceClient.GetResources(
ctx,
connect.NewRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/syserror"
Expand Down Expand Up @@ -86,7 +86,7 @@ func run(
if err != nil {
return err
}
commitServiceClient := bufapi.NewClientProvider(clientConfig).V1CommitServiceClient(moduleRef.ModuleFullName().Registry())
commitServiceClient := bufregistryapimodule.NewClientProvider(clientConfig).V1CommitServiceClient(moduleRef.ModuleFullName().Registry())
resp, err := commitServiceClient.GetCommits(
ctx,
connect.NewRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import (
modulev1 "buf.build/gen/go/bufbuild/registry/protocolbuffers/go/buf/registry/module/v1"
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/spf13/pflag"
Expand Down Expand Up @@ -75,7 +75,7 @@ func run(
return err
}
moduleFullName := moduleRef.ModuleFullName()
labelServiceClient := bufapi.NewClientProvider(clientConfig).V1LabelServiceClient(moduleFullName.Registry())
labelServiceClient := bufregistryapimodule.NewClientProvider(clientConfig).V1LabelServiceClient(moduleFullName.Registry())
// ArchiveLabelsResponse is empty.
if _, err := labelServiceClient.ArchiveLabels(
ctx,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/syserror"
Expand Down Expand Up @@ -89,9 +89,9 @@ func run(
if err != nil {
return err
}
clientProvider := bufapi.NewClientProvider(clientConfig)
moduleClientProvider := bufregistryapimodule.NewClientProvider(clientConfig)
moduleFullName := moduleRef.ModuleFullName()
labelServiceClient := clientProvider.V1LabelServiceClient(moduleFullName.Registry())
labelServiceClient := moduleClientProvider.V1LabelServiceClient(moduleFullName.Registry())
resp, err := labelServiceClient.GetLabels(
ctx,
connect.NewRequest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/slicesext"
Expand Down Expand Up @@ -120,9 +120,9 @@ func run(
if err != nil {
return err
}
clientProvider := bufapi.NewClientProvider(clientConfig)
moduleClientProvider := bufregistryapimodule.NewClientProvider(clientConfig)
moduleFullName := moduleRef.ModuleFullName()
labelServiceClient := clientProvider.V1LabelServiceClient(moduleFullName.Registry())
labelServiceClient := moduleClientProvider.V1LabelServiceClient(moduleFullName.Registry())
order := modulev1.ListLabelsRequest_ORDER_UPDATE_TIME_DESC
if flags.Reverse {
order = modulev1.ListLabelsRequest_ORDER_UPDATE_TIME_ASC
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import (
modulev1 "buf.build/gen/go/bufbuild/registry/protocolbuffers/go/buf/registry/module/v1"
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/spf13/pflag"
Expand Down Expand Up @@ -75,7 +75,7 @@ func run(
return err
}
moduleFullName := moduleRef.ModuleFullName()
labelServiceClient := bufapi.NewClientProvider(clientConfig).V1LabelServiceClient(moduleFullName.Registry())
labelServiceClient := bufregistryapimodule.NewClientProvider(clientConfig).V1LabelServiceClient(moduleFullName.Registry())
// UnarchiveLabelsResponse is empty.
if _, err := labelServiceClient.UnarchiveLabels(
ctx,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import (
"connectrpc.com/connect"
"github.com/bufbuild/buf/private/buf/bufcli"
"github.com/bufbuild/buf/private/buf/bufprint"
"github.com/bufbuild/buf/private/bufpkg/bufapi"
"github.com/bufbuild/buf/private/bufpkg/bufmodule"
"github.com/bufbuild/buf/private/bufpkg/bufregistryapi/bufregistryapimodule"
"github.com/bufbuild/buf/private/pkg/app/appcmd"
"github.com/bufbuild/buf/private/pkg/app/appext"
"github.com/bufbuild/buf/private/pkg/syserror"
Expand Down Expand Up @@ -106,7 +106,7 @@ func run(
if err != nil {
return err
}
moduleServiceClient := bufapi.NewClientProvider(clientConfig).V1ModuleServiceClient(moduleFullName.Registry())
moduleServiceClient := bufregistryapimodule.NewClientProvider(clientConfig).V1ModuleServiceClient(moduleFullName.Registry())
resp, err := moduleServiceClient.CreateModules(
ctx,
connect.NewRequest(
Expand Down
Loading

0 comments on commit 225aeaf

Please sign in to comment.