Required scope: read:deployments
apiKeyAuthorizationBearer <token>Send the key as Authorization: Bearer plk_live_.... No other header is accepted.
limit?integerPage size.
1 <= value <= 10050cursor?stringThe next_cursor from the previous page. Reuse the same since and until.
since?stringOldest creation time to include (ISO 8601). Values older than your plan's data retention are moved forward, and meta.retention_clamped is true.
date-timeuntil?stringNewest creation time to include (ISO 8601). Defaults to now.
date-timestatus?stringOnly deployments with this status.
environment?stringOnly deployments to environments with this name, in every repository and workflow. Environment names are not unique: add repository (and workflow_path) to list one deployment environment.
repository?stringOnly deployments from this repository (owner/repo, exact spelling).
workflow?stringOnly deployments from workflows with this display name (exact name; names are not unique).
workflow_path?stringOnly deployments from this workflow file (for example .github/workflows/deploy.yml).
A page of deployments.
application/jsondata*array<>next_cursor*string|nullmeta*curl -X GET "https://api.prodgator.io/v1/deployments" \ -H "Authorization: Bearer plk_live_YOUR_KEY"{ "data": [ { "id": "string", "org_id": "string", "repository": "string", "repository_full_name": "string", "environment": "string", "status": "string", "workflow_name": "string", "workflow_path": "string", "provider": "string", "github_run_id": 0, "branch": "string", "commit_sha": "string", "commit_message": "string", "release_name": "string", "author": "string", "author_avatar_url": "string", "version": "string", "required_reviewers": [ "string" ], "required_reviewer_teams": [ "string" ], "reviews": [ { "reviewer": "string", "avatar_url": "string", "state": "string", "comment": "string", "reviewed_at": "2019-08-24T14:15:22Z" } ], "approvals": [ { "user_id": "string", "email": "string", "display_name": "string", "decision": "approved", "principal": "user", "gates": [ "customRule" ], "provider_account": { "provider": "string", "login": "string" }, "at": "2019-08-24T14:15:22Z", "note": "string" } ], "pipeline_run_id": "string", "deployed_at": "2019-08-24T14:15:22Z", "rollback_at": "2019-08-24T14:15:22Z", "callback_url": "string", "html_url": "string", "job_id": "string", "environment_url": "http://example.com", "protection_rule_type": "string", "protection_rule_types": [ "string" ], "external_custom_rules": [ { "app_id": "string", "slug": "string" } ], "gated": true, "reviewers_state": "pending", "custom_rule_state": "pending", "custom_rule_awaiting": "manual_decision_required", "bypass": { "at": "2019-08-24T14:15:22Z", "from": "pending_approval", "to": "string", "actor": "string", "gates": [ "string" ], "policies": [ "string" ] }, "override": { "at": "2019-08-24T14:15:22Z", "user_id": "string", "email": "string", "display_name": "string", "reason": "string", "self_override": true, "gates": [ "string" ], "evaluation_id": "string", "evaluated_at": "2019-08-24T14:15:22Z", "policies": [ { "id": "string", "name": "string", "version": 0, "decision": "string", "rules": [ { "rule": "string", "name": "string", "status": "string", "reason": "string" } ] } ] }, "policy_evaluation": { "evaluation_id": "string", "at": "2019-08-24T14:15:22Z", "decision": "approve", "answered": "approved", "policies": [ { "id": "string", "name": "string", "version": 0, "mode": "enforce", "decision": "approve" } ] }, "attempt": 1, "previous_attempt_id": "string", "superseded_by_id": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "next_cursor": "string", "meta": { "since": "2019-08-24T14:15:22Z", "until": "2019-08-24T14:15:22Z", "retention_clamped": true }}Required scope: read:deployments
apiKeyAuthorizationBearer <token>Send the key as Authorization: Bearer plk_live_.... No other header is accepted.
id*string^[A-Za-z0-9._:-]{1,128}$The deployment.
application/jsondata*curl -X GET "https://api.prodgator.io/v1/deployments/string" \ -H "Authorization: Bearer plk_live_YOUR_KEY"{ "data": { "id": "string", "org_id": "string", "repository": "string", "repository_full_name": "string", "environment": "string", "status": "string", "workflow_name": "string", "workflow_path": "string", "provider": "string", "github_run_id": 0, "branch": "string", "commit_sha": "string", "commit_message": "string", "release_name": "string", "author": "string", "author_avatar_url": "string", "version": "string", "required_reviewers": [ "string" ], "required_reviewer_teams": [ "string" ], "reviews": [ { "reviewer": "string", "avatar_url": "string", "state": "string", "comment": "string", "reviewed_at": "2019-08-24T14:15:22Z" } ], "approvals": [ { "user_id": "string", "email": "string", "display_name": "string", "decision": "approved", "principal": "user", "gates": [ "customRule" ], "provider_account": { "provider": "string", "login": "string" }, "at": "2019-08-24T14:15:22Z", "note": "string" } ], "pipeline_run_id": "string", "deployed_at": "2019-08-24T14:15:22Z", "rollback_at": "2019-08-24T14:15:22Z", "callback_url": "string", "html_url": "string", "job_id": "string", "environment_url": "http://example.com", "protection_rule_type": "string", "protection_rule_types": [ "string" ], "external_custom_rules": [ { "app_id": "string", "slug": "string" } ], "gated": true, "reviewers_state": "pending", "custom_rule_state": "pending", "custom_rule_awaiting": "manual_decision_required", "bypass": { "at": "2019-08-24T14:15:22Z", "from": "pending_approval", "to": "string", "actor": "string", "gates": [ "string" ], "policies": [ "string" ] }, "override": { "at": "2019-08-24T14:15:22Z", "user_id": "string", "email": "string", "display_name": "string", "reason": "string", "self_override": true, "gates": [ "string" ], "evaluation_id": "string", "evaluated_at": "2019-08-24T14:15:22Z", "policies": [ { "id": "string", "name": "string", "version": 0, "decision": "string", "rules": [ { "rule": "string", "name": "string", "status": "string", "reason": "string" } ] } ] }, "policy_evaluation": { "evaluation_id": "string", "at": "2019-08-24T14:15:22Z", "decision": "approve", "answered": "approved", "policies": [ { "id": "string", "name": "string", "version": 0, "mode": "enforce", "decision": "approve" } ] }, "attempt": 1, "previous_attempt_id": "string", "superseded_by_id": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }}An API key can answer only Prodgator's own protection rule, and must give a reason (10-500 characters). The answer is audited as the key, and the comment Prodgator posts on the provider reads "Approved via Prodgator API key (reason: )". A GitHub required-reviewers gate needs a reviewer's own account, so a key gets 409 reviewer_gate_requires_human. When a blocking compliance policy covers the environment, or Prodgator cannot read the compliance policies, the answer overrides a compliance decision: the key also needs the write:compliance-override scope, or it gets 403 insufficient_scope with details.requiredScope set to write:compliance-override. The override is audited as the key.
Required scope: write:deployments
apiKeyAuthorizationBearer <token>Send the key as Authorization: Bearer plk_live_.... No other header is accepted.
id*string^[A-Za-z0-9._:-]{1,128}$application/jsoncomment?stringlength <= 1000reason?stringRequired when an API key answers Prodgator's own protection rule. Recorded in the audit log and the provider comment.
10 <= length <= 500The deployment was approved.
application/jsondata*curl -X POST "https://api.prodgator.io/v1/deployments/string/approve" \ -H "Authorization: Bearer plk_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "approved": true, "status": "string" }}Same rules as approve: an API key can reject only Prodgator's own protection rule, with a reason (10-500 characters), and gets 409 reviewer_gate_requires_human for a GitHub required-reviewers gate. When a blocking compliance policy covers the environment, or Prodgator cannot read the compliance policies, the key also needs the write:compliance-override scope, or it gets 403 insufficient_scope with details.requiredScope set to write:compliance-override.
Required scope: write:deployments
apiKeyAuthorizationBearer <token>Send the key as Authorization: Bearer plk_live_.... No other header is accepted.
id*string^[A-Za-z0-9._:-]{1,128}$application/jsoncomment?stringlength <= 1000reason?stringRequired when an API key answers Prodgator's own protection rule. Recorded in the audit log and the provider comment.
10 <= length <= 500The deployment was rejected.
application/jsondata*curl -X POST "https://api.prodgator.io/v1/deployments/string/reject" \ -H "Authorization: Bearer plk_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "rejected": true, "status": "string" }}