File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,28 @@ def _repr(self):
70
70
return '<GitHub [{!r}]>' .format (self .session .auth )
71
71
return '<Anonymous GitHub at 0x{0:x}>' .format (id (self ))
72
72
73
+ @requires_auth
74
+ def activate_membership (self , organization ):
75
+ """Activate the membership to an organization.
76
+
77
+ :param organization:
78
+ the organization or organization login for which to activate the
79
+ membership
80
+ :type organization:
81
+ str
82
+ :type organization:
83
+ :class:`~github3.orgs.Organization`
84
+ :returns:
85
+ the activated membership
86
+ :rtype:
87
+ :class:`~github3.orgs.Membership`
88
+ """
89
+ organization_name = getattr (organization , 'login' , organization )
90
+ url = self ._build_url ('user' , 'memberships' , 'orgs' , organization_name )
91
+ data = {'state' : 'active' }
92
+ _json = self ._json (self ._patch (url , data = json .dumps (data )), 200 )
93
+ return self ._instance_or_null (orgs .Membership , _json )
94
+
73
95
@requires_auth
74
96
def add_email_addresses (self , addresses = []):
75
97
"""Add the addresses to the authenticated user's account.
Original file line number Diff line number Diff line change @@ -19,6 +19,13 @@ class TestGitHub(helper.UnitHelper):
19
19
described_class = GitHub
20
20
example_data = None
21
21
22
+ def test_activate_membership (self ):
23
+ self .instance .activate_membership ('github3py' )
24
+ self .session .patch .assert_called_once_with (
25
+ url_for ('user/memberships/orgs/github3py' ),
26
+ data = '{"state": "active"}'
27
+ )
28
+
22
29
def test_add_email_addresses (self ):
23
30
"""Verify request to add email addresses for a user."""
24
31
self .instance .add_email_addresses (['example1@example.com' ,
@@ -1285,6 +1292,10 @@ class TestGitHubRequiresAuthentication(
1285
1292
described_class = GitHub
1286
1293
example_data = None
1287
1294
1295
+ def test_activate_membership (self ):
1296
+ """Verify that activating a membership requires authentication."""
1297
+ self .assert_requires_auth (self .instance .activate_membership )
1298
+
1288
1299
def test_add_email_addresses (self ):
1289
1300
"""Verify a user must be authenticated to add email addresses."""
1290
1301
self .assert_requires_auth (self .instance .add_email_addresses , [])
<
2C7A
rect height="11.9298746" rx="2" width="173.684211" x="166.315789" y="23.8597491">
You can’t perform that action at this time.
0 commit comments