GitHub: List concurrency groups for a workflow run
GitHub actions.actionsListConcurrencyGroupsForWorkflowRun: arguments, response, policy and SDK examples.
← Actions operations · Get started
Operation github.actions_list_concurrency_groups_for_workflow_run
Provider route: GET /repos/{owner}/{repo}/actions/runs/{run_id}/concurrency_groups. 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["actions"]["actionsListConcurrencyGroupsForWorkflowRun"]>[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.actions.actionsListConcurrencyGroupsForWorkflowRun(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.actions.actions_list_concurrency_groups_for_workflow_run(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 | |
path.run_id | integer | Required within parent | |
query | object | Optional | Additional keys: not allowed |
query.per_page | integer | Optional | Default: 30 |
query.before | string | Optional | |
query.after | string | Optional |
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 |
|---|---|---|---|
$ | Model | Root | Expand List concurrency groups for a workflow run — response body |
Referenced models: List concurrency groups for a workflow run — response body
Schemas
Section titled “Schemas”List concurrency groups for a workflow run — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | A list of concurrency groups associated with a workflow run. |
concurrency_groups | array | Required within parent | |
concurrency_groups[] | object | Each item | |
concurrency_groups[].group_members | array | Required within parent | Items belonging to this workflow run that are either currently holding or waiting for the concurrency group lease. May be empty if the run no longer has any active or queued items in this group. |
concurrency_groups[].group_members[] | object | Each item | |
concurrency_groups[].group_members[].job_html_url | JSON | Optional | |
concurrency_groups[].group_members[].job_html_url (anyOf 1) | string | Alternative | Web URL for the job. Format: uri |
concurrency_groups[].group_members[].job_html_url (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].job_id | JSON | Optional | |
concurrency_groups[].group_members[].job_id (anyOf 1) | JSON | Alternative | |
concurrency_groups[].group_members[].job_id (anyOf 1) (anyOf 1) | integer | Alternative | The ID of the job, when the item represents a job-level or reusable-workflow-level lease. |
concurrency_groups[].group_members[].job_id (anyOf 1) (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
concurrency_groups[].group_members[].job_id (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].job_name | JSON | Optional | |
concurrency_groups[].group_members[].job_name (anyOf 1) | string | Alternative | The display name of the job, when the item represents a job-level or reusable-workflow-level lease. |
concurrency_groups[].group_members[].job_name (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].job_url | JSON | Optional | |
concurrency_groups[].group_members[].job_url (anyOf 1) | string | Alternative | API URL for the job. Format: uri |
concurrency_groups[].group_members[].job_url (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].position | JSON | Required within parent | |
concurrency_groups[].group_members[].position (anyOf 1) | integer | Alternative | Queue position. 0 means the item holds the concurrency lease (in_progress), 1 or higher means queued (pending). |
concurrency_groups[].group_members[].position (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
concurrency_groups[].group_members[].position_url | string | Required within parent | API URL to get items ahead of this item in the concurrency group. Format: uri |
concurrency_groups[].group_members[].run_html_url | JSON | Required within parent | |
concurrency_groups[].group_members[].run_html_url (anyOf 1) | string | Alternative | Web URL for the workflow run. Format: uri |
concurrency_groups[].group_members[].run_html_url (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].run_id | JSON | Required within parent | |
concurrency_groups[].group_members[].run_id (anyOf 1) | integer | Alternative | The ID of the workflow run. |
concurrency_groups[].group_members[].run_id (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
concurrency_groups[].group_members[].run_name | string | Required within parent | The name of the workflow run. |
concurrency_groups[].group_members[].run_url | JSON | Required within parent | |
concurrency_groups[].group_members[].run_url (anyOf 1) | string | Alternative | API URL for the workflow run. Format: uri |
concurrency_groups[].group_members[].run_url (anyOf 2) | null | Alternative | |
concurrency_groups[].group_members[].status | string | Required within parent | Known values: in_progress, pending |
concurrency_groups[].group_name | string | Required within parent | The name of the concurrency group. |
concurrency_groups[].group_url | string | Required within parent | API URL for this concurrency group. May return 404 if the group has no active items at the time it is requested, since the get-by-name endpoint reports the live repo-wide state of a group while this endpoint lists groups associated with a run by configuration. Format: uri |
total_count | JSON | Required within parent | |
total_count (anyOf 1) | integer | Alternative | The total number of concurrency groups this workflow run participates in, derived from the run's configuration. This count is not filtered by whether the run currently holds or is waiting in each group, so it can include groups whose `group_members` array is empty (for example, when the run has already released its lease in that group). |
total_count (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: github.actions_list_concurrency_groups_for_workflow_run. Catalog operation: actions/list-concurrency-groups-for-workflow-run. 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"}