@@ -98,6 +98,59 @@ func TestAccGitlabProjectProtectedEnvironment_basic(t *testing.T) {
98
98
})
99
99
}
100
100
101
+ func TestAccGitlabProjectProtectedEnvironment_regressionIssue1132 (t * testing.T ) {
102
+ testAccCheckEE (t )
103
+
104
+ // Set up project environment.
105
+ project := testAccCreateProject (t )
106
+ environment := testAccCreateProjectEnvironment (t , project .ID , & gitlab.CreateEnvironmentOptions {
107
+ Name : gitlab .String (acctest .RandomWithPrefix ("test-protected-environment" )),
108
+ })
109
+
110
+ // Set up project user.
111
+ user := testAccCreateUsers (t , 1 )[0 ]
112
+ testAccAddProjectMembers (t , project .ID , []* gitlab.User {user })
113
+
114
+ // Set up group access.
115
+ group := testAccCreateGroups (t , 1 )[0 ]
116
+ if _ , err := testGitlabClient .Projects .ShareProjectWithGroup (project .ID , & gitlab.ShareWithGroupOptions {
117
+ GroupID : & group .ID ,
118
+ GroupAccess : gitlab .AccessLevel (gitlab .MaintainerPermissions ),
119
+ }); err != nil {
120
+ t .Fatalf ("unable to share project %d with group %d" , project .ID , group .ID )
121
+ }
122
+
123
+ additionalGroup := testAccCreateGroups (t , 1 )[0 ]
124
+ if _ , err := testGitlabClient .Projects .ShareProjectWithGroup (project .ID , & gitlab.ShareWithGroupOptions {
125
+ GroupID : & additionalGroup .ID ,
126
+ GroupAccess : gitlab .AccessLevel (gitlab .MaintainerPermissions ),
127
+ }); err != nil {
128
+ t .Fatalf ("unable to share project %d with group %d" , project .ID , additionalGroup .ID )
129
+ }
130
+
131
+ resource .ParallelTest (t , resource.TestCase {
132
+ ProviderFactories : providerFactories ,
133
+ CheckDestroy : testAccCheckGitlabProjectProtectedEnvironmentDestroy (project .ID , environment .Name ),
134
+ Steps : []resource.TestStep {
135
+ // Create a basic protected environment.
136
+ {
137
+ Config : fmt .Sprintf (`
138
+ resource "gitlab_project_protected_environment" "this" {
139
+ project = %d
140
+ environment = %q
141
+ deploy_access_levels {
142
+ access_level = "developer"
143
+ }
144
+
145
+ deploy_access_levels {
146
+ group_id = %d
147
+ }
148
+ }` , project .ID , environment .Name , additionalGroup .ID ),
149
+ },
150
+ },
151
+ })
152
+ }
153
+
101
154
func testAccCheckGitlabProjectProtectedEnvironmentDestroy (projectID int , environmentName string ) resource.TestCheckFunc {
102
155
return func (s * terraform.State ) error {
103
156
_ , _ , err := testGitlabClient .ProtectedEnvironments .GetProtectedEnvironment (projectID , environmentName )
0 commit comments