@@ -2,7 +2,6 @@ package provider
2
2
3
3
import (
4
4
"context"
5
- "errors"
6
5
"log"
7
6
"strings"
8
7
@@ -139,23 +138,23 @@ func resourceGitlabProjectVariableRead(ctx context.Context, d *schema.ResourceDa
139
138
140
139
log .Printf ("[DEBUG] read gitlab project variable %q" , d .Id ())
141
140
142
- v , err := getProjectVariable ( ctx , client , project , key , environmentScope )
141
+ variable , _ , err := client . ProjectVariables . GetVariable ( project , key , nil , gitlab . WithContext ( ctx ), withEnvironmentScopeFilter ( ctx , environmentScope ) )
143
142
if err != nil {
144
- if errors . Is (err , errProjectVariableNotExist ) {
145
- log .Printf ("[DEBUG] read gitlab project variable %q was not found" , d .Id ())
143
+ if is404 (err ) {
144
+ log .Printf ("[DEBUG] read gitlab project variable %q was not found, removing from state " , d .Id ())
146
145
d .SetId ("" )
147
146
return nil
148
147
}
149
148
return augmentVariableClientError (d , err )
150
149
}
151
150
152
- d .Set ("key" , v .Key )
153
- d .Set ("value" , v .Value )
154
- d .Set ("variable_type" , v .VariableType )
151
+ d .Set ("key" , variable .Key )
152
+ d .Set ("value" , variable .Value )
153
+ d .Set ("variable_type" , variable .VariableType )
155
154
d .Set ("project" , project )
156
- d .Set ("protected" , v .Protected )
157
- d .Set ("masked" , v .Masked )
158
- d .Set ("environment_scope" , v .EnvironmentScope )
155
+ d .Set ("protected" , variable .Protected )
156
+ d .Set ("masked" , variable .Masked )
157
+ d .Set ("environment_scope" , variable .EnvironmentScope )
159
158
return nil
160
159
}
161
160
@@ -201,31 +200,3 @@ func resourceGitlabProjectVariableDelete(ctx context.Context, d *schema.Resource
201
200
_ , err := client .ProjectVariables .RemoveVariable (project , key , nil , withEnvironmentScopeFilter (ctx , environmentScope ))
202
201
return augmentVariableClientError (d , err )
203
202
}
204
-
205
- var errProjectVariableNotExist = errors .New ("project variable does not exist" )
206
-
207
- func getProjectVariable (ctx context.Context , client * gitlab.Client , project interface {}, key , environmentScope string ) (* gitlab.ProjectVariable , error ) {
208
- // List and filter variables manually to support GitLab versions < v13.4 (2020-08-22)
209
- // ref: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39209
210
-
211
- page := 1
212
-
213
- for {
214
- projectVariables , resp , err := client .ProjectVariables .ListVariables (project , & gitlab.ListProjectVariablesOptions {Page : page }, gitlab .WithContext (ctx ))
215
- if err != nil {
216
- return nil , err
217
- }
218
-
219
- for _ , v := range projectVariables {
220
- if v .Key == key && v .EnvironmentScope == environmentScope {
221
- return v , nil
222
- }
223
- }
224
-
225
- if resp .NextPage == 0 {
226
- return nil , errProjectVariableNotExist
227
- }
228
-
229
- page ++
230
- }
231
- }
0 commit comments