GitHub: List automations for a repository
GitHub agentAutomations.agentAutomationsListRepoAutomations: arguments, response, policy and SDK examples.
← Agent automations operations · Get started
Operation github.agent_automations_list_repo_automations
Provider route: GET /agents/repos/{owner}/{repo}/automations. 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["agentAutomations"]["agentAutomationsListRepoAutomations"]>[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.agentAutomations.agentAutomationsListRepoAutomations(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.agent_automations.agent_automations_list_repo_automations(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.page | integer | Optional | Default: 1 Minimum: 1 |
query.per_page | integer | Optional | Default: 30 Maximum: 100 Minimum: 1 |
query.type | string | Optional | One of: personal, shared |
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 | A page of automations for a repository and the complete filtered result count. |
automations | array | Required within parent | List of automations in the repository |
automations[] | object | Each item | A summary representation of an automation (used in list responses). |
automations[].created_at | string | Required within parent | When the automation was created. Format: date-time |
automations[].created_by | object | Required within parent | A GitHub user |
automations[].created_by.id | JSON | Optional | |
automations[].created_by.id (anyOf 1) | integer | Alternative | The unique identifier of the user Format: int64 |
automations[].created_by.id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
automations[].enabled | boolean | Optional | Whether the automation is currently enabled. |
automations[].id | string | Required within parent | The unique identifier of the automation. |
automations[].model | string | Optional | The model override for sessions triggered by this automation. Absent when the platform selects the model. |
automations[].name | string | Required within parent | The name of the automation. |
automations[].reasoning_effort | string | Optional | The reasoning effort override for sessions triggered by this automation. Absent when the model’s default is used. |
automations[].require_actor_write_permission | boolean | Optional | When true, event-triggered runs require the event actor to have repo write permission, even when the org’s allow_read_access_triggers policy is enabled. Does not apply to interval-scheduled runs, which always run as the automation owner. Default: false |
automations[].triggers | Model | Optional | Expand Get an automation — response body — triggers |
automations[].type | string | Optional | The type of automation. `personal` keeps it private to its creator and its runs act as that user. `shared` makes it belong to the repository, visible to anyone with read access to the repository, and its runs act as the Copilot app rather than as a person. Known values: personal, shared Read only: true |
automations[].updated_at | string | Required within parent | When the automation was last updated. Format: date-time |
total_count | JSON | Required within parent | |
total_count (anyOf 1) | integer | Alternative | Total count of caller-visible automations matching the supplied filters (across all pages) Format: int32 |
total_count (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Referenced models: Get an automation — response body — triggers
Schemas
Section titled “Schemas”14 more schemas are linked from the tables above, on the schema pages.
Get an automation — response body — triggers
Referenced models: Get an automation — response body — triggers automation completed, Get an automation — response body — triggers automation failed, Get an automation — response body — triggers dependabot alert, Get an automation — response body — triggers discussion comment, Get an automation — response body — triggers discussion opened, Get an automation — response body — triggers interval, Get an automation — response body — triggers issue assigned, Get an automation — response body — triggers issue closed, Get an automation — response body — triggers issue comment, Get an automation — response body — triggers issue labeled, Get an automation — response body — triggers pull request assigned, Get an automation — response body — triggers pull request closed, Get an automation — response body — triggers pull request comment, Get an automation — response body — triggers pull request labeled, Get an automation — response body — triggers pull request review submitted, Get an automation — response body — triggers workflow run
Get an automation — response body — triggers automation completed
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
allow_copilot_triggers | boolean | Optional | When true, events Copilot creates, including from other automations and Copilot sessions, can start this automation through this trigger. Defaults to false. The Copilot coding agent app cannot turn it on: creating a trigger with true, or changing it from false to true, returns 422. |
automation_ids | array | Required within parent | Upstream Automation IDs in the same repository. Maximum items: 3 Minimum items: 1 Unique items: true |
automation_ids[] | string | Each item | |
write_scope | string | Optional | Override the Automation `write_scope` for runs started by this trigger. If omitted, the automation's `write_scope` is used. Organization or repository policy may restrict the effective scope to `trigger`. Explicitly setting `repository` on create or edit returns 422 when policy validation is enabled and that policy applies. Known values: trigger, repository |
Get an automation — response body — triggers automation failed
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
allow_copilot_triggers | boolean | Optional | When true, events Copilot creates, including from other automations and Copilot sessions, can start this automation through this trigger. Defaults to false. The Copilot coding agent app cannot turn it on: creating a trigger with true, or changing it from false to true, returns 422. |
automation_ids | array | Required within parent | Upstream Automation IDs in the same repository. An Automation cannot list itself, and a user-owned Automation can only be listed by its creator's user-owned Automations. Maximum items: 3 Minimum items: 1 Unique items: true |
automation_ids[] | string | Each item | |
reasons | array | Optional | Failure reasons to match. Omit to match only reported failures. Maximum items: 3 Minimum items: 1 Unique items: true |
reasons[] | string | Each item | Known values: reported, crashed, timed_out |
write_scope | string | Optional | Override the Automation `write_scope` for runs started by this trigger. If omitted, the automation's `write_scope` is used. Organization or repository policy may restrict the effective scope to `trigger`. Explicitly setting `repository` on create or edit returns 422 when policy validation is enabled and that policy applies. Known values: trigger, repository |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: github.agent_automations_list_repo_automations. Catalog operation: agent-automations/list-repo-automations. 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"}