MCPcopy Create free account
hub / github.com/openclaw/gogcli / Run

Method Run

internal/cmd/admin_groups.go:268–307  ·  view source on GitHub ↗
(ctx context.Context, flags *RootFlags)

Source from the content-addressed store, hash-verified

266}
267
268func (c *AdminGroupsMembersRemoveCmd) Run(ctx context.Context, flags *RootFlags) error {
269 groupEmail := strings.TrimSpace(c.GroupEmail)
270 memberEmail := strings.TrimSpace(c.MemberEmail)
271 if groupEmail == "" || memberEmail == "" {
272 return usage("group email and member email required")
273 }
274
275 if confirmErr := dryRunAndConfirmDestructive(ctx, flags, "admin.groups.members.remove", map[string]any{
276 "group": groupEmail,
277 "member": memberEmail,
278 }, fmt.Sprintf("remove %s from %s", memberEmail, groupEmail)); confirmErr != nil {
279 return confirmErr
280 }
281
282 account, err := requireAdminAccount(flags)
283 if err != nil {
284 return err
285 }
286
287 svc, err := adminDirectoryService(ctx, account)
288 if err != nil {
289 return wrapAdminDirectoryError(err, account)
290 }
291
292 if err := svc.Members.Delete(groupEmail, memberEmail).Context(ctx).Do(); err != nil {
293 return wrapAdminDirectoryError(err, account)
294 }
295
296 if outfmt.IsJSON(ctx) {
297 return outfmt.WriteJSON(ctx, stdoutWriter(ctx), map[string]any{
298 "removed": true,
299 "email": memberEmail,
300 "group": groupEmail,
301 })
302 }
303
304 u := ui.FromContext(ctx)
305 u.Out().Linef("Removed %s from %s", memberEmail, groupEmail)
306 return nil
307}

Callers

nothing calls this directly

Calls 13

IsJSONFunction · 0.92
WriteJSONFunction · 0.92
FromContextFunction · 0.92
usageFunction · 0.85
requireAdminAccountFunction · 0.85
adminDirectoryServiceFunction · 0.85
wrapAdminDirectoryErrorFunction · 0.85
stdoutWriterFunction · 0.85
LinefMethod · 0.80
OutMethod · 0.80
DoMethod · 0.65

Tested by

no test coverage detected