integrations / integrations/terraform-provider-github
[BUG]: Sporadic visibility update error on repo creation
- Dominant language
- Go
- Stars
- 1.2k
- Forks
- 1k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 8
Description
### Expected Behavior
Repo created and visibility changed to `internal`
### Actual Behavior
The terraform apply action fails with a `422 Failed to update visibility. A previous repository operation is still in progress.`
The issue is sporadic. Sometimes I can retry right away and it works on the second attempt. Other times it will fail 10 times in a row. I believe it's caused by a race condition with the GitHub API -- making the assumption that it's because the repository create operation isn't quite finished before the visibility update is attempted.
```
terraform apply -auto-approve \
-var "org=myorg" \
-var "repo=myrepo \
-var "repo_visibility=internal" \
-var "template=mytemplate" \
-var "team=myteam"
............
Plan: 30 to add, 0 to change, 0 to destroy.
github_repository.repo: Creating...
│ Error: PATCH https://api.github.com/repos/myorg/myrepo: 422 Failed to update visibility. A previous repository operation is still in progress. []
│
│ with github_repository.repo,
│ on repo.tf line 4, in resource "github_repository" "repo":
│ 4: resource "github_repository" "repo" {
│
╵
Error: Process completed with exit code 1.
```
### Terraform Version
1.1.7
This is happening on our self-hosted github agents and without testing thoroughly, I don't want to break our 100s of other terraform workflows.
### Affected Resource(s)
- github_repository
### Terraform Configuration Files
```hcl
locals {
template = toset([var.template])
}
resource "github_repository" "repo" {
name = var.repo
description = var.repo_desc
visibility = var.repo_visibility
auto_init = true
dynamic "template" {
for_each = local.template
content {
owner = var.org
repository = template.value
include_all_branches = true
}
}
}
resource "github_branch_default" "default" {
repository = github_repository.repo.name
branch = var.default_branch
}
```
### Steps to Reproduce
`terraform apply` -- see output above for full command. I can provide all the `.tf` files if necessary. Given that it happens on the very first step, I opted to not provide the other 6 `.tf` files
This is difficult to reproduce because it doesn't happen every time a repo creation happens.
### Debug Output
```shell
```
### Panic Output
```shell
```
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Contributor guide
Assessment
This issue has not been assessed yet.