MCPcopy Create free account
hub / github.com/bytebase/bytebase / getSecretFromGCP

Function getSecretFromGCP

backend/component/secret/gcp.go:33–56  ·  view source on GitHub ↗
(ctx context.Context, externalSecret *storepb.DataSourceExternalSecret)

Source from the content-addressed store, hash-verified

31}
32
33func getSecretFromGCP(ctx context.Context, externalSecret *storepb.DataSourceExternalSecret) (string, error) {
34 client, err := getGCPSecretManagerClient(ctx)
35 if err != nil {
36 return "", err
37 }
38 defer client.Close()
39
40 req := &secretmanagerpb.AccessSecretVersionRequest{
41 // The secret name should like
42 // projects/{project}/secrets/{secret name}/versions/{version}
43 // we will use latest for te version
44 Name: fmt.Sprintf("%s/versions/latest", externalSecret.SecretName),
45 }
46
47 result, err := client.AccessSecretVersion(ctx, req)
48 if err != nil {
49 if strings.Contains(err.Error(), "NotFound") {
50 return "", errors.Wrapf(err, "cannot found secret %s", externalSecret.SecretName)
51 }
52 return "", errors.Wrapf(err, "failed to get GCP secret %s", externalSecret.SecretName)
53 }
54
55 return string(result.Payload.Data), nil
56}

Callers 1

ReplaceExternalSecretFunction · 0.85

Calls 3

CloseMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected