Skip to content

Commit 8d034b7

Browse files
committed
resource/gitlab_group_label: Use GET API instead of list API to retrieve single label
1 parent 49db985 commit 8d034b7

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

internal/provider/resource_gitlab_group_label.go

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ func resourceGitlabGroupLabelCreate(ctx context.Context, d *schema.ResourceData,
7272
}
7373

7474
d.SetId(label.Name)
75-
7675
return resourceGitlabGroupLabelRead(ctx, d, meta)
7776
}
7877

@@ -82,27 +81,18 @@ func resourceGitlabGroupLabelRead(ctx context.Context, d *schema.ResourceData, m
8281
labelName := d.Id()
8382
log.Printf("[DEBUG] read gitlab group label %s/%s", group, labelName)
8483

85-
page := 1
86-
labelsLen := 0
87-
for page == 1 || labelsLen != 0 {
88-
labels, _, err := client.GroupLabels.ListGroupLabels(group, &gitlab.ListGroupLabelsOptions{ListOptions: gitlab.ListOptions{Page: page}}, gitlab.WithContext(ctx))
89-
if err != nil {
90-
return diag.FromErr(err)
91-
}
92-
for _, label := range labels {
93-
if label.Name == labelName {
94-
d.Set("description", label.Description)
95-
d.Set("color", label.Color)
96-
d.Set("name", label.Name)
97-
return nil
98-
}
84+
label, _, err := client.GroupLabels.GetGroupLabel(group, labelName, gitlab.WithContext(ctx))
85+
if err != nil {
86+
if is404(err) {
87+
log.Printf("[DEBUG] failed to read gitlab label %s/%s, removing from state", group, labelName)
88+
d.SetId("")
89+
return nil
9990
}
100-
labelsLen = len(labels)
101-
page = page + 1
91+
return diag.FromErr(err)
10292
}
103-
104-
log.Printf("[DEBUG] failed to read gitlab label %s/%s", group, labelName)
105-
d.SetId("")
93+
d.Set("description", label.Description)
94+
d.Set("color", label.Color)
95+
d.Set("name", label.Name)
10696
return nil
10797
}
10898

0 commit comments

Comments
 (0)