Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
843 B ยท 33 lines
Go
12345678910111213141516171819202122232425262728293031323334package gcp
import ( "fmt" "os" "strings"
"cloud.google.com/go/auth")
// Credentials builds the service account credentials shared by every GCP// client of the checker from the GCP_* environment variables.func Credentials() (*auth.Credentials, error) { privateKey := strings.ReplaceAll(os.Getenv("GCP_PRIVATE_KEY"), "\\n", "\n") opts := &auth.Options2LO{ Email: os.Getenv("GCP_CLIENT_EMAIL"), PrivateKey: []byte(privateKey), PrivateKeyID: os.Getenv("GCP_PRIVATE_KEY_ID"), Scopes: []string{ "https://www.googleapis.com/auth/cloud-platform", }, TokenURL: "https://oauth2.googleapis.com/token", }
tp, err := auth.New2LOTokenProvider(opts) if err != nil { return nil, fmt.Errorf("creating token provider: %w", err) }
return auth.NewCredentials(&auth.CredentialsOptions{ TokenProvider: tp, }), nil}