Skip to content

Commit 2209d29

Browse files
committed
Use context-aware CRUD functions for Project Protected Branches data source
1 parent 41a6aa2 commit 2209d29

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

gitlab/data_source_gitlab_project_protected_branches.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
package gitlab
22

33
import (
4+
"context"
45
"fmt"
56
"log"
67

8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
79
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
810
"github.com/mitchellh/hashstructure"
911
"github.com/xanzy/go-gitlab"
1012
)
1113

1214
func dataSourceGitlabProjectProtectedBranches() *schema.Resource {
1315
return &schema.Resource{
14-
Read: dataSourceGitlabProjectProtectedBranchesRead,
16+
ReadContext: dataSourceGitlabProjectProtectedBranchesRead,
1517
Schema: map[string]*schema.Schema{
1618
"project_id": {
1719
Type: schema.TypeString,
@@ -58,26 +60,26 @@ type stateProtectedBranch struct {
5860
CodeOwnerApprovalRequired bool `json:"code_owner_approval_required,omitempty" mapstructure:"code_owner_approval_required,omitempty"`
5961
}
6062

61-
func dataSourceGitlabProjectProtectedBranchesRead(d *schema.ResourceData, meta interface{}) error {
63+
func dataSourceGitlabProjectProtectedBranchesRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
6264
client := meta.(*gitlab.Client)
6365

6466
log.Printf("[INFO] Reading Gitlab protected branch")
6567

6668
project := d.Get("project_id")
6769

68-
projectObject, _, err := client.Projects.GetProject(project, &gitlab.GetProjectOptions{})
70+
projectObject, _, err := client.Projects.GetProject(project, &gitlab.GetProjectOptions{}, gitlab.WithContext(ctx))
6971
if err != nil {
70-
return err
72+
return diag.FromErr(err)
7173
}
7274

7375
allProtectedBranches := make([]stateProtectedBranch, 0)
7476
totalPages := -1
7577
opts := &gitlab.ListProtectedBranchesOptions{}
7678
for opts.Page = 0; opts.Page != totalPages; opts.Page++ {
7779
// Get protected branch by project ID/path and branch name
78-
pbs, resp, err := client.ProtectedBranches.ListProtectedBranches(project, opts)
80+
pbs, resp, err := client.ProtectedBranches.ListProtectedBranches(project, opts, gitlab.WithContext(ctx))
7981
if err != nil {
80-
return err
82+
return diag.FromErr(err)
8183
}
8284
totalPages = resp.TotalPages
8385
for _, pb := range pbs {
@@ -94,12 +96,12 @@ func dataSourceGitlabProjectProtectedBranchesRead(d *schema.ResourceData, meta i
9496

9597
// lintignore:R004 // TODO: Resolve this tfproviderlint issue
9698
if err := d.Set("protected_branches", allProtectedBranches); err != nil {
97-
return err
99+
return diag.FromErr(err)
98100
}
99101

100102
h, err := hashstructure.Hash(*opts, nil)
101103
if err != nil {
102-
return err
104+
return diag.FromErr(err)
103105
}
104106

105107
d.SetId(fmt.Sprintf("%d-%d", projectObject.ID, h))

0 commit comments

Comments
 (0)