Fields
| Name | Type | Required | Description |
|---|---|---|---|
name | string | yes | Unique identifier within the tenant. DNS label format: [a-z][a-z0-9-]{0,62}. Names starting with murmur- are reserved for platform builtins. |
description | string | no | Human-readable description shown in the dashboard. Maximum 1024 bytes. |
tier | enum | no | Minimum author association that may steer. See Tiers. Default STEERING_TIER_UNSPECIFIED inherits the tier of the visibility-selected builtin. |
allowlists | string[] | no | Names of actor-allowlist resources. Any author in the union of their usernames — matched within the event’s provider — may steer regardless of tier. Each name must resolve to an existing allowlist. |
Tiers
Thetier field sets the minimum GitHub author association that may steer. The tiers below run from broadest to narrowest — COLLABORATORS admits everyone MEMBERS does, plus repository collaborators.
| Tier | Who may steer |
|---|---|
STEERING_TIER_OPEN | Any author. The pre-steering-policy behavior and the private-repo default, where every commenter is already organization-vetted. |
STEERING_TIER_COLLABORATORS | Owners, members, and repository collaborators (a per-repo write or triage grant). The public-repo default. |
STEERING_TIER_MEMBERS | Organization owners and members. |
STEERING_TIER_ALLOWLIST_ONLY | No tier admission — only the referenced allowlists (and a user-owned agent’s own owner) steer. |
STEERING_TIER_UNSPECIFIED | Inherit the tier of the visibility-selected builtin. Lets a tenant policy contribute allowlists without restating a tier. |
How a policy is selected
A steering policy is chosen per event, by the repository the event came from and — for service-profile agents — by the owning profile:- Per repository —
repo-config.steering_policynames a policy explicitly. When unset, the platform selects by repository visibility: public repos usemurmur-public-steering-policy, private repos usemurmur-private-steering-policy. Both are platform builtins. - Per service profile —
service-profile.steering_policynames a policy for agents running under that identity.
Examples
Require organization membership
Allowlist-only, with trusted actors
Turn the tier check off and admit only the users named in an actor allowlist.Members, plus an allowlist of outside contributors
Listing steering policies
Reading a single steering policy
Errors
| Code | Meaning | What to do |
|---|---|---|
INVALID_ARGUMENT | name is required | Provide a name. |
INVALID_ARGUMENT | name must match [a-z][a-z0-9-]{0,62} | Use lowercase letters, digits, and hyphens, starting with a letter. |
INVALID_ARGUMENT | description exceeds 1024 byte limit | Shorten the description to 1024 bytes or fewer. |
INVALID_ARGUMENT | unknown tier value <n> | Use a valid tier — see Tiers. |
INVALID_ARGUMENT | allowlists[N]: allowlist "<name>" does not exist | Reference an existing actor-allowlist, or create it first. |
FAILED_PRECONDITION | cannot delete steering-policy: referenced by service-profile or repo-config | A service profile or repo config still names this policy. Update the reference before deleting. |
Related
- actor-allowlist — usernames a policy admits regardless of tier
- service-profile — references a steering policy for agents under that identity
- repo-config — references a steering policy per repository
- Events — the webhook events steering gates
murmur set— CLI command for creating and updating catalog resourcesmurmur get— CLI command for reading catalog resources