This provider is currently in preview.
published on Thursday, May 21, 2026 by Pulumi
This provider is currently in preview.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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
- 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 []interface{}
- 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(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
- 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 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 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
- 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.
Package Details
- Repository
- pulumiservice pulumi/pulumi-pulumiservice
- License
- Apache-2.0
This provider is currently in preview.
published on Thursday, May 21, 2026 by Pulumi