1
2
3
4
5
6 package github
7
8 import (
9 "context"
10 "fmt"
11 )
12
13
14
15 type TeamListTeamMembersOptions struct {
16
17
18 Role string `url:"role,omitempty"`
19
20 ListOptions
21 }
22
23
24
25
26
27 func (s *TeamsService) ListTeamMembersByID(ctx context.Context, orgID, teamID int64, opts *TeamListTeamMembersOptions) ([]*User, *Response, error) {
28 u := fmt.Sprintf("organizations/%v/team/%v/members", orgID, teamID)
29 u, err := addOptions(u, opts)
30 if err != nil {
31 return nil, nil, err
32 }
33
34 req, err := s.client.NewRequest("GET", u, nil)
35 if err != nil {
36 return nil, nil, err
37 }
38
39 var members []*User
40 resp, err := s.client.Do(ctx, req, &members)
41 if err != nil {
42 return nil, resp, err
43 }
44
45 return members, resp, nil
46 }
47
48
49
50
51
52 func (s *TeamsService) ListTeamMembersBySlug(ctx context.Context, org, slug string, opts *TeamListTeamMembersOptions) ([]*User, *Response, error) {
53 u := fmt.Sprintf("orgs/%v/teams/%v/members", org, slug)
54 u, err := addOptions(u, opts)
55 if err != nil {
56 return nil, nil, err
57 }
58
59 req, err := s.client.NewRequest("GET", u, nil)
60 if err != nil {
61 return nil, nil, err
62 }
63
64 var members []*User
65 resp, err := s.client.Do(ctx, req, &members)
66 if err != nil {
67 return nil, resp, err
68 }
69
70 return members, resp, nil
71 }
72
73
74
75
76
77 func (s *TeamsService) GetTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string) (*Membership, *Response, error) {
78 u := fmt.Sprintf("organizations/%v/team/%v/memberships/%v", orgID, teamID, user)
79 req, err := s.client.NewRequest("GET", u, nil)
80 if err != nil {
81 return nil, nil, err
82 }
83
84 t := new(Membership)
85 resp, err := s.client.Do(ctx, req, t)
86 if err != nil {
87 return nil, resp, err
88 }
89
90 return t, resp, nil
91 }
92
93
94
95
96
97 func (s *TeamsService) GetTeamMembershipBySlug(ctx context.Context, org, slug, user string) (*Membership, *Response, error) {
98 u := fmt.Sprintf("orgs/%v/teams/%v/memberships/%v", org, slug, user)
99 req, err := s.client.NewRequest("GET", u, nil)
100 if err != nil {
101 return nil, nil, err
102 }
103
104 t := new(Membership)
105 resp, err := s.client.Do(ctx, req, t)
106 if err != nil {
107 return nil, resp, err
108 }
109
110 return t, resp, nil
111 }
112
113
114
115 type TeamAddTeamMembershipOptions struct {
116
117
118
119
120
121
122
123
124 Role string `json:"role,omitempty"`
125 }
126
127
128
129
130
131 func (s *TeamsService) AddTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string, opts *TeamAddTeamMembershipOptions) (*Membership, *Response, error) {
132 u := fmt.Sprintf("organizations/%v/team/%v/memberships/%v", orgID, teamID, user)
133 req, err := s.client.NewRequest("PUT", u, opts)
134 if err != nil {
135 return nil, nil, err
136 }
137
138 t := new(Membership)
139 resp, err := s.client.Do(ctx, req, t)
140 if err != nil {
141 return nil, resp, err
142 }
143
144 return t, resp, nil
145 }
146
147
148
149
150
151 func (s *TeamsService) AddTeamMembershipBySlug(ctx context.Context, org, slug, user string, opts *TeamAddTeamMembershipOptions) (*Membership, *Response, error) {
152 u := fmt.Sprintf("orgs/%v/teams/%v/memberships/%v", org, slug, user)
153 req, err := s.client.NewRequest("PUT", u, opts)
154 if err != nil {
155 return nil, nil, err
156 }
157
158 t := new(Membership)
159 resp, err := s.client.Do(ctx, req, t)
160 if err != nil {
161 return nil, resp, err
162 }
163
164 return t, resp, nil
165 }
166
167
168
169
170
171 func (s *TeamsService) RemoveTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string) (*Response, error) {
172 u := fmt.Sprintf("organizations/%v/team/%v/memberships/%v", orgID, teamID, user)
173 req, err := s.client.NewRequest("DELETE", u, nil)
174 if err != nil {
175 return nil, err
176 }
177
178 return s.client.Do(ctx, req, nil)
179 }
180
181
182
183
184
185 func (s *TeamsService) RemoveTeamMembershipBySlug(ctx context.Context, org, slug, user string) (*Response, error) {
186 u := fmt.Sprintf("orgs/%v/teams/%v/memberships/%v", org, slug, user)
187 req, err := s.client.NewRequest("DELETE", u, nil)
188 if err != nil {
189 return nil, err
190 }
191
192 return s.client.Do(ctx, req, nil)
193 }
194
195
196
197
198
199 func (s *TeamsService) ListPendingTeamInvitationsByID(ctx context.Context, orgID, teamID int64, opts *ListOptions) ([]*Invitation, *Response, error) {
200 u := fmt.Sprintf("organizations/%v/team/%v/invitations", orgID, teamID)
201 u, err := addOptions(u, opts)
202 if err != nil {
203 return nil, nil, err
204 }
205
206 req, err := s.client.NewRequest("GET", u, nil)
207 if err != nil {
208 return nil, nil, err
209 }
210
211 var pendingInvitations []*Invitation
212 resp, err := s.client.Do(ctx, req, &pendingInvitations)
213 if err != nil {
214 return nil, resp, err
215 }
216
217 return pendingInvitations, resp, nil
218 }
219
220
221
222
223
224 func (s *TeamsService) ListPendingTeamInvitationsBySlug(ctx context.Context, org, slug string, opts *ListOptions) ([]*Invitation, *Response, error) {
225 u := fmt.Sprintf("orgs/%v/teams/%v/invitations", org, slug)
226 u, err := addOptions(u, opts)
227 if err != nil {
228 return nil, nil, err
229 }
230
231 req, err := s.client.NewRequest("GET", u, nil)
232 if err != nil {
233 return nil, nil, err
234 }
235
236 var pendingInvitations []*Invitation
237 resp, err := s.client.Do(ctx, req, &pendingInvitations)
238 if err != nil {
239 return nil, resp, err
240 }
241
242 return pendingInvitations, resp, nil
243 }
244
View as plain text