GitHub: List environments
GitHub repos.reposGetAllEnvironments: arguments, response, policy and SDK examples.
← Repos operations · Get started
Operation github.repos_get_all_environments
Provider route: GET /repos/{owner}/{repo}/environments. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/github with npm, or alter-sdk-github with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { GitHubIntegration } from "@alter-ai/github";
async function execute(input: Parameters<GitHubIntegration["repos"]["reposGetAllEnvironments"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new GitHubIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.repos.reposGetAllEnvironments(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_github import GitHubIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = GitHubIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.repos.repos_get_all_environments(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.owner | string | Required within parent | |
path.repo | string | Required within parent | |
query | object | Optional | Additional keys: not allowed |
query.per_page | integer | Optional | Default: 30 |
query.page | integer | Optional | Default: 1 |
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
environments | array | Optional | |
environments[] | Model | Each item | Expand Get an environment — response body |
total_count | JSON | Optional | |
total_count (anyOf 1) | integer | Alternative | The number of environments in this repository |
total_count (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Referenced models: Get an environment — response body
Schemas
Section titled “Schemas”2 more schemas are linked from the tables above, on the schema pages.
Get an environment — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Details of a deployment environment |
created_at | string | Required within parent | The time that the environment was created, in ISO 8601 format. Format: date-time |
deployment_branch_policy | Model | Optional | Expand Get an environment — response body — deployment branch policy |
html_url | string | Required within parent | |
id | JSON | Required within parent | |
id (anyOf 1) | integer | Alternative | The id of the environment. Format: int64 |
id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
name | string | Required within parent | The name of the environment. |
node_id | string | Required within parent | |
protection_rules | array | Optional | Built-in deployment protection rules for the environment. |
protection_rules[] | JSON | Each item | |
protection_rules[] (anyOf 1) | object | Alternative | |
protection_rules[] (anyOf 1).id | JSON | Required within parent | |
protection_rules[] (anyOf 1).id (anyOf 1) | integer | Alternative | |
protection_rules[] (anyOf 1).id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
protection_rules[] (anyOf 1).node_id | string | Required within parent | |
protection_rules[] (anyOf 1).type | string | Required within parent | |
protection_rules[] (anyOf 1).wait_timer | Model | Optional | Expand Get an environment — response body — protection rules item id, node id, type, wait timer wait timer |
protection_rules[] (anyOf 2) | object | Alternative | |
protection_rules[] (anyOf 2).id | JSON | Required within parent | |
protection_rules[] (anyOf 2).id (anyOf 1) | integer | Alternative | |
protection_rules[] (anyOf 2).id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
protection_rules[] (anyOf 2).node_id | string | Required within parent | |
protection_rules[] (anyOf 2).prevent_self_review | boolean | Optional | Whether deployments to this environment can be approved by the user who created the deployment. |
protection_rules[] (anyOf 2).reviewers | array | Optional | The people or teams that may approve jobs that reference the environment. You can list up to six users or teams as reviewers. The reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. |
protection_rules[] (anyOf 2).reviewers[] | object | Each item | |
protection_rules[] (anyOf 2).reviewers[].reviewer | JSON | Optional | |
protection_rules[] (anyOf 2).reviewers[].reviewer (anyOf 1) | Model | Alternative | Expand List users — response body — item |
protection_rules[] (anyOf 2).reviewers[].reviewer (anyOf 2) | Model | Alternative | Expand List teams — response body — item |
protection_rules[] (anyOf 2).reviewers[].type | string | Optional | The type of reviewer. Known values: User, Team |
protection_rules[] (anyOf 2).type | string | Required within parent | |
protection_rules[] (anyOf 3) | object | Alternative | |
protection_rules[] (anyOf 3).id | JSON | Required within parent | |
protection_rules[] (anyOf 3).id (anyOf 1) | integer | Alternative | |
protection_rules[] (anyOf 3).id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
protection_rules[] (anyOf 3).node_id | string | Required within parent | |
protection_rules[] (anyOf 3).type | string | Required within parent | |
updated_at | string | Required within parent | The time that the environment was last updated, in ISO 8601 format. Format: date-time |
url | string | Required within parent |
Referenced models: Get an environment — response body — deployment branch policy, List users — response body — item, List teams — response body — item, Get an environment — response body — protection rules item id, node id, type, wait timer wait timer
Get an environment — response body — deployment branch policy
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | object | Alternative | The type of deployment branch policy for this environment. To allow all branches to deploy, set to `null`. |
$ (anyOf 1).custom_branch_policies | boolean | Required within parent | Whether only branches that match the specified name patterns can deploy to this environment. If `custom_branch_policies` is `true`, `protected_branches` must be `false`; if `custom_branch_policies` is `false`, `protected_branches` must be `true`. |
$ (anyOf 1).protected_branches | boolean | Required within parent | Whether only branches with branch protection rules can deploy to this environment. If `protected_branches` is `true`, `custom_branch_policies` must be `false`; if `protected_branches` is `false`, `custom_branch_policies` must be `true`. |
$ (anyOf 2) | null | Alternative |
List users — response body — item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | A GitHub user. |
avatar_url | string | Required within parent | Format: uri |
email | JSON | Optional | |
email (anyOf 1) | string | Alternative | |
email (anyOf 2) | null | Alternative | |
events_url | string | Required within parent | |
followers_url | string | Required within parent | Format: uri |
following_url | string | Required within parent | |
gists_url | string | Required within parent | |
gravatar_id | JSON | Required within parent | |
gravatar_id (anyOf 1) | string | Alternative | |
gravatar_id (anyOf 2) | null | Alternative | |
html_url | string | Required within parent | Format: uri |
id | JSON | Required within parent | |
id (anyOf 1) | integer | Alternative | Format: int64 |
id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
login | string | Required within parent | |
name | JSON | Optional | |
name (anyOf 1) | string | Alternative | |
name (anyOf 2) | null | Alternative | |
node_id | string | Required within parent | |
organizations_url | string | Required within parent | Format: uri |
received_events_url | string | Required within parent | Format: uri |
repos_url | string | Required within parent | Format: uri |
site_admin | boolean | Required within parent | |
starred_at | string | Optional | |
starred_url | string | Required within parent | |
subscriptions_url | string | Required within parent | Format: uri |
type | string | Required within parent | |
url | string | Required within parent | Format: uri |
user_view_type | string | Optional |
Get an environment — response body — protection rules item id, node id, type, wait timer wait timer
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | integer | Alternative | The amount of time to delay a job after the job is initially triggered. The time (in minutes) must be an integer between 0 and 43,200 (30 days). |
$ (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Create a team — response body — parent
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
$ (anyOf 1) | Model | Alternative | Expand Create a team — response body — parent / type: enterprise, organization |
$ (anyOf 2) | null | Alternative |
Referenced models: Create a team — response body — parent / type: enterprise, organization
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: github.repos_get_all_environments. Catalog operation: repos/get-all-environments. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Pinned headers: {"X-GitHub-Api-Version": "2026-03-10", "User-Agent": "Alter", "Accept": "application/vnd.github+json"}