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. |
entries | ActorAllowlistEntry[] | no | Allowlisted usernames, grouped by identity provider. Each provider may appear at most once. |
Entry fields
Each entry inentries groups usernames under one identity provider.
| Name | Type | Required | Description |
|---|---|---|---|
provider | enum | yes | The actor’s identity provider. Must be a user namespace — PROVIDER_GITHUB_OAUTH for a GitHub login. Organization and service namespaces (PROVIDER_GITHUB_APP, PROVIDER_SERVICE_PROFILE) are rejected: they never name a person, so an entry keyed on them would match no event author. |
usernames | string[] | yes | Usernames within the provider, matched case-insensitively against the event author. For GitHub, the login (e.g. octocat, dependabot[bot]). Each entry must be non-empty. |
How it is used
An actor allowlist does nothing on its own — it is referenced by a steering policy’sallowlists field. When a gated event arrives (a PR comment, review, issue-opened, PR-opened, or PR-labeled trigger), the policy admits the author if either:
- The author’s repository association meets the policy’s tier, or
- The author appears in the union of usernames across the policy’s referenced allowlists, matched within the event’s provider.
Examples
Allowlist a bot and an outside contributor
Listing actor allowlists
Reading a single actor allowlist
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 | entries[N]: provider is required | Set a provider on every entry. |
INVALID_ARGUMENT | entries[N]: unknown provider <value> | Use a valid provider — PROVIDER_GITHUB_OAUTH. |
INVALID_ARGUMENT | entries[N]: provider PROVIDER_GITHUB_APP is an org/service namespace, not an individual actor; use a user namespace such as PROVIDER_GITHUB_OAUTH | Allowlist entries name people. Use a user-namespace provider. |
INVALID_ARGUMENT | entries[N]: duplicate provider <value> | Merge usernames for a provider into a single entry. |
INVALID_ARGUMENT | entries[N].usernames[M]: empty username | Remove the empty username or fill it in. |
FAILED_PRECONDITION | cannot delete actor-allowlist: referenced by steering-policy | A steering policy still names this allowlist. Update or delete the policy first. |
Related
- steering-policy — references actor allowlists to admit authors regardless of tier
- service-profile — the identity that automated agents commit under
- Events — the webhook events steering gates
murmur set— CLI command for creating and updating catalog resourcesmurmur get— CLI command for reading catalog resources