Skip to content

client.release_gates

View as Markdown

client.release_gates — the releaseGates operations.

On AsyncKindgi every method is the same, awaited.

list(
*,
limit: int | None = None,
cursor: str | None = None,
agent_id: str | UUID | None = None,
scope_kind: Literal['tenant', 'org', 'project', 'segment'] | None = None,
scope_id: str | UUID | None = None,
segments: Sequence[ScopeSegment | Mapping[str, str]] | None = None,
include_retired: bool | None = None,
timeout: float | None = None,
) -> ReleaseGatePage
Signature

List release gates. GET /v1/release-gates

Each release gate's latest active version. agentId narrows it to one agent's; scopeKind (with scopeId and segment) to one scope's. A retired gate (every version unregistered) is listed only with ?includeRetired=true, as its highest version with unregisteredAt, so it can be found and a version reinstated.

publish(
body: PublishReleaseGateBody | Mapping[str, Any] | None = None,
/,
*,
idempotency_key: str | None = None,
timeout: float | None = None,
**fields: Any,
) -> ReleaseGate
Signature

Publish a release gate. POST /v1/release-gates

Registers a release gate, or a new version of one: what a pin of agentId for scope must show. One gate per agent and scope: another gate id for a scope that has one is refused with 409 release-gate-scope-taken (details.heldBy names it; publish a new version of that one instead), and a new version can't change the agent or scope (409 release-gate-scope-changed). The spec is checked strictly: an unknown key is refused (400 validation-failed, details.issues). Needs admin on the tenant: whoever may pin can't loosen their own gate.

get(release_gate_id: str | UUID, /, *, timeout: float | None = None) -> ReleaseGate
Signature

Get a release gate. GET /v1/release-gates/{releaseGateId}

The release gate's latest active version.