ShareResourceWithPrincipal
client.Groups.Shares.New(ctx, body) (*GroupShareNewResponse, error)
POST/gitpod.v1.GroupService/ShareResourceWithPrincipal
Shares a resource directly with a principal (user or service account).
Use this method to:
- Grant a user or service account direct access to a runner, project, or other resource
- Share resources without creating and managing groups manually
Examples
-
Share a runner with a user:
Grants admin access to a runner for a specific user.
resourceType: RESOURCE_TYPE_RUNNER resourceId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" principal: PRINCIPAL_USER principalId: "f53d2330-3795-4c5d-a1f3-453121af9c60" role: RESOURCE_ROLE_RUNNER_ADMIN -
Share a runner with a service account:
Grants user access to a runner for a service account.
resourceType: RESOURCE_TYPE_RUNNER resourceId: "d2c94c27-3b76-4a42-b88c-95a85e392c68" principal: PRINCIPAL_SERVICE_ACCOUNT principalId: "a1b2c3d4-5678-90ab-cdef-1234567890ab" role: RESOURCE_ROLE_RUNNER_USER
Authorization
Requires admin role on the specific resource.
ParametersExpand Collapse
ShareResourceWithPrincipal
package main
import (
"context"
"fmt"
"github.com/gitpod-io/gitpod-sdk-go"
"github.com/gitpod-io/gitpod-sdk-go/option"
"github.com/gitpod-io/gitpod-sdk-go/shared"
)
func main() {
client := gitpod.NewClient(
option.WithBearerToken("My Bearer Token"),
)
share, err := client.Groups.Shares.New(context.TODO(), gitpod.GroupShareNewParams{
Principal: gitpod.F(shared.PrincipalServiceAccount),
PrincipalID: gitpod.F("a1b2c3d4-5678-90ab-cdef-1234567890ab"),
ResourceID: gitpod.F("d2c94c27-3b76-4a42-b88c-95a85e392c68"),
ResourceType: gitpod.F(shared.ResourceTypeRunner),
Role: gitpod.F(shared.ResourceRoleRunnerUser),
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", share)
}
{}Returns Examples
{}