Skip to content

Commit f618f03

Browse files
committed
resource/gitlab_label: Use GET API instead of list API to retrieve single label
1 parent bdc93f0 commit f618f03

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

internal/provider/resource_gitlab_label.go

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,27 +77,19 @@ func resourceGitlabLabelRead(ctx context.Context, d *schema.ResourceData, meta i
7777
labelName := d.Id()
7878
log.Printf("[DEBUG] read gitlab label %s/%s", project, labelName)
7979

80-
page := 1
81-
labelsLen := 0
82-
for page == 1 || labelsLen != 0 {
83-
labels, _, err := client.Labels.ListLabels(project, &gitlab.ListLabelsOptions{ListOptions: gitlab.ListOptions{Page: page}}, gitlab.WithContext(ctx))
84-
if err != nil {
85-
return diag.FromErr(err)
86-
}
87-
for _, label := range labels {
88-
if label.Name == labelName {
89-
d.Set("description", label.Description)
90-
d.Set("color", label.Color)
91-
d.Set("name", label.Name)
92-
return nil
93-
}
80+
label, _, err := client.Labels.GetLabel(project, labelName, gitlab.WithContext(ctx))
81+
if err != nil {
82+
if is404(err) {
83+
log.Printf("[DEBUG] failed to read gitlab label %s/%s", project, labelName)
84+
d.SetId("")
85+
return nil
9486
}
95-
labelsLen = len(labels)
96-
page = page + 1
87+
return diag.FromErr(err)
9788
}
9889

99-
log.Printf("[DEBUG] failed to read gitlab label %s/%s", project, labelName)
100-
d.SetId("")
90+
d.Set("description", label.Description)
91+
d.Set("color", label.Color)
92+
d.Set("name", label.Name)
10193
return nil
10294
}
10395

0 commit comments

Comments
 (0)