首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自私有模板的Terraform github_repository

来自私有模板的Terraform github_repository
EN

Stack Overflow用户
提问于 2021-11-29 17:04:06
回答 2查看 527关注 0票数 1

我试图从一个私有模板创建一个github_repository资源,声明如下:

代码语言:javascript
复制
resource "github_repository" "source_code" {

  name = "test"
  template {
    owner      = "me"
    repository = "template-repository" // this is a private repository
  }
  visibility = "private"
}

template-repositoryme是示例值。

当我运行terraform apply时,我会得到以下失败:

代码语言:javascript
复制
╷
│ Error: POST https://api.github.com/repos/me/template-repository/generate: 404 Not Found []
│
│   with module.test.module.repository.github_repository.source_code,
│   on modules\serverless_api_repository\main.tf line 1, in resource "github_repository" "source_code":
│    1: resource "github_repository" "source_code" {
│
╵

当我将TF_LOG设置为DEBUG时,我可以看到POST请求的内容。

代码语言:javascript
复制
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: ---[ REQUEST ]---------------------------------------
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: POST /repos/me/template-repository/generate HTTP/1.1
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: Host: api.github.com
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: User-Agent: go-github
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: Content-Length: 66
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: Accept: application/vnd.github.baptiste-preview+json
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: Content-Type: application/json
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: Accept-Encoding: gzip
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: {
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:  "name": "test",
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:  "owner": "",
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:  "description": "",
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:  "private": true
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: }
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe:
2021-11-29T10:34:30.245-0600 [DEBUG] provider.terraform-provider-github_v4.18.1.exe: -----------------------------------------------------

问题是terraform没有将我的OAuth 2.0令牌添加到这个请求的标头中。我应该将Authorization: token ghp_<the actual token>视为标题之一,就像terraform为正常REST调用所做的那样。这个令牌确实有repo声明,我只需添加标题就可以在hoppscotch中成功地尝试这个请求。这是地形上的错误,还是我遗漏了某种配置?

为了记录在案,我已经使用适当的github 2.0令牌声明了一个OAuth提供程序:

代码语言:javascript
复制
provider "github" {
  token = "ghp_<secret ooh...>"
}

提供程序版本是~> 4.18.0

我已经证实,terraform可以直接创建存储库。只有当我尝试从私有模板创建时,它才会失败。

EN

回答 2

Stack Overflow用户

发布于 2022-08-25 13:30:29

您需要将私有template-repository定义为模板存储库。只需按照创建模板存储库中的说明操作,然后使用terraform apply重试。

票数 0
EN

Stack Overflow用户

发布于 2021-11-29 17:47:13

我不确定,只是根据文件猜测。

如果要信任Github Terraform提供者文档

业主-(可选) ..。如果未提供令牌且可用令牌,则将使用拥有该令牌的单个用户帐户。

因此,我认为您可能缺少了提供者的owner参数。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70158506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档