module Gitlab::Client::Groups

def add_group_member(team_id, user_id, access_level)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about added team member.

Parameters:
  • access_level (Integer) -- Project access level.
  • user_id (Integer) -- The user id of the user to add to the team.
  • team_id (Integer) -- The group id to add a member to.
def add_group_member(team_id, user_id, access_level)
  post("/groups/#{url_encode team_id}/members", body: { user_id: user_id, access_level: access_level })
end

def create_group(name, path, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about created group.

Parameters:
  • path (String) -- The path of a group.
  • name (String) -- The name of a group.
def create_group(name, path, options = {})
  body = { name: name, path: path }.merge(options)
  post('/groups', body: body)
end

def delete_group(id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the deleted group.

Parameters:
  • id (Integer) -- The ID of a group
def delete_group(id)
  delete("/groups/#{url_encode id}")
end

def edit_group(id, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about the edited group.

Options Hash: (**options)
  • :request_access_enabled (String) -- Allow users to request member access.
  • :lfs_enabled (String) -- Enable/disable Large File Storage (LFS) for the projects in this groupr.
  • :visibility (String) -- The visibility level of the group. Can be private, internal, or public
  • :description (String) -- The description of the group.
  • :path (String) -- The path of the group.
  • :name (String) -- The name of the group.

Parameters:
  • options (Hash) -- A customizable set of options
  • group (Integer) -- The ID.
def edit_group(id, options = {})
  put("/groups/#{url_encode id}", body: options)
end

def edit_group_member(team_id, user_id, access_level)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about edited team member.

Parameters:
  • access_level (Integer) -- Project access level.
  • user_id (Integer) -- The user id of the user to edit.
  • team_id (Integer) -- The group id of member to edit.
def edit_group_member(team_id, user_id, access_level)
  put("/groups/#{url_encode team_id}/members/#{user_id}", body: { access_level: access_level })
end

def group(id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a group.
def group(id)
  get("/groups/#{url_encode id}")
end

def group_issues(group, options = {})

Returns:
  • (Array) -

Parameters:
  • options (Hash) -- A customizable set of options.
  • group_id (Integer, String) -- The ID or name of a group.
def group_issues(group, options = {})
  get("/groups/#{group}/issues", query: options)
end

def group_member(team_id, user_id)

Returns:
  • (Gitlab::ObjectifiedHash) - (id, username, name, email, state, access_level ...)

Parameters:
  • user_id (Integer) -- The user id of the member to find.
  • team_id (Integer) -- The ID of the group to find a member in.
def group_member(team_id, user_id)
  get("/groups/#{url_encode team_id}/members/#{user_id}")
end

def group_members(id, options = {})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a group.
def group_members(id, options = {})
  get("/groups/#{url_encode id}/members", query: options)
end

def group_projects(id, options = {})

Returns:
  • (Array) - List of projects under a group

Parameters:
  • id (Integer) -- The ID of a group
def group_projects(id, options = {})
  get("/groups/#{url_encode id}/projects", query: options)
end

def group_search(search, options = {})

Returns:
  • (Array) -

Options Hash: (**options)
  • :page (String) -- The page to retrieve
  • :per_page (String) -- Number of projects to return per page

Parameters:
  • options (Hash) -- A customizable set of options.
  • search (String) -- A string to search for in group names and paths.
def group_search(search, options = {})
  options[:search] = search
  get('/groups', query: options)
end

def group_subgroups(id, options = {})

Returns:
  • (Array) - List of subgroups under a group

Options Hash: (**options)
  • :owned (String) -- Limit to groups owned by the current user.
  • :statistics (String) -- Include group statistics (admins only).
  • :sort (String) -- Order groups in asc or desc order. Default is asc.
  • :order_by (String) -- Order groups by name or path. Default is name.
  • :search (String) -- Return the list of authorized groups matching the search criteria.
  • :all_available (String) -- Show all the groups you have access to (defaults to false for authenticated users).
  • :skip_groups (String) -- Skip the group IDs passed.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- the ID of a group
def group_subgroups(id, options = {})
  get("/groups/#{url_encode id}/subgroups", query: options)
end

def groups(options = {})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
def groups(options = {})
  get('/groups', query: options)
end

def remove_group_member(team_id, user_id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about removed team member.

Parameters:
  • user_id (Integer) -- The ID of a user.
  • team_id (Integer) -- The group ID.
def remove_group_member(team_id, user_id)
  delete("/groups/#{url_encode team_id}/members/#{user_id}")
end

def transfer_project_to_group(id, project_id)

Parameters:
  • project_id (Integer) -- The ID of a project.
  • id (Integer) -- The ID of a group.
def transfer_project_to_group(id, project_id)
  body = { id: id, project_id: project_id }
  post("/groups/#{url_encode id}/projects/#{project_id}", body: body)
end