# feat(control-plane): add org/project get+delete and repo grant list+remove

`016a44f`·

toothbrush·3w ago·4 files·+176 added/-12 removed

Consume the v1 CRUD-gap endpoints (entiredb #2122):

- entire org get|delete <name|ULID>
- entire project get|delete <name|ULID>
- entire grant repo list <repo>
- entire grant repo remove <repo> (--provider/--provider-user-id or --grantee-type/--grantee-id)

Org/project args resolve friendly names via the shared resolveref helpers.
The grantee-mode helper (renamed parseGranteeMode) and the provider/by-id remove form are now shared by project and repo. Repo args stay ULID-only for now — resolving a repo by name needs a project scope.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Sessions

a995fb3417fbView transcript

## Changes

4

- cmd/entire/cli

- Mgrant.go+78/-8

- Mgrant_test.go+18/-4

- Morg.go+40

- Mproject.go+40

```  
43 unmodified lines  
```

// newGrantCmd is the hidden `entire grant` command group: manage access
// grants and org membership on the Entire control plane. Surface follows
// what the Core API exposes per resource: org and project support
// add / list / remove, while repo supports only add (the API has no
// repo-grant list or revoke route yet). Surfaced via `entire labs`.
// grants and org membership on the Entire control plane. Org, project, and
// repo each support add / list / remove. Surfaced via `entire labs`.

// Grantees are addressed by their identity provider + provider user id
// (e.g. --provider github --provider-user-id 12345), matching the control
//...

// --- org membership -------------------------------------------------------

// bindGranteeFlags wires the shared --provider / --provider-user-id pair
// that identifies a grantee across the org/project/repo add+remove verbs,
// marking both required.
