Skip to content

Commit

Permalink
Add user agent to deps.dev requests (#804)
Browse files Browse the repository at this point in the history
Adds the `osv-scanner/[VERSION]` user agent the grpc requests going to
the deps.dev API.
I thought it'd be nice to for deps.dev to be able to see which traffic
is coming from license scanning and guided remediation.

CC: @josieang
  • Loading branch information
michaelkedar authored Feb 15, 2024
1 parent f68854f commit b50e737
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
9 changes: 8 additions & 1 deletion internal/resolution/client/npm_registry_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"deps.dev/util/semver"
"github.com/google/osv-scanner/internal/resolution/datasource"
"github.com/google/osv-scanner/pkg/depsdev"
"github.com/google/osv-scanner/pkg/osv"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
Expand All @@ -40,7 +41,13 @@ func NewNpmRegistryClient(workdir string) (*NpmRegistryClient, error) {
return nil, fmt.Errorf("getting system cert pool: %w", err)
}
creds := credentials.NewClientTLSFromCert(certPool, "")
conn, err := grpc.Dial(depsdev.DepsdevAPI, grpc.WithTransportCredentials(creds))
dialOpts := []grpc.DialOption{grpc.WithTransportCredentials(creds)}

if osv.RequestUserAgent != "" {
dialOpts = append(dialOpts, grpc.WithUserAgent(osv.RequestUserAgent))
}

conn, err := grpc.Dial(depsdev.DepsdevAPI, dialOpts...)
if err != nil {
return nil, fmt.Errorf("dialling %q: %w", depsdev.DepsdevAPI, err)
}
Expand Down
9 changes: 8 additions & 1 deletion internal/resolution/datasource/depsdev_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"time"

pb "deps.dev/api/v3alpha"
"github.com/google/osv-scanner/pkg/osv"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
Expand Down Expand Up @@ -57,7 +58,13 @@ func NewDepsDevAPIClient(addr string) (*DepsDevAPIClient, error) {
return nil, fmt.Errorf("getting system cert pool: %w", err)
}
creds := credentials.NewClientTLSFromCert(certPool, "")
conn, err := grpc.Dial(addr, grpc.WithTransportCredentials(creds))
dialOpts := []grpc.DialOption{grpc.WithTransportCredentials(creds)}

if osv.RequestUserAgent != "" {
dialOpts = append(dialOpts, grpc.WithUserAgent(osv.RequestUserAgent))
}

conn, err := grpc.Dial(addr, dialOpts...)
if err != nil {
return nil, fmt.Errorf("dialling %q: %w", addr, err)
}
Expand Down
9 changes: 8 additions & 1 deletion pkg/depsdev/license.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

"github.com/google/osv-scanner/pkg/lockfile"
"github.com/google/osv-scanner/pkg/models"
"github.com/google/osv-scanner/pkg/osv"

depsdevpb "deps.dev/api/v3alpha"
"golang.org/x/sync/errgroup"
Expand Down Expand Up @@ -56,7 +57,13 @@ func MakeVersionRequests(queries []*depsdevpb.GetVersionRequest) ([][]models.Lic
return nil, fmt.Errorf("getting system cert pool: %w", err)
}
creds := credentials.NewClientTLSFromCert(certPool, "")
conn, err := grpc.Dial(DepsdevAPI, grpc.WithTransportCredentials(creds))
dialOpts := []grpc.DialOption{grpc.WithTransportCredentials(creds)}

if osv.RequestUserAgent != "" {
dialOpts = append(dialOpts, grpc.WithUserAgent(osv.RequestUserAgent))
}

conn, err := grpc.Dial(DepsdevAPI, dialOpts...)
if err != nil {
return nil, fmt.Errorf("dialing deps.dev gRPC API: %w", err)
}
Expand Down

0 comments on commit b50e737

Please sign in to comment.