coder / coder/internal

Git Flow: terraform-provider-coder: create new `coder_git_repo` data source

Offen
#404 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
m
Vorherrschende Sprache
Keine Sprachdaten
Sterne
3
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Create a new `coder_git_repo` Coder data source to support the following use-cases:

1. Pre-defined Git repo with hard-coded branch:
```
data "coder_git_repo" "repo" {
provider = "my-github"
url = "git@github.com:coder/coder.git"
}

module "git-clone" {
url = data.coder_git_repo.repo.url
branch_name = "main"
git_providers = {
"git@github.com": "my-github"
}
}
```

2. Pre-defined Git repo with configurable branch:

```
data "coder_git_repo" "repo" {
provider = "my-github"
url = "git@github.com:coder/coder.git"
}

data "coder_parameter" "git_branch" {
type = "string"
default = data.coder_git_repo.repo.default_branch
}

module "git-clone" {
url = data.coder_git_repo.repo.url
branch_name = data.coder_parameter.git_branch.value
git_providers = {
"git@github.com": "my-github"
}
}
```

2. Configurable Git repo with configurable branch:

```
data "coder_parameter" "git_repo" {
type = "string"
default = "git@github.com:coder/coder.git"
}

data "coder_git_repo" "repo" {
provider = "my-github"
url = data.coder_parameter.git_repo.value
}

data "coder_parameter" "git_branch" {
type = "string"
default = data.coder_git_repo.repo.default_branch
}

module "git-clone" {
url = data.coder_git_repo.repo.url
branch_name = data.coder_parameter.git_branch.value
git_providers = {
"git@github.com": "my-github"
}
}
```

Implementation Notes:
* `coderd` will be responsible for querying the remote repository and setting the required data in the data source based on user inputs. We need to be using the existing user's oauth2 tokens to authenticate with the Git provider. Doing this in the provider means that typographical errors or issues cloning the repo will only be discovered at plan/apply time, and not while the user is still filling out the form.
* If possible, we should only allow one `coder_git_repo` data source per template.
* If possible, we should ensure that all `coder_parameter` references to this data source are immutable. Rationale: if a user later changes the git repo linked to their workspace, the expected behaviour is not clear.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start by reviewing the existing terraform-provider-coder data-source patterns and the coderd responsibilities described in the implementation notes. Define the data source's URL, provider, and default_branch behavior for the three examples, then verify OAuth-backed repository lookup, single-data-source limits, and immutable parameter references meet the stated use cases.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
terraform
Bereich
infrastructure
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.