integrations / terraform-provider-github

Terraform GitHub provider
https://www.terraform.io/docs/providers/github/
MIT License
912 stars 756 forks source link

[BUG]: Importing github_repository_environment_deployment_policy resource does not populate repository and environment fields. #2012

Open dcfsc opened 1 year ago

dcfsc commented 1 year ago

Expected Behavior

After import and terraform plan, should see

No changes. Your infrastructure matches the configuration.

Actual Behavior

  1. terraform plan
    # github_repository_environment_deployment_policy.feature must be replaced  
    -/+ resource "github_repository_environment_deployment_policy" "feature" {  
      + environment    = "dly" # forces replacement  
      ~ id             = "xxx-recs-event-streaming:dly:1212XXXX" -> (known after apply)  
      + repository     = "xxx-recs-event-streaming" # forces replacement  
        # (1 unchanged attribute hidden)  
    }

Terraform Version

$ terragrunt version Terraform v1.6.2 on linux_amd64

Affected Resource(s)

Terraform Configuration Files

resource github_repository_environment env {
  environment = var.env
  repository  = var.repository.name

  deployment_branch_policy {
    protected_branches     = true
    custom_branch_policies = true
  }
}

resource "github_repository_environment_deployment_policy" "feature" {  
  repository        = data.github_repository.xxxx.name  
  environment       = github_actions_environment.env.environment  
  branch_pattern = "feature/**"  
}

Steps to Reproduce

  1. Create an environment
  2. Add a deployment policy via the portal
  3. Define the policy in configuration:
  4. Import the policy
    $ tg import github_repository_environment_deployment_policy.feature xxx-recs-event-streaming:dly:1212XXXX  
  5. Examining the state -- note the nulls
    {  
    "mode": "managed",  
    "type": "github_repository_environment_deployment_policy",  
    "name": "master",  
    "provider": "provider[\"registry.terraform.io/integrations/github\"]",  
    "instances": [  
    {  
      "schema_version": 0,  
      "attributes": {  
        "branch_pattern": "master",  
        "environment": null,  <<<<< BAD
        "id": "xxx-recs-event-streaming:dly:1212XXXX",  
        "repository": null    <<<<<< BAD
      },  
      "sensitive_attributes": [],  
      "private": "xxxxxxx=="  
    }  
    ]  
    },
  6. workaround: patch the state directly and push the fixed state:
    {  
    "mode": "managed",  
    "type": "github_repository_environment_deployment_policy",  
    "name": "master",  
    "provider": "provider[\"registry.terraform.io/integrations/github\"]",  
    "instances": [  
    {  
      "schema_version": 0,  
      "attributes": {  
        "branch_pattern": "master",  
        "environment": "dly",  
        "id": "xxx-recs-event-streaming:dly:1212XXXX",  
        "repository": "xxx-recs-event-streaming"  
      },  
      "sensitive_attributes": [],  
      "private": "XXXXX=="  
    }  
    ]  
    },
  7. now a plan....
    
    ...
    github_repository_environment_deployment_policy.master: Refreshing state... [id=xxx-recs-event-streaming:dly:1212XXXX]  
    ...
    data.azurerm_subscription.current: Read complete after 0s [id=/subscriptions/XXXX]  

No changes. Your infrastructure matches the configuration.



### Debug Output

_No response_

### Panic Output

_No response_

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct
github-actions[bot] commented 1 year ago

πŸ‘‹ Hi! Thank you for this contribution! Just to let you know, our GitHub SDK team does a round of issue and PR reviews twice a week, every Monday and Friday! We have a process in place for prioritizing and responding to your input. Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labled with Status: Up for grabs. You & others like you are the reason all of this works! So thank you & happy coding! πŸš€

mw-root commented 9 months ago

This is a really frustrating bug. If you have piles of repos you sit waiting for it to re-create all these resources and your deployment environments are flapping in and out.

github-actions[bot] commented 4 days ago

πŸ‘‹ Hey Friends, this issue has been automatically marked as stale because it has no recent activity. It will be closed if no further activity occurs. Please add the Status: Pinned label if you feel that this issue needs to remain open/active. Thank you for your contributions and help in keeping things tidy!