module Gitlab::Client::Users

def activities(options = {})

Returns:
  • (Array) -

Options Hash: (**options)
  • :from (String) -- The start date for paginated results.
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

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

def add_email(email, user_id = nil, skip_confirmation = nil)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • skip_confirmation (Boolean) -- Skip confirmation and assume e-mail is verified
  • user_id (Integer) -- The ID of a user.
  • email (String) -- Email address
def add_email(email, user_id = nil, skip_confirmation = nil)
  url = user_id.to_i.zero? ? '/user/emails' : "/users/#{user_id}/emails"
  if skip_confirmation.nil?
    post(url, body: { email: email })
  else
    post(url, body: { email: email, skip_confirmation: skip_confirmation })
  end
end

def add_user_custom_attribute(key, value, user_id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • user_id (Integer) -- The ID of a user.
  • value (String) -- The custom_attributes value
  • key (String) -- The custom_attributes key
def add_user_custom_attribute(key, value, user_id)
  url = "/users/#{user_id}/custom_attributes/#{key}"
  put(url, body: { value: value })
end

def approve_user(user_id)

Returns:
  • (Boolean) - success or not

Parameters:
  • user_id (Integer) -- The Id of user
def approve_user(user_id)
  post("/users/#{user_id}/approve")
end

def block_user(user_id)

Returns:
  • (Boolean) - success or not

Parameters:
  • user_id (Integer) -- The Id of user
def block_user(user_id)
  post("/users/#{user_id}/block")
end

def create_ssh_key(title, key, options = {})

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

Options Hash: (**options)
  • :user_id (Integer) -- id of the user to associate the key with

Parameters:
  • options (Hash) -- A customizable set of options.
  • key (String) -- The SSH key body.
  • title (String) -- The title of an SSH key.
def create_ssh_key(title, key, options = {})
  user_id = options.delete :user_id
  if user_id.to_i.zero?
    post('/user/keys', body: { title: title, key: key })
  else
    post("/users/#{user_id}/keys", body: { title: title, key: key })
  end
end

def create_user(*args)

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

Options Hash: (**options)
  • :projects_limit (Integer) -- The limit of projects for a user.
  • :twitter (String) -- The twitter of a user.
  • :linkedin (String) -- The linkedin of a user.
  • :skype (String) -- The skype of a user.
  • :name (String) -- The name of a user. Defaults to email.

Parameters:
  • options (Hash) -- A customizable set of options.
  • username(required) (String) -- The username of a user.
  • password(required) (String) -- The password of a user.
  • email(required) (String) -- The email of a user.
def create_user(*args)
  options = args.last.is_a?(Hash) ? args.pop : {}
  raise ArgumentError, 'Missing required parameters' unless args[2]
  body = { email: args[0], password: args[1], username: args[2], name: args[0] }
  body.merge!(options)
  post('/users', body: body)
end

def create_user_impersonation_token(user_id, name, scopes, expires_at = nil)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • expires_at (String) -- Date for impersonation token expiration in ISO format.
  • scopes (Array) -- Array of scopes for the impersonation token
  • name (String) -- Name for impersonation token.
  • user_id (Integer) -- The ID of the user.
def create_user_impersonation_token(user_id, name, scopes, expires_at = nil)
  body = { name: name, scopes: scopes }
  body[:expires_at] = expires_at if expires_at
  post("/users/#{user_id}/impersonation_tokens", body: body)
end

def delete_email(id, user_id = nil)

Returns:
  • (Boolean) -

Parameters:
  • user_id (Integer) -- The ID of a user.
  • id (Integer) -- Email address ID
def delete_email(id, user_id = nil)
  url = user_id.to_i.zero? ? "/user/emails/#{id}" : "/users/#{user_id}/emails/#{id}"
  delete(url)
end

def delete_ssh_key(id, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about deleted SSH key.

Options Hash: (**options)
  • :user_id (Integer) -- id of the user to associate the key with

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a user's SSH key.
def delete_ssh_key(id, options = {})
  user_id = options.delete :user_id
  if user_id.to_i.zero?
    delete("/user/keys/#{id}")
  else
    delete("/users/#{user_id}/keys/#{id}")
  end
end

def delete_user(user_id)

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

Parameters:
  • id (Integer) -- The ID of a user.
def delete_user(user_id)
  delete("/users/#{user_id}")
end

def delete_user_custom_attribute(key, user_id)

Returns:
  • (Boolean) -

Parameters:
  • user_id (Integer) -- The ID of a user.
  • key (String) -- The custom_attribute key to delete
def delete_user_custom_attribute(key, user_id)
  delete("/users/#{user_id}/custom_attributes/#{key}")
end

def edit_user(user_id, options = {})

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

Options Hash: (**options)
  • :projects_limit (Integer) -- The limit of projects for a user.
  • :twitter (String) -- The twitter of a user.
  • :linkedin (String) -- The linkedin of a user.
  • :skype (String) -- The skype of a user.
  • :name (String) -- The name of a user. Defaults to email.
  • :password (String) -- The password of a user.
  • :email (String) -- The email of a user.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a user.
def edit_user(user_id, options = {})
  put("/users/#{user_id}", body: options)
end

def email(id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a email.
def email(id)
  get("/user/emails/#{id}")
end

def emails(user_id = nil)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • user_id (Integer) -- The ID of a user.
def emails(user_id = nil)
  url = user_id.to_i.zero? ? '/user/emails' : "/users/#{user_id}/emails"
  get(url)
end

def revoke_user_impersonation_token(user_id, impersonation_token_id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • impersonation_token_id (Integer) -- ID of the impersonation token.
  • user_id (Integer) -- The ID of the user.
def revoke_user_impersonation_token(user_id, impersonation_token_id)
  delete("/users/#{user_id}/impersonation_tokens/#{impersonation_token_id}")
end

def session(email, password)

Other tags:
    Note: - This method doesn't require private_token to be set.

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • password (String) -- The password of a user.
  • email (String) -- The email of a user.
def session(email, password)
  post('/session', body: { email: email, password: password }, unauthenticated: true)
end

def ssh_key(id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a user's SSH key.
def ssh_key(id)
  get("/user/keys/#{id}")
end

def ssh_keys(options = {})

Returns:
  • (Array) -

Options Hash: (**options)
  • :user_id (Integer) -- The ID of the user to retrieve the keys for.
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
def ssh_keys(options = {})
  user_id = options.delete :user_id
  if user_id.to_i.zero?
    get('/user/keys', query: options)
  else
    get("/users/#{user_id}/keys", query: options)
  end
end

def unblock_user(user_id)

Returns:
  • (Boolean) - success or not

Parameters:
  • user_id (Integer) -- The Id of user
def unblock_user(user_id)
  post("/users/#{user_id}/unblock")
end

def user(id = nil)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a user.
def user(id = nil)
  id.to_i.zero? ? get('/user') : get("/users/#{id}")
end

def user_custom_attribute(key, user_id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • user_id (Integer) -- The ID of a user.
  • key (String) -- The custom_attributes key
def user_custom_attribute(key, user_id)
  get("/users/#{user_id}/custom_attributes/#{key}")
end

def user_custom_attributes(user_id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • user_id (Integer) -- The ID of a user.
def user_custom_attributes(user_id)
  get("/users/#{user_id}/custom_attributes")
end

def user_impersonation_token(user_id, impersonation_token_id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • impersonation_token_id (Integer) -- ID of the impersonation token.
  • user_id (Integer) -- The ID of the user.
def user_impersonation_token(user_id, impersonation_token_id)
  get("/users/#{user_id}/impersonation_tokens/#{impersonation_token_id}")
end

def user_impersonation_tokens(user_id)

Returns:
  • (Array) -

Parameters:
  • state (String) -- Filter impersonation tokens by state {}
  • user_id (Integer) -- The ID of the user.
def user_impersonation_tokens(user_id)
  get("/users/#{user_id}/impersonation_tokens")
end

def user_search(search, options = {})

Returns:
  • (Array) -

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

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

def users(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 users(options = {})
  get('/users', query: options)
end