Pulumi VCS Integrations API
The VCS Integrations API from Pulumi — 25 operation(s) for vcs integrations.
The VCS Integrations API from Pulumi — 25 operation(s) for vcs integrations.
openapi: 3.0.3
info:
description: APIs and Definitions for the Pulumi Cloud product.
title: Pulumi APIs AccessTokens VCS Integrations API
version: 1.0.0
tags:
- name: VCS Integrations
paths:
/api/console/orgs/{orgName}/integrations:
get:
description: Returns a summary of all VCS integrations across all providers (GitHub, GitLab, Azure DevOps, Custom) for an organization. Each integration includes a hasIndividualAccess flag indicating whether the current user has an OAuth token for that provider.
operationId: ListAllVCSIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListVCSIntegrationSummariesResponse'
description: OK
'404':
description: Organization not found
summary: ListAllVCSIntegrations
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/azure-devops:
get:
description: Lists all Azure DevOps integrations configured for an organization.
operationId: ListAzureDevOpsIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListAzureDevOpsIntegrationsResponse'
description: OK
summary: ListAzureDevOpsIntegrations
tags:
- VCS Integrations
post:
description: Creates a new Azure DevOps integration for an organization. Requires an Azure DevOps organization and project to be specified in the request body. Returns 409 if an integration already exists for the specified project.
operationId: CreateAzureDevOpsSetup
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAzureDevOpsAppIntegrationRequest'
x-originalParamName: body
responses:
'204':
description: Created successfully
'400':
description: Missing Azure DevOps organization or project
'409':
description: Azure DevOps integration already exists for this project
summary: CreateAzureDevOpsSetup
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/azure-devops/access-status:
get:
description: Returns information about a user's Azure DevOps access status for an organization, including whether the user has a valid OAuth token.
operationId: GetAzureDevOpsAccessStatus
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AzureDevOpsAccessResponse'
description: OK
summary: GetAzureDevOpsAccessStatus
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/azure-devops/oauth/complete:
post:
description: Completes the OAuth authorization flow for Azure DevOps VCS integration by exchanging the authorization code for access and refresh tokens.
operationId: CompleteAzureDevOpsOAuth
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompleteOAuthRequest'
x-originalParamName: body
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompleteOAuthResponse'
description: OK
'400':
description: Failed to complete OAuth
summary: CompleteAzureDevOpsOAuth
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/azure-devops/oauth/initiate:
post:
description: Initiates the OAuth authorization flow for Azure DevOps VCS integration. Returns a redirect URL that the user should be directed to for authorization.
operationId: InitiateAzureDevOpsOAuth
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateOAuthRequest'
x-originalParamName: body
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InitiateOAuthResponse'
description: OK
'400':
description: Invalid provider configuration
summary: InitiateAzureDevOpsOAuth
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/azure-devops/setup/organizations:
get:
description: Lists Azure DevOps organizations available to the current user. Requires an active Azure DevOps OAuth token.
operationId: ListAzureDevOpsOrganizations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AzureDevOpsOrganization'
type: array
description: OK
summary: ListAzureDevOpsOrganizations
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/azure-devops/setup/organizations/{adoOrgName}/projects:
get:
description: Lists Azure DevOps projects within a specified Azure DevOps organization that are available to the current user.
operationId: ListAzureDevOpsProjects
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The Azure DevOps organization name
in: path
name: adoOrgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AzureDevOpsProject'
type: array
description: OK
summary: ListAzureDevOpsProjects
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/azure-devops/{integrationId}:
delete:
description: Removes a specific Azure DevOps integration from the organization.
operationId: DeleteAzureDevOpsIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The Azure DevOps integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'204':
description: No Content
'404':
description: Azure DevOps integration not found
summary: DeleteAzureDevOpsIntegration
tags:
- VCS Integrations
get:
description: Gets a specific Azure DevOps integration by its integration ID. Returns the integration details including organization, project, and authentication configuration.
operationId: GetAzureDevOpsIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The Azure DevOps integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AzureDevOpsAppIntegrationResponse'
description: OK
'404':
description: Azure DevOps integration not found
summary: GetAzureDevOpsIntegration
tags:
- VCS Integrations
patch:
description: Updates an existing Azure DevOps integration's settings. Can modify the Azure DevOps organization, project, or authentication configuration.
operationId: UpdateAzureDevOpsIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The Azure DevOps integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AzureDevOpsSettingsRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'400':
description: Missing Azure DevOps organization or project
'404':
description: Azure DevOps integration not found
summary: UpdateAzureDevOpsIntegration
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/bitbucket:
get:
description: Lists all BitBucket integrations configured for an organization, including their validity status and linked workspace metadata.
operationId: ListBitBucketIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListBitBucketIntegrationsResponse'
description: OK
summary: ListBitBucketIntegrations
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
post:
description: Creates a new BitBucket integration for an organization. Requires a BitBucket workspace UUID and optionally configures authentication via the user's BitBucket OAuth token or a workspace access token / PAT. Returns 409 if an integration already exists for the specified workspace.
operationId: CreateBitBucketSetup
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BitBucketSetupRequest'
x-originalParamName: body
responses:
'204':
description: Created successfully
'400':
description: Missing or invalid BitBucket workspace
'409':
description: BitBucket integration already exists for this workspace
summary: CreateBitBucketSetup
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/bitbucket/access-status:
get:
description: Returns information about a user's BitBucket access status for an organization, including whether they have a valid OAuth token and available BitBucket workspaces for new integrations.
operationId: GetBitBucketAccessStatus
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BitBucketAccessStatusResponse'
description: OK
summary: GetBitBucketAccessStatus
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/bitbucket/{integrationId}:
delete:
description: Removes a specific BitBucket integration from the organization. Cleans up associated webhooks and access tokens.
operationId: DeleteBitBucketIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The BitBucket integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'204':
description: No Content
summary: DeleteBitBucketIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
get:
description: Gets a specific BitBucket integration by its integration ID. Returns the integration details including the linked BitBucket workspace, authentication configuration, and validity status.
operationId: GetBitBucketIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The BitBucket integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BitBucketIntegrationDetails'
description: OK
'404':
description: BitBucket integration not found
summary: GetBitBucketIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
patch:
description: Updates an existing BitBucket integration's settings, such as PR comment preferences and AI summary options.
operationId: UpdateBitBucketIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The BitBucket integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BitBucketSettingsRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'404':
description: BitBucket integration not found
summary: UpdateBitBucketIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/custom:
get:
description: Lists all custom VCS integrations configured for an organization. Returns each integration's configuration, webhook URL, and configured repositories. Webhook secrets are not included in list responses.
operationId: ListCustomVCSIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListCustomVCSIntegrationsResponse'
description: OK
summary: ListCustomVCSIntegrations
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
post:
description: Creates a new custom VCS integration for an organization. Custom VCS integrations allow connecting self-hosted or third-party version control systems (e.g. Gitea, Forgejo, Bitbucket Server) to Pulumi Deployments. Credentials are managed via ESC environments, and deployments are triggered by inbound webhooks. Returns the created integration including its webhook URL and HMAC secret for signature verification.
operationId: CreateCustomVCSIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCustomVCSIntegrationRequest'
x-originalParamName: body
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CustomVCSIntegrationResponse'
description: Created
'400':
description: 'Invalid request: missing required fields or invalid vcsType'
'409':
description: An integration with this name already exists in the organization
summary: CreateCustomVCSIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/custom/{integrationId}:
delete:
description: Removes a specific custom VCS integration from the organization. This permanently deletes the integration, its webhook endpoint, and all configured repository associations.
operationId: DeleteCustomVCSIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The custom VCS integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'204':
description: No Content
'404':
description: Custom VCS integration not found
summary: DeleteCustomVCSIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
get:
description: Gets a specific custom VCS integration by its integration ID. Returns the integration details including its configuration, webhook URL, and configured repositories. The webhook secret is not included; it is only returned at creation time or when regenerated via update.
operationId: GetCustomVCSIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The custom VCS integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CustomVCSIntegrationResponse'
description: OK
'404':
description: Custom VCS integration not found
summary: GetCustomVCSIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
patch:
description: Updates an existing custom VCS integration's settings. All fields are optional; only provided fields are modified. Set regenerateWebhookSecret to true to rotate the webhook HMAC secret, which invalidates the previous secret immediately.
operationId: UpdateCustomVCSIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The custom VCS integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCustomVCSIntegrationRequest'
x-originalParamName: body
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CustomVCSIntegrationResponse'
description: OK
'400':
description: 'Invalid request: invalid vcsType or other validation failure'
'404':
description: Custom VCS integration not found
summary: UpdateCustomVCSIntegration
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/custom/{integrationId}/repos:
delete:
description: Removes a repository from a custom VCS integration. The repository is identified by its name, as provided in the request. Returns 404 if the integration or repository is not found.
operationId: RemoveCustomVCSRepository
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The custom VCS integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RemoveCustomVCSRepositoryRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'404':
description: Custom VCS integration or repository not found
summary: RemoveCustomVCSRepository
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
post:
description: Adds a repository to a custom VCS integration. The repository name must be unique within the integration. Returns 409 Conflict if a repository with the same name is already configured.
operationId: AddCustomVCSRepository
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The custom VCS integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddCustomVCSRepositoryRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'404':
description: Custom VCS integration not found
'409':
description: Repository name already configured on this integration
summary: AddCustomVCSRepository
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/github:
get:
description: Lists all GitHub App integrations for an organization.
operationId: ListGitHubIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListGitHubIntegrationsResponse'
description: OK
summary: ListGitHubIntegrations
tags:
- VCS Integrations
post:
description: Initiates GitHub App setup, returns installation URL with state.
operationId: StartGitHubSetup
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GitHubSetupResponse'
description: OK
summary: StartGitHubSetup
tags:
- VCS Integrations
x-pulumi-route-property:
Visibility: Preview
/api/console/orgs/{orgName}/integrations/github-enterprise:
get:
description: Lists all GitHub Enterprise Server integrations for an organization. Returns only self-hosted GitHub App installations.
operationId: ListGitHubEnterpriseIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListGitHubIntegrationsResponse'
description: OK
summary: ListGitHubEnterpriseIntegrations
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/github-enterprise/{integrationId}:
delete:
description: Removes a GitHub Enterprise Server integration.
operationId: DeleteGitHubEnterpriseIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub Enterprise integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: GitHub app is used by multiple Pulumi organizations.
'404':
description: GitHub Enterprise integration not found
summary: DeleteGitHubEnterpriseIntegration
tags:
- VCS Integrations
get:
description: Gets a specific GitHub Enterprise Server integration.
operationId: GetGitHubEnterpriseIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub Enterprise integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GitHubIntegrationDetails'
description: OK
'404':
description: GitHub Enterprise integration not found
summary: GetGitHubEnterpriseIntegration
tags:
- VCS Integrations
patch:
description: Updates GitHub Enterprise Server integration settings.
operationId: UpdateGitHubEnterpriseIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub Enterprise integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GitHubSettingsRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'404':
description: GitHub Enterprise integration not found
summary: UpdateGitHubEnterpriseIntegration
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/github/access-status:
get:
description: Returns information about a user's GitHub OAuth status.
operationId: GetGitHubAccess
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VCSGitHubAccessResponse'
description: OK
'404':
description: GitHub App integration not found
summary: GetGitHubAccess
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/github/{integrationId}:
delete:
description: Removes a GitHub App integration.
operationId: DeleteGitHubIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub App integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: GitHub app is used by multiple Pulumi organizations.
'404':
description: GitHub App integration not found
summary: DeleteGitHubIntegration
tags:
- VCS Integrations
get:
description: Gets a specific GitHub App integration by its integration ID. Returns the integration details including installation ID, account info, PR comment settings, and permission status. Returns 404 if the integration is not found.
operationId: GetGitHubIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub App integration identifier
in: path
name: integrationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GitHubIntegrationDetails'
description: OK
'404':
description: GitHub App integration not found
summary: GetGitHubIntegration
tags:
- VCS Integrations
patch:
description: Updates GitHub App integration settings.
operationId: UpdateGitHubIntegration
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
- description: The GitHub App integration identifier
in: path
name: integrationId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GitHubSettingsRequest'
x-originalParamName: body
responses:
'204':
description: No Content
'404':
description: GitHub App integration not found
summary: UpdateGitHubIntegration
tags:
- VCS Integrations
/api/console/orgs/{orgName}/integrations/gitlab:
get:
description: Lists all GitLab integrations configured for an organization, including their validity status and linked group metadata.
operationId: ListGitLabIntegrations
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListGitLabIntegrationsResponse'
description: OK
summary: ListGitLabIntegrations
tags:
- VCS Integrations
post:
description: Creates a new GitLab integration for an organization. Requires a GitLab group ID and optionally configures authentication via the user's GitLab OAuth token or a group access token. Returns 409 if an integration already exists for the specified group.
operationId: CreateGitLabSetup
parameters:
- description: The organization name
in: path
name: orgName
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GitLabSetupRequest'
x-originalParamName: body
responses:
'204':
description: Created successfully
'400':
description: Missing or invalid GitLab group ID
'409':
description: GitLab integration already exists for this group
summary: CreateGi
# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pulumi/refs/heads/main/openapi/pulumi-vcs-integrations-api-openapi.yml