@@ -16,7 +16,23 @@ func resourceGitlabUser() *schema.Resource {
16
16
Update : resourceGitlabUserUpdate ,
17
17
Delete : resourceGitlabUserDelete ,
18
18
Importer : & schema.ResourceImporter {
19
- State : schema .ImportStatePassthrough ,
19
+ State : func (d * schema.ResourceData , meta interface {}) ([]* schema.ResourceData , error ) {
20
+ client := meta .(* gitlab.Client )
21
+ log .Printf ("[DEBUG] read gitlab user %s" , d .Id ())
22
+
23
+ id , _ := strconv .Atoi (d .Id ())
24
+
25
+ user , _ , err := client .Users .GetUser (id )
26
+ if err != nil {
27
+ return nil , err
28
+ }
29
+
30
+ resourceGitlabUserSetToState (d , user )
31
+ d .Set ("email" , user .Email )
32
+ d .Set ("is_admin" , user .IsAdmin )
33
+ d .Set ("is_external" , user .External )
34
+ return []* schema.ResourceData {d }, nil
35
+ },
20
36
},
21
37
22
38
Schema : map [string ]* schema.Schema {
@@ -26,7 +42,7 @@ func resourceGitlabUser() *schema.Resource {
26
42
},
27
43
"password" : {
28
44
Type : schema .TypeString ,
29
- Required : true ,
45
+ Optional : true ,
30
46
Sensitive : true ,
31
47
},
32
48
"email" : {
@@ -109,7 +125,7 @@ func resourceGitlabUserCreate(d *schema.ResourceData, meta interface{}) error {
109
125
110
126
func resourceGitlabUserRead (d * schema.ResourceData , meta interface {}) error {
111
127
client := meta .(* gitlab.Client )
112
- log .Printf ("[DEBUG] read gitlab user %s" , d .Id ())
128
+ log .Printf ("[DEBUG] import -- read gitlab user %s" , d .Id ())
113
129
114
130
id , _ := strconv .Atoi (d .Id ())
115
131
0 commit comments