Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions go/cmd/api-devserver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ func runBackend(ctx context.Context, port int) {
relationsStore := db.NewRelationsStore(dbClient)
if err := api.RunServer(ctx, api.ServerOptions{
Port: port,
VerboseLogs: true,
VulnStore: vulnStore,
RelationsStore: relationsStore,
}); err != nil {
Expand Down
14 changes: 12 additions & 2 deletions go/cmd/api/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ import (
"log/slog"
"os"
"os/signal"
"strings"
"syscall"

"cloud.google.com/go/compute/metadata"
"cloud.google.com/go/datastore"
"cloud.google.com/go/storage"
"github.com/google/osv.dev/go/internal/api"
Expand All @@ -36,8 +38,13 @@ func run() error {

project := os.Getenv("GOOGLE_CLOUD_PROJECT")
if project == "" {
logger.ErrorContext(ctx, "GOOGLE_CLOUD_PROJECT environment variable is not set")
return errors.New("GOOGLE_CLOUD_PROJECT environment variable is not set")
// Fallback to metadata server for Cloud Run
var err error
project, err = metadata.ProjectIDWithContext(ctx)
if err != nil {
logger.ErrorContext(ctx, "GOOGLE_CLOUD_PROJECT environment variable is not set")
return errors.New("GOOGLE_CLOUD_PROJECT environment variable is not set")
}
}
datastoreID := os.Getenv("DATASTORE_DATABASE_ID") // empty string is the (default) database
dbClient, err := datastore.NewClientWithDatabase(ctx, project, datastoreID)
Expand All @@ -63,8 +70,11 @@ func run() error {
})
relationsStore := db.NewRelationsStore(dbClient)

verboseLogs := strings.ToLower(os.Getenv("OSV_VERBOSE_LOGGING")) == "true"

return api.RunServer(ctx, api.ServerOptions{
Port: *port,
VerboseLogs: verboseLogs,
VulnStore: vulnStore,
RelationsStore: relationsStore,
})
Expand Down
20 changes: 2 additions & 18 deletions go/internal/api/get_vuln_by_id_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ package api
import (
"context"
"errors"
"iter"
"strings"
"testing"
"time"

"github.com/google/go-cmp/cmp"
"github.com/google/osv.dev/go/internal/models"
Expand All @@ -19,6 +17,8 @@ import (
)

type mockVulnerabilityStore struct {
models.UnimplementedVulnerabilityStore

vuln *osvschema.Vulnerability
err error
}
Expand All @@ -34,22 +34,6 @@ func (m *mockVulnerabilityStore) Get(_ context.Context, _ string) (*osvschema.Vu
return m.vuln, nil
}

func (m *mockVulnerabilityStore) ListBySource(_ context.Context, _ string, _ bool) iter.Seq2[*models.VulnSourceRef, error] {
panic("unimplemented")
}

func (m *mockVulnerabilityStore) GetSourceModified(_ context.Context, _ string) (time.Time, error) {
panic("unimplemented")
}

func (m *mockVulnerabilityStore) GetWithMetadata(_ context.Context, _ string) (*osvschema.Vulnerability, *models.VulnSourceRef, error) {
panic("unimplemented")
}

func (m *mockVulnerabilityStore) Write(_ context.Context, _ models.WriteRequest) error {
panic("unimplemented")
}

type mockRelationsStore struct {
aliases *models.GetAliasResult
err error
Expand Down
Loading
Loading