0
# Organization Management
1
2
Complete organization operations including team management, member access, organization repositories, webhooks, and organization settings.
3
4
## Capabilities
5
6
### Organization Access & Information
7
8
Core operations for accessing organization information.
9
10
```python { .api }
11
class GitHub:
12
def organization(self, login):
13
"""
14
Get an organization by login name.
15
16
Args:
17
login (str): Organization login name
18
19
Returns:
20
Organization: Organization object or None if not found
21
"""
22
23
def organizations(self):
24
"""
25
List organizations for the authenticated user.
26
27
Returns:
28
iterator: Iterator of Organization objects
29
"""
30
31
def organizations_with(self, username):
32
"""
33
List public organizations for a user.
34
35
Args:
36
username (str): GitHub username
37
38
Returns:
39
iterator: Iterator of Organization objects
40
"""
41
```
42
43
### Organization Membership
44
45
Managing organization memberships and invitations.
46
47
```python { .api }
48
class Organization:
49
def members(self, filter="all", role="all"):
50
"""
51
List organization members.
52
53
Args:
54
filter (str): Member filter ('all', '2fa_disabled')
55
role (str): Member role ('all', 'admin', 'member')
56
57
Returns:
58
iterator: Iterator of User objects
59
"""
60
61
def public_members(self):
62
"""
63
List public members of the organization.
64
65
Returns:
66
iterator: Iterator of User objects
67
"""
68
69
def is_member(self, username):
70
"""
71
Check if user is a member of the organization.
72
73
Args:
74
username (str): GitHub username
75
76
Returns:
77
bool: True if user is a member
78
"""
79
80
def is_public_member(self, username):
81
"""
82
Check if user is a public member.
83
84
Args:
85
username (str): GitHub username
86
87
Returns:
88
bool: True if user is a public member
89
"""
90
91
def add_or_update_membership(self, username, role="member"):
92
"""
93
Add or update organization membership.
94
95
Args:
96
username (str): GitHub username
97
role (str): Member role ('admin', 'member')
98
99
Returns:
100
Membership: Membership object
101
"""
102
103
def remove_membership(self, username):
104
"""
105
Remove a user from the organization.
106
107
Args:
108
username (str): GitHub username
109
110
Returns:
111
bool: True if successful
112
"""
113
```
114
115
### Team Management
116
117
Managing organization teams and team memberships.
118
119
```python { .api }
120
class Organization:
121
def teams(self):
122
"""
123
List organization teams.
124
125
Returns:
126
iterator: Iterator of Team objects
127
"""
128
129
def team(self, team_id):
130
"""
131
Get a team by ID.
132
133
Args:
134
team_id (int): Team ID
135
136
Returns:
137
Team: Team object or None
138
"""
139
140
def team_by_name(self, team_name):
141
"""
142
Get a team by name.
143
144
Args:
145
team_name (str): Team name
146
147
Returns:
148
Team: Team object or None
149
"""
150
151
def create_team(self, name, repo_names=[], permission="pull", privacy="secret", description="", parent_team_id=None):
152
"""
153
Create a new team.
154
155
Args:
156
name (str): Team name
157
repo_names (list): Repository names to add
158
permission (str): Default permission ('pull', 'push', 'admin')
159
privacy (str): Team privacy ('secret', 'closed')
160
description (str): Team description
161
parent_team_id (int, optional): Parent team ID
162
163
Returns:
164
Team: Created team object
165
"""
166
167
class Team:
168
def members(self, role="all"):
169
"""
170
List team members.
171
172
Args:
173
role (str): Member role ('all', 'member', 'maintainer')
174
175
Returns:
176
iterator: Iterator of User objects
177
"""
178
179
def add_member(self, username, role="member"):
180
"""
181
Add a member to the team.
182
183
Args:
184
username (str): GitHub username
185
role (str): Member role ('member', 'maintainer')
186
187
Returns:
188
bool: True if successful
189
"""
190
191
def remove_member(self, username):
192
"""
193
Remove a member from the team.
194
195
Args:
196
username (str): GitHub username
197
198
Returns:
199
bool: True if successful
200
"""
201
202
def edit(self, name=None, description=None, privacy=None, permission=None, parent_team_id=None):
203
"""
204
Edit team settings.
205
206
Args:
207
name (str, optional): New team name
208
description (str, optional): New description
209
privacy (str, optional): Privacy setting
210
permission (str, optional): Default permission
211
parent_team_id (int, optional): Parent team ID
212
213
Returns:
214
bool: True if successful
215
"""
216
217
def delete(self):
218
"""
219
Delete this team.
220
221
Returns:
222
bool: True if successful
223
"""
224
```
225
226
### Organization Repositories
227
228
Managing organization repositories.
229
230
```python { .api }
231
class Organization:
232
def repositories(self, type="all", sort="created", direction="desc"):
233
"""
234
List organization repositories.
235
236
Args:
237
type (str): Repository type ('all', 'public', 'private', 'forks', 'sources', 'member')
238
sort (str): Sort by ('created', 'updated', 'pushed', 'full_name')
239
direction (str): Sort direction ('asc', 'desc')
240
241
Returns:
242
iterator: Iterator of Repository objects
243
"""
244
245
def repository(self, name):
246
"""
247
Get an organization repository.
248
249
Args:
250
name (str): Repository name
251
252
Returns:
253
Repository: Repository object or None
254
"""
255
256
class Team:
257
def repositories(self):
258
"""
259
List repositories accessible to this team.
260
261
Returns:
262
iterator: Iterator of Repository objects
263
"""
264
265
def add_repository(self, repository, permission="pull"):
266
"""
267
Add a repository to the team.
268
269
Args:
270
repository (str or Repository): Repository name or object
271
permission (str): Permission level ('pull', 'push', 'admin')
272
273
Returns:
274
bool: True if successful
275
"""
276
277
def remove_repository(self, repository):
278
"""
279
Remove a repository from the team.
280
281
Args:
282
repository (str or Repository): Repository name or object
283
284
Returns:
285
bool: True if successful
286
"""
287
```
288
289
### Organization Settings
290
291
Managing organization settings and configuration.
292
293
```python { .api }
294
class Organization:
295
def edit(self, billing_email=None, company=None, email=None, location=None, name=None, description=None, **kwargs):
296
"""
297
Edit organization profile.
298
299
Args:
300
billing_email (str, optional): Billing email
301
company (str, optional): Company name
302
email (str, optional): Public email
303
location (str, optional): Location
304
name (str, optional): Display name
305
description (str, optional): Description
306
**kwargs: Additional organization settings
307
308
Returns:
309
bool: True if successful
310
"""
311
312
def create_hook(self, name, config, events=["push"], active=True):
313
"""
314
Create an organization webhook.
315
316
Args:
317
name (str): Hook name
318
config (dict): Hook configuration
319
events (list): Events to trigger on
320
active (bool): Whether hook is active
321
322
Returns:
323
Hook: Created hook object
324
"""
325
326
def hooks(self):
327
"""
328
List organization webhooks.
329
330
Returns:
331
iterator: Iterator of Hook objects
332
"""
333
```
334
335
## Organization Model Classes
336
337
```python { .api }
338
class Organization:
339
"""Full organization object with all data and methods."""
340
login: str
341
id: int
342
name: str
343
company: str
344
blog: str
345
location: str
346
email: str
347
description: str
348
public_repos: int
349
public_gists: int
350
followers: int
351
following: int
352
html_url: str
353
created_at: str
354
updated_at: str
355
type: str
356
total_private_repos: int
357
owned_private_repos: int
358
private_gists: int
359
disk_usage: int
360
collaborators: int
361
billing_email: str
362
plan: dict
363
default_repository_permission: str
364
members_can_create_repositories: bool
365
two_factor_requirement_enabled: bool
366
367
def edit(self, **kwargs): ...
368
def members(self): ...
369
def teams(self): ...
370
def repositories(self): ...
371
def create_team(self, name, **kwargs): ...
372
373
class ShortOrganization:
374
"""Abbreviated organization object."""
375
login: str
376
id: int
377
description: str
378
379
class Team:
380
"""Organization team."""
381
id: int
382
name: str
383
slug: str
384
description: str
385
privacy: str # 'secret' or 'closed'
386
permission: str # 'pull', 'push', 'admin'
387
members_count: int
388
repos_count: int
389
organization: 'ShortOrganization'
390
html_url: str
391
created_at: str
392
updated_at: str
393
parent: 'Team'
394
395
def edit(self, **kwargs): ...
396
def delete(self): ...
397
def members(self): ...
398
def add_member(self, username, role): ...
399
def repositories(self): ...
400
401
class ShortTeam:
402
"""Abbreviated team object."""
403
id: int
404
name: str
405
slug: str
406
permission: str
407
408
class Membership:
409
"""Organization membership."""
410
url: str
411
state: str # 'active' or 'pending'
412
role: str # 'admin' or 'member'
413
organization_url: str
414
organization: 'Organization'
415
user: 'User'
416
417
class Invitation:
418
"""Organization invitation."""
419
id: int
420
login: str
421
email: str
422
role: str
423
created_at: str
424
inviter: 'User'
425
team_count: int
426
invitation_teams_url: str
427
```