in custom-targets/git-ops/git-deployer/main.go [69:106]
func createRequestHandler(ctx context.Context, cloudDeployRequest interface{}, params *params, gcsClient *storage.Client) (requestHandler, error) {
// The git deployer only supports deploy. If a render request is received then a not supported result will be
// uploaded to Cloud Storage in order to provide Cloud Deploy with context on why the render failed.
switch r := cloudDeployRequest.(type) {
case *clouddeploy.RenderRequest:
fmt.Println("Received render request from Cloud Deploy, which is not supported. Uploading not supported render results")
res := &clouddeploy.RenderResult{
ResultStatus: clouddeploy.RenderNotSupported,
FailureMessage: fmt.Sprintf("Render is not supported by %s", gitDeployerSampleName),
Metadata: map[string]string{
clouddeploy.CustomTargetSourceMetadataKey: gitDeployerSampleName,
clouddeploy.CustomTargetSourceSHAMetadataKey: clouddeploy.GitCommit,
},
}
rURI, err := r.UploadResult(ctx, gcsClient, res)
if err != nil {
return nil, fmt.Errorf("error uploading not supported render results: %v", err)
}
fmt.Printf("Uploaded not supported render results to %s\n", rURI)
return nil, fmt.Errorf("render not supported by %s", gitDeployerSampleName)
case *clouddeploy.DeployRequest:
smClient, err := secretmanager.NewClient(ctx)
if err != nil {
return nil, fmt.Errorf("unable to create secret manager client: %v", err)
}
return &deployer{
req: r,
params: params,
gcsClient: gcsClient,
smClient: smClient,
}, nil
default:
return nil, fmt.Errorf("received unsupported cloud deploy request type: %q", os.Getenv(clouddeploy.RequestTypeEnvKey))
}
}