首页 > 解决方案 > 在执行 Terraform git import 之前修改源文件

问题描述

我有一个 terraform 代码,可以通过从另一个父存储库导入来创建一个存储库。下面的代码运行良好,我可以导入 repo。

 resource "azuredevops_serviceendpoint_generic_git" "serviceendpoint" {
  project_id            = azuredevops_project.project.id
  repository_url        = "https://{ORG}@dev.azure.com/{ORG}/{Proj}/_git/newrepo"
  username              = "test"
  password              = "PAT"
  service_endpoint_name = "Sample Generic Git"
  description           = "Managed by Terraform"
  }

 resource "azuredevops_git_repository" "reponew" {
 project_id = azuredevops_project.project.id
 name       = "newrepo"
 initialization {
   init_type             = "Import"
   source_type           = "Git"
   source_url            = "https://{ORG}@dev.azure.com/{ORG}/{Proj}/_git/parentrepo"
  service_connection_id = azuredevops_serviceendpoint_generic_git.serviceendpoint.id
}
}

但我的要求是在导入到 newrepo 之前修改一些文件。我为此目的使用了 null_resource 。但它面临着一些问题,如 Terraform null_resource not running with backend中所述

我们如何在使用 Terraform 导入之前修改一些文件?

标签: azure-devopsterraform

解决方案


您可以使用azuredevops_git_repository_file构造进行更改(提交)。content属性可以是文件或字符串类型。

resource "azuredevops_git_repository_file" "repo_file" {
  repository_id       = azuredevops_git_repository.reponew.id
  file                = "README.MD"
  content             = file("templates/localfile") 
  branch              = "refs/heads/master"
  commit_message      = "Update commit"
  overwrite_on_create = false
}

推荐阅读