diff options
Diffstat (limited to 'vendor/github.com/xanzy/go-gitlab/groups.go')
-rw-r--r-- | vendor/github.com/xanzy/go-gitlab/groups.go | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/vendor/github.com/xanzy/go-gitlab/groups.go b/vendor/github.com/xanzy/go-gitlab/groups.go index 1b8a0bea82..2aae865390 100644 --- a/vendor/github.com/xanzy/go-gitlab/groups.go +++ b/vendor/github.com/xanzy/go-gitlab/groups.go @@ -286,8 +286,7 @@ func (s *GroupsService) SearchGroup(query string, options ...RequestOptionFunc) return g, resp, err } -// ListGroupProjectsOptions represents the available ListGroupProjects() -// options. +// ListGroupProjectsOptions represents the available ListGroup() options. // // GitLab API docs: // https://docs.gitlab.com/ce/api/groups.html#list-a-group-39-s-projects @@ -333,8 +332,7 @@ func (s *GroupsService) ListGroupProjects(gid interface{}, opt *ListGroupProject return p, resp, err } -// ListSubgroupsOptions represents the available ListSubgroupsOptions() -// options. +// ListSubgroupsOptions represents the available ListSubgroups() options. // // GitLab API docs: // https://docs.gitlab.com/ce/api/groups.html#list-a-groups-s-subgroups @@ -365,6 +363,38 @@ func (s *GroupsService) ListSubgroups(gid interface{}, opt *ListSubgroupsOptions return g, resp, err } +// ListDescendantGroupsOptions represents the available ListDescendantGroups() +// options. +// +// GitLab API docs: +// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-descendant-groups +type ListDescendantGroupsOptions ListGroupsOptions + +// ListDescendantGroups gets a list of subgroups for a given project. +// +// GitLab API docs: +// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-descendant-groups +func (s *GroupsService) ListDescendantGroups(gid interface{}, opt *ListDescendantGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error) { + group, err := parseID(gid) + if err != nil { + return nil, nil, err + } + u := fmt.Sprintf("groups/%s/descendant_groups", pathEscape(group)) + + req, err := s.client.NewRequest("GET", u, opt, options) + if err != nil { + return nil, nil, err + } + + var g []*Group + resp, err := s.client.Do(req, &g) + if err != nil { + return nil, resp, err + } + + return g, resp, err +} + // ListGroupLDAPLinks lists the group's LDAP links. Available only for users who // can edit groups. // |