Skip to content

Commit 9f3b7e1

Browse files
committed
Improve the context
1 parent 7fb5492 commit 9f3b7e1

File tree

5 files changed

+30
-33
lines changed

5 files changed

+30
-33
lines changed

bitbucket/bitbucket.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ type service struct {
113113
// the URL will be relative root of the base URL (ignoring the API suffix i.e., `/rest/api/1.0/`).
114114
// If specified, the value pointed to by body is JSON encoded and included as the
115115
// request body.
116-
func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error) {
116+
func (c *Client) NewRequest(ctx context.Context, method, urlStr string, body interface{}) (*http.Request, error) {
117117
u, err := c.baseURL.Parse(urlStr)
118118
if err != nil {
119119
return nil, err
@@ -130,7 +130,7 @@ func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Requ
130130
}
131131
}
132132

133-
req, err := http.NewRequest(method, u.String(), buf)
133+
req, err := http.NewRequestWithContext(ctx, method, u.String(), buf)
134134
if err != nil {
135135
return nil, err
136136
}
@@ -151,18 +151,15 @@ func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Requ
151151
// interface, the raw response body will be written to v, without attempting to
152152
// first decode it.
153153
//
154-
// The provided ctx must be non-nil. If it is canceled or times out,
155-
// ctx.Err() will be returned.
156-
func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) (*Response, error) {
157-
req = req.WithContext(ctx)
158-
154+
// If the context is canceled or times out, ctx.Err() will be returned.
155+
func (c *Client) Do(req *http.Request, v interface{}) (*Response, error) {
159156
resp, err := c.client.Do(req)
160157
if err != nil {
161158
// If we got an error, and the context has been canceled,
162159
// the context's error is probably more useful.
163160
select {
164-
case <-ctx.Done():
165-
return nil, ctx.Err()
161+
case <-req.Context().Done():
162+
return nil, req.Context().Err()
166163
default:
167164
}
168165

bitbucket/pulls.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (s *PullRequestsService) List(ctx context.Context, projectKey, repo string,
8585
return nil, nil, err
8686
}
8787

88-
req, err := s.client.NewRequest("GET", u, nil)
88+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
8989
if err != nil {
9090
return nil, nil, err
9191
}
@@ -94,7 +94,7 @@ func (s *PullRequestsService) List(ctx context.Context, projectKey, repo string,
9494
page := &pagedResponse{
9595
Values: &pulls,
9696
}
97-
resp, err := s.client.Do(ctx, req, page)
97+
resp, err := s.client.Do(req, page)
9898
if err != nil {
9999
return nil, resp, err
100100
}
@@ -108,13 +108,13 @@ func (s *PullRequestsService) List(ctx context.Context, projectKey, repo string,
108108
func (s *PullRequestsService) Get(ctx context.Context, projectKey, repo string, id int) (*PullRequest, *Response, error) {
109109
u := fmt.Sprintf("projects/%s/repos/%s/pull-requests/%v", projectKey, repo, id)
110110

111-
req, err := s.client.NewRequest("GET", u, nil)
111+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
112112
if err != nil {
113113
return nil, nil, err
114114
}
115115

116116
pull := new(PullRequest)
117-
resp, err := s.client.Do(ctx, req, pull)
117+
resp, err := s.client.Do(req, pull)
118118
if err != nil {
119119
return nil, resp, err
120120
}

bitbucket/repos.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func (s *RepositoriesService) List(ctx context.Context, opts *ListRepositoriesOp
9696
return nil, nil, err
9797
}
9898

99-
req, err := s.client.NewRequest("GET", u, nil)
99+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
100100
if err != nil {
101101
return nil, nil, err
102102
}
@@ -105,7 +105,7 @@ func (s *RepositoriesService) List(ctx context.Context, opts *ListRepositoriesOp
105105
page := &pagedResponse{
106106
Values: &repos,
107107
}
108-
resp, err := s.client.Do(ctx, req, page)
108+
resp, err := s.client.Do(req, page)
109109
if err != nil {
110110
return nil, resp, err
111111
}
@@ -124,7 +124,7 @@ func (s *RepositoriesService) ListByProject(ctx context.Context, projectKey stri
124124
return nil, nil, err
125125
}
126126

127-
req, err := s.client.NewRequest("GET", u, nil)
127+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
128128
if err != nil {
129129
return nil, nil, err
130130
}
@@ -133,7 +133,7 @@ func (s *RepositoriesService) ListByProject(ctx context.Context, projectKey stri
133133
page := &pagedResponse{
134134
Values: &repos,
135135
}
136-
resp, err := s.client.Do(ctx, req, page)
136+
resp, err := s.client.Do(req, page)
137137
if err != nil {
138138
return nil, resp, err
139139
}
@@ -147,13 +147,13 @@ func (s *RepositoriesService) ListByProject(ctx context.Context, projectKey stri
147147
func (s *RepositoriesService) Get(ctx context.Context, projectKey, repositorySlug string) (*Repository, *Response, error) {
148148
u := fmt.Sprintf("projects/%s/repos/%s", projectKey, repositorySlug)
149149

150-
req, err := s.client.NewRequest("GET", u, nil)
150+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
151151
if err != nil {
152152
return nil, nil, err
153153
}
154154

155155
repo := new(Repository)
156-
resp, err := s.client.Do(ctx, req, repo)
156+
resp, err := s.client.Do(req, repo)
157157
if err != nil {
158158
return nil, resp, err
159159
}
@@ -180,7 +180,7 @@ func (s *RepositoriesService) ListRecent(ctx context.Context, opts *RecentReposO
180180
return nil, nil, err
181181
}
182182

183-
req, err := s.client.NewRequest("GET", u, nil)
183+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
184184
if err != nil {
185185
return nil, nil, err
186186
}
@@ -189,7 +189,7 @@ func (s *RepositoriesService) ListRecent(ctx context.Context, opts *RecentReposO
189189
page := &pagedResponse{
190190
Values: &repos,
191191
}
192-
resp, err := s.client.Do(ctx, req, page)
192+
resp, err := s.client.Do(req, page)
193193
if err != nil {
194194
return nil, resp, err
195195
}
@@ -203,13 +203,13 @@ func (s *RepositoriesService) ListRecent(ctx context.Context, opts *RecentReposO
203203
func (s *RepositoriesService) GetDefaultBranch(ctx context.Context, projectKey, repositorySlug string) (*Branch, *Response, error) {
204204
u := fmt.Sprintf("projects/%s/repos/%s/branches/default", projectKey, repositorySlug)
205205

206-
req, err := s.client.NewRequest("GET", u, nil)
206+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
207207
if err != nil {
208208
return nil, nil, err
209209
}
210210

211211
b := new(Branch)
212-
resp, err := s.client.Do(ctx, req, b)
212+
resp, err := s.client.Do(req, b)
213213
if err != nil {
214214
return nil, resp, err
215215
}

bitbucket/repos_hooks.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ type WebHookListOptions struct {
2828
func (s *RepositoriesService) CreateWebHooks(ctx context.Context, projectKey, repositorySlug string, hook *WebHook) (*WebHook, *Response, error) {
2929
u := fmt.Sprintf("projects/%s/repos/%s/webhooks", projectKey, repositorySlug)
3030

31-
req, err := s.client.NewRequest("POST", u, hook)
31+
req, err := s.client.NewRequest(ctx, "POST", u, hook)
3232
if err != nil {
3333
return nil, nil, err
3434
}
3535

3636
v := new(WebHook)
37-
resp, err := s.client.Do(ctx, req, v)
37+
resp, err := s.client.Do(req, v)
3838
if err != nil {
3939
return nil, resp, err
4040
}
@@ -52,7 +52,7 @@ func (s *RepositoriesService) ListWebHooks(ctx context.Context, projectKey, repo
5252
return nil, nil, err
5353
}
5454

55-
req, err := s.client.NewRequest("GET", u, nil)
55+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
5656
if err != nil {
5757
return nil, nil, err
5858
}
@@ -61,7 +61,7 @@ func (s *RepositoriesService) ListWebHooks(ctx context.Context, projectKey, repo
6161
page := &pagedResponse{
6262
Values: &hooks,
6363
}
64-
resp, err := s.client.Do(ctx, req, page)
64+
resp, err := s.client.Do(req, page)
6565
if err != nil {
6666
return nil, resp, err
6767
}

bitbucket/users.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ type User struct {
2929
// authenticated user slug as string.
3030
func (s *UsersService) WhoAmI(ctx context.Context) (string, *Response, error) {
3131
// we use slash at the beginning in this case to avoid having the URL relative to the suffix `rest/api/1.0/`
32-
req, err := s.client.NewRequest("GET", "/plugins/servlet/applinks/whoami", nil)
32+
req, err := s.client.NewRequest(ctx, "GET", "/plugins/servlet/applinks/whoami", nil)
3333
if err != nil {
3434
return "", nil, err
3535
}
3636

3737
buf := new(bytes.Buffer)
38-
resp, err := s.client.Do(ctx, req, buf)
38+
resp, err := s.client.Do(req, buf)
3939
if err != nil {
4040
return "", resp, err
4141
}
@@ -60,13 +60,13 @@ func (s *UsersService) Myself(ctx context.Context) (*User, *Response, error) {
6060
func (s *UsersService) Get(ctx context.Context, slug string) (*User, *Response, error) {
6161
u := fmt.Sprintf("users/%s", slug)
6262

63-
req, err := s.client.NewRequest("GET", u, nil)
63+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
6464
if err != nil {
6565
return nil, nil, err
6666
}
6767

6868
user := new(User)
69-
resp, err := s.client.Do(ctx, req, user)
69+
resp, err := s.client.Do(req, user)
7070
if err != nil {
7171
return nil, resp, err
7272
}
@@ -138,7 +138,7 @@ func (s *UsersService) List(ctx context.Context, opts *ListUsersOptions) ([]*Use
138138
return nil, nil, err
139139
}
140140

141-
req, err := s.client.NewRequest("GET", u, nil)
141+
req, err := s.client.NewRequest(ctx, "GET", u, nil)
142142
if err != nil {
143143
return nil, nil, err
144144
}
@@ -147,7 +147,7 @@ func (s *UsersService) List(ctx context.Context, opts *ListUsersOptions) ([]*Use
147147
page := &pagedResponse{
148148
Values: &users,
149149
}
150-
resp, err := s.client.Do(ctx, req, page)
150+
resp, err := s.client.Do(req, page)
151151
if err != nil {
152152
return nil, resp, err
153153
}

0 commit comments

Comments
 (0)