Skip to content

Commit b999de3

Browse files
yeshwanth1993Yeshwanth Gunasekaran
andauthored
Fix resource manager client (#72)
* Fix resource manager client * Add extra prefix check to fix test --------- Co-authored-by: Yeshwanth Gunasekaran <yesh@google.com>
1 parent e7656cd commit b999de3

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

devops-mcp-server/cloudbuild/cloudbuild.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ var createTriggerToolFunc func(ctx context.Context, req *mcp.CallToolRequest, ar
9595

9696
func addCreateTriggerTool(server *mcp.Server, cbClient cloudbuildclient.CloudBuildClient, iamClient iamclient.IAMClient, rmClient resourcemanagerclient.ResourcemanagerClient) {
9797
createTriggerToolFunc = func(ctx context.Context, req *mcp.CallToolRequest, args CreateTriggerArgs) (*mcp.CallToolResult, any, error) {
98+
if args.ServiceAccount != "" && !strings.HasPrefix(args.ServiceAccount, "serviceAccount:") {
99+
args.ServiceAccount = fmt.Sprintf("serviceAccount:%s", args.ServiceAccount)
100+
}
98101
if args.ServiceAccount != "" && !IsValidServiceAccount(args.ServiceAccount) {
99102
return &mcp.CallToolResult{}, nil, fmt.Errorf("service account needs to be of the form serviceAccount:name@project-id.iam.gserviceaccount.com")
100103
}
@@ -140,6 +143,6 @@ func setPermissionsForCloudBuildSA(ctx context.Context, projectID, serviceAccoun
140143

141144
// IsValidServiceAccount checks if the string follows the specific GCP service account format.
142145
func IsValidServiceAccount(sa string) bool {
143-
var saRegex = regexp.MustCompile(`^[a-z]([-a-z0-9]*[a-z0-9])@[a-z0-9-]+\.iam\.gserviceaccount\.com$`)
146+
var saRegex = regexp.MustCompile(`^serviceAccount:[a-z0-9-]+@[a-z0-9-]+\.iam\.gserviceaccount\.com$`)
144147
return saRegex.MatchString(sa)
145148
}

devops-mcp-server/resourcemanager/client/resourcemanagerclient.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ func NewClient(ctx context.Context) (ResourcemanagerClient, error) {
4040
if err != nil {
4141
return nil, fmt.Errorf("failed to create resource manager client: %v", err)
4242
}
43-
defer rmClient.Close()
44-
4543
return &ResourcemanagerClientImpl{projectsClient: rmClient}, nil
4644
}
4745

0 commit comments

Comments
 (0)