1. Packages
  2. Packages
  3. Pulumi Cloud (Pulumi Service provider)
  4. API Docs
  5. api
  6. api/integrations
  7. CustomVCSIntegration

This provider is currently in preview.

Viewing docs for Pulumi Cloud v1.1.0
published on Thursday, May 21, 2026 by Pulumi
pulumiservice logo

This provider is currently in preview.

Viewing docs for Pulumi Cloud v1.1.0
published on Thursday, May 21, 2026 by Pulumi

    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.

    Create CustomVCSIntegration Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new CustomVCSIntegration(name: string, args: CustomVCSIntegrationArgs, opts?: CustomResourceOptions);
    @overload
    def CustomVCSIntegration(resource_name: str,
                             args: CustomVCSIntegrationArgs,
                             opts: Optional[ResourceOptions] = None)
    
    @overload
    def CustomVCSIntegration(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             base_url: Optional[str] = None,
                             environment: Optional[str] = None,
                             name: Optional[str] = None,
                             org_name: Optional[str] = None,
                             integration_id: Optional[str] = None,
                             vcs_type: Optional[str] = None)
    func NewCustomVCSIntegration(ctx *Context, name string, args CustomVCSIntegrationArgs, opts ...ResourceOption) (*CustomVCSIntegration, error)
    public CustomVCSIntegration(string name, CustomVCSIntegrationArgs args, CustomResourceOptions? opts = null)
    public CustomVCSIntegration(String name, CustomVCSIntegrationArgs args)
    public CustomVCSIntegration(String name, CustomVCSIntegrationArgs args, CustomResourceOptions options)
    
    type: pulumiservice:api/integrations:CustomVCSIntegration
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "pulumiservice_api_integrations_customvcsintegration" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args CustomVCSIntegrationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args CustomVCSIntegrationArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args CustomVCSIntegrationArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CustomVCSIntegrationArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CustomVCSIntegrationArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var customVCSIntegrationResource = new PulumiService.Api.Integrations.CustomVCSIntegration("customVCSIntegrationResource", new()
    {
        BaseUrl = "string",
        Environment = "string",
        Name = "string",
        OrgName = "string",
        IntegrationId = "string",
        VcsType = "string",
    });
    
    example, err := integrations.NewCustomVCSIntegration(ctx, "customVCSIntegrationResource", &integrations.CustomVCSIntegrationArgs{
    	BaseUrl:       pulumi.String("string"),
    	Environment:   pulumi.String("string"),
    	Name:          pulumi.String("string"),
    	OrgName:       pulumi.String("string"),
    	IntegrationId: pulumi.String("string"),
    	VcsType:       pulumi.String("string"),
    })
    
    resource "pulumiservice_api_integrations_customvcsintegration" "customVCSIntegrationResource" {
      base_url       = "string"
      environment    = "string"
      name           = "string"
      org_name       = "string"
      integration_id = "string"
      vcs_type       = "string"
    }
    
    var customVCSIntegrationResource = new CustomVCSIntegration("customVCSIntegrationResource", CustomVCSIntegrationArgs.builder()
        .baseUrl("string")
        .environment("string")
        .name("string")
        .orgName("string")
        .integrationId("string")
        .vcsType("string")
        .build());
    
    custom_vcs_integration_resource = pulumiservice.api.integrations.CustomVCSIntegration("customVCSIntegrationResource",
        base_url="string",
        environment="string",
        name="string",
        org_name="string",
        integration_id="string",
        vcs_type="string")
    
    const customVCSIntegrationResource = new pulumiservice.api.integrations.CustomVCSIntegration("customVCSIntegrationResource", {
        baseUrl: "string",
        environment: "string",
        name: "string",
        orgName: "string",
        integrationId: "string",
        vcsType: "string",
    });
    
    type: pulumiservice:api/integrations:CustomVCSIntegration
    properties:
        baseUrl: string
        environment: string
        integrationId: string
        name: string
        orgName: string
        vcsType: string
    

    CustomVCSIntegration Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The CustomVCSIntegration resource accepts the following input properties:

    BaseUrl string
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    Environment string
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    Name string
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    OrgName string
    The organization name
    IntegrationId string
    The custom VCS integration identifier
    VcsType string
    Version control system type. Defaults to 'git' if not specified.
    BaseUrl string
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    Environment string
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    Name string
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    OrgName string
    The organization name
    IntegrationId string
    The custom VCS integration identifier
    VcsType string
    Version control system type. Defaults to 'git' if not specified.
    base_url string
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    environment string
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    name string
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    org_name string
    The organization name
    integration_id string
    The custom VCS integration identifier
    vcs_type string
    Version control system type. Defaults to 'git' if not specified.
    baseUrl String
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    environment String
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    name String
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    orgName String
    The organization name
    integrationId String
    The custom VCS integration identifier
    vcsType String
    Version control system type. Defaults to 'git' if not specified.
    baseUrl string
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    environment string
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    name string
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    orgName string
    The organization name
    integrationId string
    The custom VCS integration identifier
    vcsType string
    Version control system type. Defaults to 'git' if not specified.
    base_url str
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    environment str
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    name str
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    org_name str
    The organization name
    integration_id str
    The custom VCS integration identifier
    vcs_type str
    Version control system type. Defaults to 'git' if not specified.
    baseUrl String
    URL prefix for repositories covered by this integration (e.g. 'https://gitea.example.com/myorg'). Used to match repositories to integrations.
    environment String
    ESC environment reference in 'project/envName' format containing VCS credentials (e.g. SSH keys, access tokens) used for repository operations
    name String
    Human-readable name for the integration, unique within the organization (e.g. 'Gitea Production')
    orgName String
    The organization name
    integrationId String
    The custom VCS integration identifier
    vcsType String
    Version control system type. Defaults to 'git' if not specified.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the CustomVCSIntegration resource produces the following output properties:

    Created string
    ISO 8601 timestamp of when the integration was created
    Id string
    The provider-assigned unique ID for this managed resource.
    Modified string
    ISO 8601 timestamp of when the integration was last modified
    Repositories List<object>
    List of repositories configured on this integration
    WebhookSecret string
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    WebhookUrl string
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    Created string
    ISO 8601 timestamp of when the integration was created
    Id string
    The provider-assigned unique ID for this managed resource.
    Modified string
    ISO 8601 timestamp of when the integration was last modified
    Repositories []interface{}
    List of repositories configured on this integration
    WebhookSecret string
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    WebhookUrl string
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    created string
    ISO 8601 timestamp of when the integration was created
    id string
    The provider-assigned unique ID for this managed resource.
    modified string
    ISO 8601 timestamp of when the integration was last modified
    repositories list(any)
    List of repositories configured on this integration
    webhook_secret string
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    webhook_url string
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    created String
    ISO 8601 timestamp of when the integration was created
    id String
    The provider-assigned unique ID for this managed resource.
    modified String
    ISO 8601 timestamp of when the integration was last modified
    repositories List<Object>
    List of repositories configured on this integration
    webhookSecret String
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    webhookUrl String
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    created string
    ISO 8601 timestamp of when the integration was created
    id string
    The provider-assigned unique ID for this managed resource.
    modified string
    ISO 8601 timestamp of when the integration was last modified
    repositories any[]
    List of repositories configured on this integration
    webhookSecret string
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    webhookUrl string
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    created str
    ISO 8601 timestamp of when the integration was created
    id str
    The provider-assigned unique ID for this managed resource.
    modified str
    ISO 8601 timestamp of when the integration was last modified
    repositories Sequence[Any]
    List of repositories configured on this integration
    webhook_secret str
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    webhook_url str
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.
    created String
    ISO 8601 timestamp of when the integration was created
    id String
    The provider-assigned unique ID for this managed resource.
    modified String
    ISO 8601 timestamp of when the integration was last modified
    repositories List<Any>
    List of repositories configured on this integration
    webhookSecret String
    HMAC secret for webhook signature verification. Only returned on integration creation; subsequent GET requests omit this field.
    webhookUrl String
    Full webhook endpoint URL that the external VCS should POST events to. This URL is generated by the service and includes the integration ID.

    Package Details

    Repository
    pulumiservice pulumi/pulumi-pulumiservice
    License
    Apache-2.0
    pulumiservice logo

    This provider is currently in preview.

    Viewing docs for Pulumi Cloud v1.1.0
    published on Thursday, May 21, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial