GitHub Copilot · Arazzo Workflow

GitHub Copilot Provision Seats for Teams

Version 1.0.0

Confirm organization billing capacity, assign Copilot seats to whole teams, and read back the updated seat breakdown.

1 workflow 1 source API 1 provider
View Spec View on GitHub AgentsAIArtificial IntelligenceCode GenerationCode ReviewCoding AgentCustom InstructionsDeveloper ToolsExtensionsIDEMachine LearningMCPMetricsModel Context ProtocolProductivityArazzoWorkflows

Provider

github-copilot

Workflows

provision-teams
Confirm billing, assign Copilot seats to teams, and re-read the breakdown.
Reads org Copilot billing, branches to abort when seat management is disabled, adds seats for all members of the supplied team slugs, then reads billing again to observe the updated seat breakdown.
3 steps inputs: org, selectedTeams outputs: seatsCreated, totalSeatsAfter, totalSeatsBefore
1
getBilling
getCopilotBillingForOrganization
Read the organization's Copilot billing information to confirm seat management is enabled before purchasing seats for teams.
2
addTeams
addTeamsToCopilotSubscription
Purchase Copilot seats for all members of the supplied teams. Billing is applied per the organization's plan. Responds 201 with the number of new seats created.
3
confirmBilling
getCopilotBillingForOrganization
Re-read the organization's Copilot billing information to observe the updated seat breakdown after the team seats were purchased.

Source API Descriptions

Arazzo Workflow Specification

github-copilot-provision-teams-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: GitHub Copilot Provision Seats for Teams
  summary: Confirm organization billing capacity, assign Copilot seats to whole teams, and read back the updated seat breakdown.
  description: >-
    A team-level seat provisioning flow for GitHub Copilot. The workflow reads
    the organization's Copilot billing to confirm seat management is active,
    branches to abort when management is disabled, purchases seats for every
    member of the supplied teams, and re-reads billing to confirm the updated
    seat breakdown. Every step spells out its request inline so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: githubCopilotApi
  url: ../openapi/github-copilot-openapi.yml
  type: openapi
workflows:
- workflowId: provision-teams
  summary: Confirm billing, assign Copilot seats to teams, and re-read the breakdown.
  description: >-
    Reads org Copilot billing, branches to abort when seat management is
    disabled, adds seats for all members of the supplied team slugs, then reads
    billing again to observe the updated seat breakdown.
  inputs:
    type: object
    required:
    - org
    - selectedTeams
    properties:
      org:
        type: string
        description: The organization name (case-insensitive).
      selectedTeams:
        type: array
        items:
          type: string
        description: Team slugs within the organization to assign Copilot seats to.
  steps:
  - stepId: getBilling
    description: >-
      Read the organization's Copilot billing information to confirm seat
      management is enabled before purchasing seats for teams.
    operationId: getCopilotBillingForOrganization
    parameters:
    - name: org
      in: path
      value: $inputs.org
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      seatManagementSetting: $response.body#/seat_management_setting
      totalSeatsBefore: $response.body#/seat_breakdown/total
    onSuccess:
    - name: seatManagementEnabled
      type: goto
      stepId: addTeams
      criteria:
      - context: $response.body
        condition: $.seat_management_setting != 'disabled'
        type: jsonpath
    - name: seatManagementDisabled
      type: end
      criteria:
      - context: $response.body
        condition: $.seat_management_setting == 'disabled'
        type: jsonpath
  - stepId: addTeams
    description: >-
      Purchase Copilot seats for all members of the supplied teams. Billing is
      applied per the organization's plan. Responds 201 with the number of new
      seats created.
    operationId: addTeamsToCopilotSubscription
    parameters:
    - name: org
      in: path
      value: $inputs.org
    requestBody:
      contentType: application/json
      payload:
        selected_teams: $inputs.selectedTeams
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      seatsCreated: $response.body#/seats_created
  - stepId: confirmBilling
    description: >-
      Re-read the organization's Copilot billing information to observe the
      updated seat breakdown after the team seats were purchased.
    operationId: getCopilotBillingForOrganization
    parameters:
    - name: org
      in: path
      value: $inputs.org
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      totalSeatsAfter: $response.body#/seat_breakdown/total
      addedThisCycle: $response.body#/seat_breakdown/added_this_cycle
      pendingInvitation: $response.body#/seat_breakdown/pending_invitation
  outputs:
    seatsCreated: $steps.addTeams.outputs.seatsCreated
    totalSeatsBefore: $steps.getBilling.outputs.totalSeatsBefore
    totalSeatsAfter: $steps.confirmBilling.outputs.totalSeatsAfter