Skip to content

Commit

Permalink
Implement sharing project with a group
Browse files Browse the repository at this point in the history
  • Loading branch information
Gauvain Pocentek committed Jul 16, 2016
1 parent dcf31a4 commit e7c4125
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/gl_objects/projects.py
Expand Up @@ -105,3 +105,7 @@
# or
member.delete()
# end members delete

# share
project.share(group.id, group.DEVELOPER_ACCESS)
# end share
6 changes: 6 additions & 0 deletions docs/gl_objects/projects.rst
Expand Up @@ -137,3 +137,9 @@ Remove a member from the project team:
.. literalinclude:: projects.py
:start-after: # members delete
:end-before: # end members delete

Share the project with a group:

.. literalinclude:: projects.py
:start-after: # share
:end-before: # end share
16 changes: 16 additions & 0 deletions gitlab/objects.py
Expand Up @@ -1948,6 +1948,22 @@ def unarchive_(self, **kwargs):
raise_error_from_response(r, GitlabCreateError, 201)
return Project(self.gitlab, r.json()) if r.status_code == 201 else self

def share(self, group_id, group_access, **kwargs):
"""Share the project with a group.
Args:
group_id (int): ID of the group.
group_access (int): Access level for the group.
Raises:
GitlabConnectionError: If the server cannot be reached.
GitlabCreateError: If the server fails to perform the request.
"""
url = "/projects/%s/share" % self.id
data = {'group_id': group_id, 'group_access': group_access}
r = self.gitlab._raw_post(url, data=data, **kwargs)
raise_error_from_response(r, GitlabCreateError, 201)


class TeamMember(GitlabObject):
_url = '/user_teams/%(team_id)s/members'
Expand Down

0 comments on commit e7c4125

Please sign in to comment.