Placeholder
Features List
- Query Users and Groups
- Manage the lifecycle of Variable Group
- Manage the lifecycle of Task Group
- Manage the lifecycle of Service Endpoint of any type
- Manage the lifecycle of Service hook of any type
- Manage the lifecycle of Release Pipeline
- Manage the partial section of Release Pipeline
- Manage the lifecycle of Build Pipeline for both Yaml-based and direct build tasks
- Manage the lifecycle of Project
- Inject Single Tasks, or Group of Tasks into Release Pipeline
- All Resources support import
- Full Documentation
- Terraform 0.12.0+
- Go 1.12 (to build the provider plugin)
- Microsoft's AzureDevOps Go SDK
- You will need Go with
GO111MODULE
enabled
First build by running the following command
go get github.com/ellisdon-oss/terraform-provider-azuredevops
then copy the terraform-provider-azuredevops
binary to your terraform plugin folder or your terraform project folder(plugin folder can be either $HOME/.terraform.d/plugins/
or %APPDATA%\terraform.d\plugins
)
- Build the provider or grab the provider binary from the release page
- Extra and copy the provider binary to the terraform global folder(Mac/Linux
~/.terraform.d/plugins
or Windows%APPDATA%\terraform.d\plugins
)
NOTE: All examples have their full version in examples folder
resource "azuredevops_project" "default" {
name = "a-azuredevops-project"
visibility = "private"
capabilities {
version_control {
source_control_type = "git"
}
process_template {
template_type_id = "adcc42ab-9882-485e-a3ed-7678f01f66bc"
}
}
}
ref: Project
Code Example
...
resource "azuredevops_service_endpoint" "kubernetes" {
name = "kubernetes-example"
owner = "Library"
project_id = azuredevops_project.default.id
type = "kubernetes"
url = "http://<kube-cluster-url>"
authorization {
parameters = {
apiToken = "<kube-token>"
serviceAccountCertificate = "<kube-cert>"
}
scheme = "Token"
}
data = {
acceptUntrustedCerts = "true"
authorizationType = "ServiceAccount"
}
}
ref: Service Endpoint
Code Example
...
resource "azuredevops_service_endpoint" "github" {
name = "github-example"
owner = "Library"
project_id = azuredevops_project.default.id
type = "github"
url = "http://github.com"
# To enable all Pipeline to use this service endpoint
allow_all_pipelines = true
authorization {
scheme = "PersonalAccessToken"
parameters = {
accessToken = "<github-token>"
}
}
data = {}
}
ref: Service Endpoint
More examples are in here
- Fork the repo
- Make the changes
- Preferably before PR, the commits should be rebase and squash to 1 commit
- create a new PR (new features should be in a new features/ branch and patches should be in patches/ branch)
Note: please add yourself into CONTRIBUTORS.md before submitting PR
- Add Docker Image for provider
- Full Documentation