Skip to content

[BUG]: data_source_github_app_token.go wrong baseURL for self-hosted Github Entreprise #2616

Open
@frco9

Description

@frco9

Expected Behavior

When using the github_app_token data source :

I expect to get a GitHub token from my Github_app to use.

Actual Behavior

It fails with the following error

│ Error: failed to create OAuth token from GitHub App: {"message":"Bad credentials","documentation_url":"https://docs.github.com/[email protected]/rest"}
│
│   with data.github_app_token.token,
│   on main.tf line 52, in data "github_app_token" "token":
│   52: data "github_app_token" "token" {
│

Terraform Version

Terraform v1.9.8
on darwin_arm64

  • provider registry.terraform.io/integrations/github v6.6.0

Affected Resource(s)

  • data github_app_token

Terraform Configuration Files

provider "github" {
  base_url = "https://github-eu.custom.entreprise.cloud/"
  owner    = "my-org"
}


data "github_app_token" "token" {
  app_id          = 13
  installation_id = 20
  pem_file        = file("./my-gh-app-name.2025-04-03.private-key.pem")
}

Steps to Reproduce

TF_LOG_PROVIDER=DEBUG GODEBUG=http2debug=1 TF_LOG_PATH=terraform.log terraform plan

You'll get the error mentioned before.

Then in the terraform.log file search for app/installations and you will see that the path to the api have two times the /api/v3 prefix

Debug Output

2025-04-09T16:01:53.954+0200 [DEBUG] provider.terraform-provider-alicloud_v1.247.0: 2025/04/09 16:01:53 using terraform version: 1.9.8
2025-04-09T16:01:53.954+0200 [DEBUG] provider.terraform-provider-alicloud_v1.247.0: 2025/04/09 16:01:53 alicloud provider trace id: f6ed6978-23a8-4c82-869c-32fc2eb1c13c
2025-04-09T16:01:53.955+0200 [DEBUG] provider.terraform-provider-alicloud_v1.247.0: 2025/04/09 16:01:53 [DEBUG] Waiting for state to become: [success]
2025-04-09T16:01:54.007+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport received HEADERS flags=END_HEADERS stream=3 len=733: timestamp="2025-04-09T16:01:54.007+0200"
2025-04-09T16:01:54.007+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport received DATA stream=3 len=674 data="\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x03\xb5UMs\xda0\x14\xfc+\x19\x9fC\f\xb4\x90\xe0\x99L\x0fM\xdaC\xa7M\x0f=tr\xd1<\xdb\xcfFA\x96\\I\x86\xa1\x99\xfc\xf7\xae-\x03\xa6\x1fI\x0e\x94\x93,=\xef>\xef\xdb\x15\x8f\x912\xa5\xd4Q\x12\xad\xd8J]\x8er\xf24\xaa\x15\xf9\xc2\xd8j\x94-\xa5\xa6\xe8<\x92y\x94L\xe6\x97\xe7\x9169\x8b\xf6)\xfa|s\xbb\xbd[-\xb6\xf7\xd3\x0f\r}\xaf\x97\xf9G\xb5N\x1fn\xa7_6\xd7\xd7x\xa3\xb1\nEK\xefk\x97\xc4q)\xfd\xb2IG\x99\xbe\b4\x17\x992M\x1eS-\xe3\xf5\x9b\xd8\xd8\xd2\xc5\xcf\xf2[\xae\x8d\x13'Č;D\xf4\xc9k\xd6\xfe\xb4\xd0\x01\x12\xd8KcV\xa7\x85\xee\x10\xdby8\xd7\xf0i\xa1\x03$\xb0+\xaeR\xb6\xa7\x05\xef1\x1f\xe3\xb0x\x02MݤJf\xe2\x7f\xb0\x1dC\x0fIi\r{\xdbW\x1a\xa9\xabuq\x13\xc3\xf9\xef\xd0q\xce.\xb3\xb2\xf6Ҵy\xc1" (418 bytes omitted): timestamp="2025-04-09T16:01:54.007+0200"
2025-04-09T16:01:54.007+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport received DATA flags=END_STREAM stream=3 len=0 data="": timestamp="2025-04-09T16:01:54.007+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":authority" = "github-eu.custom.entreprise.cloud": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":method" = "GET": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":path" = "/api/v3/apps/my-gh-app-name": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":scheme" = "https": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept" = "application/vnd.github.v3+json,application/vnd.github.stone-crop-preview+json": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "user-agent" = "go-github/v66.0.0": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "x-github-api-version" = "2022-11-28": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "authorization" = "Bearer ghs_XXXXXXXXXXXX": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.010+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept-encoding" = "gzip": timestamp="2025-04-09T16:01:54.010+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":authority" = "github-eu.custom.entreprise.cloud": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":method" = "POST": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":path" = "/api/v3/api/v3/app/installations/20/access_tokens": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":scheme" = "https": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept" = "application/vnd.github.v3+json": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "authorization" = "Bearer eyJhXXXXXXXXXXXXXX": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "content-length" = "0": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept-encoding" = "gzip": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "user-agent" = "Go-http-client/2.0": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":authority" = "github-eu.custom.entreprise.cloud": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":method" = "POST": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":path" = "/api/v3/api/v3/app/installations/20/access_tokens": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header ":scheme" = "https": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept" = "application/vnd.github.v3+json": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "authorization" = "Bearer eyJhXXXXXXXXXXXXXX": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "content-length" = "0": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "accept-encoding" = "gzip": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.012+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport encoding header "user-agent" = "Go-http-client/2.0": timestamp="2025-04-09T16:01:54.012+0200"
2025-04-09T16:01:54.054+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport received HEADERS flags=END_HEADERS stream=7 len=419: timestamp="2025-04-09T16:01:54.054+0200"
2025-04-09T16:01:54.054+0200 [INFO]  provider.terraform-provider-github_v6.6.0: 2025/04/09 16:01:54 http2: Transport received DATA flags=END_STREAM stream=7 len=110 data="\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\r\xcaA\n\x80 \x10F\xe1\xabĬK\x89v\xad\xa2\x8b\x84\xe9\x8f\t\x9913\xb6\x89\xee\x9e\xcb\xc7\xfb^\xca\x10q\x114\xd3\xeaB\xe7\x19\x01\x97&w\n\xf5\x14\x8a\xaf\xb9\xa5\xd3T\xae\xad\xf2\xd9ԡz\xcblm{bbң\xeeƗl\x1b\x03ߜ\x04\x83\x80\x1f\xf02\x99q\xb4\fQ\xfa~\x9a\xebJ\xaag\x00\x00\x00": timestamp="2025-04-09T16:01:54.054+0200"
2025-04-09T16:01:54.055+0200 [ERROR] provider.terraform-provider-github_v6.6.0: Response contains error diagnostic: tf_data_source_type=github_app_token tf_proto_version=5.6 tf_provider_addr=provider tf_req_id=e4e540f2-fb67-c853-70f9-c74460099588 tf_rpc=ReadDataSource diagnostic_summary="failed to create OAuth token from GitHub App: {\"message\":\"Bad credentials\",\"documentation_url\":\"https://docs.github.com/[email protected]/rest\"}" @module=sdk.proto diagnostic_detail="" diagnostic_severity=ERROR @caller=github.com/hashicorp/[email protected]/tfprotov5/internal/diag/diagnostics.go:58 timestamp="2025-04-09T16:01:54.054+0200"

Panic Output

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: TriageThis is being looked at and prioritizedType: BugSomething isn't working as documented

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions