Class UserApi

All Implemented Interfaces:
Constants

public class UserApi
extends AbstractApi
This class provides an entry point to all the GitLab API users calls.
See Also:
Users API at GitLab
  • Constructor Details

    • UserApi

      public UserApi​(GitLabApi gitLabApi)
  • Method Details

    • enableCustomAttributes

      public void enableCustomAttributes()
      Enables custom attributes to be returned when fetching User instances.
    • disableCustomAttributes

      public void disableCustomAttributes()
      Disables custom attributes to be returned when fetching User instances.
    • getUsers

      public List<User> getUsers() throws GitLabApiException

      Get a list of users.

      WARNING: Do not use this method to fetch users from https://gitlab.com, gitlab.com has many 1,000,000's of users and it will a long time to fetch all of them. Instead use getUsers(int itemsPerPage) which will return a Pager of Group instances.
      GitLab Endpoint: GET /users
      Returns:
      a list of Users
      Throws:
      GitLabApiException - if any exception occurs
    • getUsers

      public List<User> getUsers​(int page, int perPage) throws GitLabApiException
      Get a list of users using the specified page and per page settings.
      GitLab Endpoint: GET /users
      Parameters:
      page - the page to get
      perPage - the number of users per page
      Returns:
      the list of Users in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getUsers

      public Pager<User> getUsers​(int itemsPerPage) throws GitLabApiException
      Get a Pager of users.
      GitLab Endpoint: GET /users
      Parameters:
      itemsPerPage - the number of User instances that will be fetched per page
      Returns:
      a Pager of User
      Throws:
      GitLabApiException - if any exception occurs
    • getUsersStream

      public Stream<User> getUsersStream() throws GitLabApiException
      Get a Stream of users.
      GitLab Endpoint: GET /users
      Returns:
      a Stream of Users.
      Throws:
      GitLabApiException - if any exception occurs
    • getActiveUsers

      public List<User> getActiveUsers() throws GitLabApiException
      Get a list of active users
      GitLab Endpoint: GET /users?active=true
      Returns:
      a list of active Users
      Throws:
      GitLabApiException - if any exception occurs
    • getActiveUsers

      public List<User> getActiveUsers​(int page, int perPage) throws GitLabApiException
      Get a list of active users using the specified page and per page settings.
      GitLab Endpoint: GET /users?active=true
      Parameters:
      page - the page to get
      perPage - the number of users per page
      Returns:
      the list of active Users in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getActiveUsers

      public Pager<User> getActiveUsers​(int itemsPerPage) throws GitLabApiException
      Get a Pager of active users.
      GitLab Endpoint: GET /users?active=true
      Parameters:
      itemsPerPage - the number of active User instances that will be fetched per page
      Returns:
      a Pager of active User
      Throws:
      GitLabApiException - if any exception occurs
    • getActiveUsersStream

      public Stream<User> getActiveUsersStream() throws GitLabApiException
      Get a Stream of active users
      GitLab Endpoint: GET /users?active=true
      Returns:
      a Stream of active Users
      Throws:
      GitLabApiException - if any exception occurs
    • blockUser

      public void blockUser​(Long userId) throws GitLabApiException
      Blocks the specified user. Available only for admin.
      GitLab Endpoint: POST /users/:id/block
      Parameters:
      userId - the ID of the user to block
      Throws:
      GitLabApiException - if any exception occurs
    • unblockUser

      public void unblockUser​(Long userId) throws GitLabApiException
      Unblocks the specified user. Available only for admin.
      GitLab Endpoint: POST /users/:id/unblock
      Parameters:
      userId - the ID of the user to unblock
      Throws:
      GitLabApiException - if any exception occurs
    • getBlockedUsers

      public List<User> getBlockedUsers() throws GitLabApiException
      Get a list of blocked users.
      GitLab Endpoint: GET /users?blocked=true
      Returns:
      a list of blocked Users
      Throws:
      GitLabApiException - if any exception occurs
    • getblockedUsers

      public List<User> getblockedUsers​(int page, int perPage) throws GitLabApiException
      Get a list of blocked users using the specified page and per page settings.
      GitLab Endpoint: GET /users?blocked=true
      Parameters:
      page - the page to get
      perPage - the number of users per page
      Returns:
      the list of blocked Users in the specified range
      Throws:
      GitLabApiException - if any exception occurs
    • getBlockedUsers

      public Pager<User> getBlockedUsers​(int itemsPerPage) throws GitLabApiException
      Get a Pager of blocked users.
      GitLab Endpoint: GET /users?blocked=true
      Parameters:
      itemsPerPage - the number of blocked User instances that will be fetched per page
      Returns:
      a Pager of blocked User
      Throws:
      GitLabApiException - if any exception occurs
    • getBlockedUsersStream

      public Stream<User> getBlockedUsersStream() throws GitLabApiException
      Get a Stream of blocked users.
      GitLab Endpoint: GET /users?blocked=true
      Returns:
      a Stream of blocked Users
      Throws:
      GitLabApiException - if any exception occurs
    • getUser

      public User getUser​(Long userId) throws GitLabApiException
      Get a single user.
      GitLab Endpoint: GET /users/:id
      Parameters:
      userId - the ID of the user to get
      Returns:
      the User instance for the specified user ID
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalUser

      public Optional<User> getOptionalUser​(Long userId)
      Get a single user as an Optional instance.
      GitLab Endpoint: GET /users/:id
      Parameters:
      userId - the ID of the user to get
      Returns:
      the User for the specified user ID as an Optional instance
    • getUser

      public User getUser​(String username) throws GitLabApiException
      Lookup a user by username. Returns null if not found.

      NOTE: This is for admin users only.

      GitLab Endpoint: GET /users?username=:username
      Parameters:
      username - the username of the user to get
      Returns:
      the User instance for the specified username, or null if not found
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalUser

      public Optional<User> getOptionalUser​(String username)
      Lookup a user by username and return an Optional instance.

      NOTE: This is for admin users only.

      GitLab Endpoint: GET /users?username=:username
      Parameters:
      username - the username of the user to get
      Returns:
      the User for the specified username as an Optional instance
    • getUserByEmail

      public User getUserByEmail​(String email) throws GitLabApiException
      Lookup a user by email address. Returns null if not found.
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      email - the email of the user to get
      Returns:
      the User instance for the specified email, or null if not found
      Throws:
      GitLabApiException - if any exception occurs
      IllegalArgumentException - if email is not valid
    • getOptionalUserByEmail

      public Optional<User> getOptionalUserByEmail​(String email)
      Lookup a user by email address and returns an Optional with the User instance as the value.
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      email - the email of the user to get
      Returns:
      the User for the specified email as an Optional instance
    • getUserByExternalUid

      public User getUserByExternalUid​(String provider, String externalUid) throws GitLabApiException
      Lookup a user by external UID. Returns null if not found.

      NOTE: This is for admin users only.

      GitLab Endpoint: GET /users?extern_uid=:externalUid&provider=:provider
      Parameters:
      provider - the provider of the external uid
      externalUid - the external UID of the user
      Returns:
      the User instance for the specified external UID, or null if not found
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalUserByExternalUid

      public Optional<User> getOptionalUserByExternalUid​(String provider, String externalUid)
      Lookup a user by external UID and return an Optional instance.

      NOTE: This is for admin users only.

      GitLab Endpoint: GET /users?extern_uid=:externUid&provider=:provider
      Parameters:
      provider - the provider of the external uid
      externalUid - the external UID of the user
      Returns:
      the User for the specified external UID as an Optional instance
    • findUsers

      public List<User> findUsers​(String emailOrUsername) throws GitLabApiException
      Search users by Email or username
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      emailOrUsername - the email or username to search for
      Returns:
      the User List with the email or username like emailOrUsername
      Throws:
      GitLabApiException - if any exception occurs
    • findUsers

      public List<User> findUsers​(String emailOrUsername, int page, int perPage) throws GitLabApiException
      Search users by Email or username in the specified page range.
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      emailOrUsername - the email or username to search for
      page - the page to get
      perPage - the number of users per page
      Returns:
      the User List with the email or username like emailOrUsername in the specified page range
      Throws:
      GitLabApiException - if any exception occurs
    • findUsers

      public Pager<User> findUsers​(String emailOrUsername, int itemsPerPage) throws GitLabApiException
      Search users by Email or username and return a Pager
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      emailOrUsername - the email or username to search for
      itemsPerPage - the number of Project instances that will be fetched per page
      Returns:
      the User Pager with the email or username like emailOrUsername
      Throws:
      GitLabApiException - if any exception occurs
    • findUsersStream

      public Stream<User> findUsersStream​(String emailOrUsername) throws GitLabApiException
      Search users by Email or username.
      GitLab Endpoint: GET /users?search=:email_or_username
      Parameters:
      emailOrUsername - the email or username to search for
      Returns:
      a Stream of User instances with the email or username like emailOrUsername
      Throws:
      GitLabApiException - if any exception occurs
    • createUser

      @Deprecated public User createUser​(User user, CharSequence password, Integer projectsLimit) throws GitLabApiException
      Deprecated.
      Will be removed in version 6.0, replaced by createUser(User, CharSequence, boolean)

      Creates a new user. Note only administrators can create new users. Either password or reset_password should be specified (reset_password takes priority).

      If both the User object's projectsLimit and the parameter projectsLimit is specified the parameter will take precedence.

      GitLab Endpoint: POST /users

      The following properties of the provided User instance can be set during creation:

       email (required) - Email
       username (required) - Username
       name (required) - Name
       skype (optional) - Skype ID
       linkedin (optional) - LinkedIn
       twitter (optional) - Twitter account
       websiteUrl (optional) - Website URL
       organization (optional) - Organization name
       projectsLimit (optional) - Number of projects user can create
       externUid (optional) - External UID
       provider (optional) - External provider name
       bio (optional) - User's biography
       location (optional) - User's location
       admin (optional) - User is admin - true or false (default)
       canCreateGroup (optional) - User can create groups - true or false
       skipConfirmation (optional) - Skip confirmation - true or false (default)
       external (optional) - Flags the user as external - true or false(default)
       sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
       
      Parameters:
      user - the User instance with the user info to create
      password - the password for the new user
      projectsLimit - the maximum number of project
      Returns:
      created User instance
      Throws:
      GitLabApiException - if any exception occurs
    • createUser

      public User createUser​(User user, CharSequence password, boolean resetPassword) throws GitLabApiException

      Creates a new user. Note only administrators can create new users. Either password or resetPassword should be specified (resetPassword takes priority).

      GitLab Endpoint: POST /users

      The following properties of the provided User instance can be set during creation:

       email (required) - Email
       username (required) - Username
       name (required) - Name
       skype (optional) - Skype ID
       linkedin (optional) - LinkedIn
       twitter (optional) - Twitter account
       websiteUrl (optional) - Website URL
       organization (optional) - Organization name
       projectsLimit (optional) - Number of projects user can create
       externUid (optional) - External UID
       provider (optional) - External provider name
       bio (optional) - User's biography
       location (optional) - User's location
       admin (optional) - User is admin - true or false (default)
       canCreateGroup (optional) - User can create groups - true or false
       skipConfirmation (optional) - Skip confirmation - true or false (default)
       external (optional) - Flags the user as external - true or false(default)
       sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
       
      Parameters:
      user - the User instance with the user info to create
      password - the password for the new user
      resetPassword - whether to send a password reset link
      Returns:
      created User instance
      Throws:
      GitLabApiException - if any exception occurs
    • updateUser

      public User updateUser​(User user, CharSequence password) throws GitLabApiException

      Modifies an existing user. Only administrators can change attributes of a user.

      GitLab Endpoint: PUT /users

      The following properties of the provided User instance can be set during update:

       email (required) - Email
       username (required) - Username
       name (required) - Name
       skype (optional) - Skype ID
       linkedin (optional) - LinkedIn
       twitter (optional) - Twitter account
       websiteUrl (optional) - Website URL
       organization (optional) - Organization name
       projectsLimit (optional) - Number of projects user can create
       externUid (optional) - External UID
       provider (optional) - External provider name
       bio (optional) - User's biography
       location (optional) - User's location
       admin (optional) - User is admin - true or false (default)
       canCreateGroup (optional) - User can create groups - true or false
       skipConfirmation (optional) - Skip confirmation - true or false (default)
       external (optional) - Flags the user as external - true or false(default)
       sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
       
      Parameters:
      user - the User instance with the user info to modify
      password - the new password for the user
      Returns:
      the modified User instance
      Throws:
      GitLabApiException - if any exception occurs
    • modifyUser

      @Deprecated public User modifyUser​(User user, CharSequence password, Integer projectsLimit) throws GitLabApiException
      Deprecated.
      Will be removed in version 6.0, replaced by updateUser(User, CharSequence)
      Modifies an existing user. Only administrators can change attributes of a user.
      GitLab Endpoint: PUT /users/:id

      The following properties of the provided User instance can be set during update:

       email (required) - Email
       username (required) - Username
       name (required) - Name
       skype (optional) - Skype ID
       linkedin (optional) - LinkedIn
       twitter (optional) - Twitter account
       websiteUrl (optional) - Website URL
       organization (optional) - Organization name
       projectsLimit (optional) - Number of projects user can create
       externUid (optional) - External UID
       provider (optional) - External provider name
       bio (optional) - User's biography
       location (optional) - User's location
       admin (optional) - User is admin - true or false (default)
       canCreateGroup (optional) - User can create groups - true or false
       skipConfirmation (optional) - Skip confirmation - true or false (default)
       external (optional) - Flags the user as external - true or false(default)
       sharedRunnersMinutesLimit (optional) - Pipeline minutes quota for this user
       
      Parameters:
      user - the User instance with the user info to modify
      password - the new password for the user
      projectsLimit - the maximum number of project
      Returns:
      the modified User instance
      Throws:
      GitLabApiException - if any exception occurs
    • deleteUser

      public void deleteUser​(Object userIdOrUsername) throws GitLabApiException
      Deletes a user. Available only for administrators.
      GitLab Endpoint: DELETE /users/:id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      Throws:
      GitLabApiException - if any exception occurs
    • deleteUser

      public void deleteUser​(Object userIdOrUsername, Boolean hardDelete) throws GitLabApiException
      Deletes a user. Available only for administrators.
      GitLab Endpoint: DELETE /users/:id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      hardDelete - If true, contributions that would usually be moved to the ghost user will be deleted instead, as well as groups owned solely by this user
      Throws:
      GitLabApiException - if any exception occurs
    • getCurrentUser

      public User getCurrentUser() throws GitLabApiException
      Get currently authenticated user.
      GitLab Endpoint: GET /user
      Returns:
      the User instance for the currently authenticated user
      Throws:
      GitLabApiException - if any exception occurs
    • getSshKeys

      public List<SshKey> getSshKeys() throws GitLabApiException
      Get a list of currently authenticated user's SSH keys.
      GitLab Endpoint: GET /user/keys
      Returns:
      a list of currently authenticated user's SSH keys
      Throws:
      GitLabApiException - if any exception occurs
    • getSshKeys

      public List<SshKey> getSshKeys​(Long userId) throws GitLabApiException
      Get a list of a specified user's SSH keys. Available only for admin users.
      GitLab Endpoint: GET /users/:id/keys
      Parameters:
      userId - the user ID to get the SSH keys for
      Returns:
      a list of a specified user's SSH keys
      Throws:
      GitLabApiException - if any exception occurs
    • getSshKey

      public SshKey getSshKey​(Long keyId) throws GitLabApiException
      Get a single SSH Key.
      GitLab Endpoint: GET /user/keys/:key_id
      Parameters:
      keyId - the ID of the SSH key.
      Returns:
      an SshKey instance holding the info on the SSH key specified by keyId
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalSshKey

      public Optional<SshKey> getOptionalSshKey​(Long keyId)
      Get a single SSH Key as an Optional instance.
      GitLab Endpoint: GET /user/keys/:key_id
      Parameters:
      keyId - the ID of the SSH key
      Returns:
      an SshKey as an Optional instance holding the info on the SSH key specified by keyId
    • addSshKey

      public SshKey addSshKey​(String title, String key) throws GitLabApiException
      Creates a new key owned by the currently authenticated user.
      GitLab Endpoint: POST /user/keys
      Parameters:
      title - the new SSH Key's title
      key - the new SSH key
      Returns:
      an SshKey instance with info on the added SSH key
      Throws:
      GitLabApiException - if any exception occurs
    • addSshKey

      public SshKey addSshKey​(Long userId, String title, String key) throws GitLabApiException
      Create new key owned by specified user. Available only for admin users.
      GitLab Endpoint: POST /users/:id/keys
      Parameters:
      userId - the ID of the user to add the SSH key for
      title - the new SSH Key's title
      key - the new SSH key
      Returns:
      an SshKey instance with info on the added SSH key
      Throws:
      GitLabApiException - if any exception occurs
    • deleteSshKey

      public void deleteSshKey​(Long keyId) throws GitLabApiException
      Deletes key owned by currently authenticated user. This is an idempotent function and calling it on a key that is already deleted or not available results in success.
      GitLab Endpoint: DELETE /user/keys/:key_id
      Parameters:
      keyId - the key ID to delete
      Throws:
      GitLabApiException - if any exception occurs
    • deleteSshKey

      public void deleteSshKey​(Object userIdOrUsername, Long keyId) throws GitLabApiException
      Deletes key owned by a specified user. Available only for admin users.
      GitLab Endpoint: DELETE /users/:id/keys/:key_id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      keyId - the key ID to delete
      Throws:
      GitLabApiException - if any exception occurs
    • getImpersonationTokens

      public List<ImpersonationToken> getImpersonationTokens​(Object userIdOrUsername) throws GitLabApiException
      Get a list of a specified user's impersonation tokens. Available only for admin users.
      GitLab Endpoint: GET /users/:id/impersonation_tokens
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      Returns:
      a list of a specified user's impersonation tokens
      Throws:
      GitLabApiException - if any exception occurs
    • getImpersonationTokens

      public List<ImpersonationToken> getImpersonationTokens​(Object userIdOrUsername, Constants.ImpersonationState state) throws GitLabApiException
      Get a list of a specified user's impersonation tokens. Available only for admin users.
      GitLab Endpoint: GET /users/:id/impersonation_tokens
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      state - the state of impersonation tokens to list (ALL, ACTIVE, INACTIVE)
      Returns:
      a list of a specified user's impersonation tokens
      Throws:
      GitLabApiException - if any exception occurs
    • getImpersonationToken

      public ImpersonationToken getImpersonationToken​(Object userIdOrUsername, Long tokenId) throws GitLabApiException
      Get an impersonation token of a user. Available only for admin users.
      GitLab Endpoint: GET /users/:user_id/impersonation_tokens/:impersonation_token_id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      tokenId - the impersonation token ID to get
      Returns:
      the specified impersonation token
      Throws:
      GitLabApiException - if any exception occurs
    • getOptionalImpersonationToken

      public Optional<ImpersonationToken> getOptionalImpersonationToken​(Object userIdOrUsername, Long tokenId)
      Get an impersonation token of a user as an Optional instance. Available only for admin users.
      GitLab Endpoint: GET /users/:user_id/impersonation_tokens/:impersonation_token_id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      tokenId - the impersonation token ID to get
      Returns:
      the specified impersonation token as an Optional instance
    • createImpersonationToken

      public ImpersonationToken createImpersonationToken​(Object userIdOrUsername, String name, Date expiresAt, ImpersonationToken.Scope[] scopes) throws GitLabApiException
      Create an impersonation token. Available only for admin users.
      GitLab Endpoint: POST /users/:user_id/impersonation_tokens
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      name - the name of the impersonation token, required
      expiresAt - the expiration date of the impersonation token, optional
      scopes - an array of scopes of the impersonation token
      Returns:
      the created ImpersonationToken instance
      Throws:
      GitLabApiException - if any exception occurs
    • revokeImpersonationToken

      public void revokeImpersonationToken​(Object userIdOrUsername, Long tokenId) throws GitLabApiException
      Revokes an impersonation token. Available only for admin users.
      GitLab Endpoint: DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      tokenId - the impersonation token ID to revoke
      Throws:
      GitLabApiException - if any exception occurs
    • createCustomAttribute

      public CustomAttribute createCustomAttribute​(Object userIdOrUsername, CustomAttribute customAttribute) throws GitLabApiException
      Creates custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      customAttribute - the custom attribute to set
      Returns:
      the created CustomAttribute
      Throws:
      GitLabApiException - on failure while setting customAttributes
    • createCustomAttribute

      public CustomAttribute createCustomAttribute​(Object userIdOrUsername, String key, String value) throws GitLabApiException
      Creates custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      key - for the customAttribute
      value - or the customAttribute
      Returns:
      the created CustomAttribute
      Throws:
      GitLabApiException - on failure while setting customAttributes
    • changeCustomAttribute

      public CustomAttribute changeCustomAttribute​(Object userIdOrUsername, CustomAttribute customAttribute) throws GitLabApiException
      Change custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      customAttribute - the custome attribute to change
      Returns:
      the changed CustomAttribute
      Throws:
      GitLabApiException - on failure while changing customAttributes
    • changeCustomAttribute

      public CustomAttribute changeCustomAttribute​(Object userIdOrUsername, String key, String value) throws GitLabApiException
      Changes custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      key - for the customAttribute
      value - for the customAttribute
      Returns:
      changedCustomAttribute
      Throws:
      GitLabApiException - on failure while changing customAttributes
    • deleteCustomAttribute

      public void deleteCustomAttribute​(Object userIdOrUsername, CustomAttribute customAttribute) throws GitLabApiException
      Delete a custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      customAttribute - to remove
      Throws:
      GitLabApiException - on failure while deleting customAttributes
    • deleteCustomAttribute

      public void deleteCustomAttribute​(Object userIdOrUsername, String key) throws GitLabApiException
      Delete a custom attribute for the given user
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      key - of the customAttribute to remove
      Throws:
      GitLabApiException - on failure while deleting customAttributes
    • setUserAvatar

      public User setUserAvatar​(Object userIdOrUsername, File avatarFile) throws GitLabApiException
      Uploads and sets the user's avatar for the specified user.
      PUT /users/:id
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      avatarFile - the File instance of the avatar file to upload
      Returns:
      the updated User instance
      Throws:
      GitLabApiException - if any exception occurs
    • getEmails

      public List<Email> getEmails() throws GitLabApiException
      Get a list of emails for the current user.
      GitLab Endpoint: GET /users/emails
      Returns:
      a List of Email instances for the current user
      Throws:
      GitLabApiException - if any exception occurs
    • getEmails

      public List<Email> getEmails​(Object userIdOrUsername) throws GitLabApiException
      Get a list of a specified user’s emails. Available only for admin users.
      GitLab Endpoint: GET /user/:id/emails
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      Returns:
      a List of Email instances for the specified user
      Throws:
      GitLabApiException - if any exception occurs
    • addEmail

      public Email addEmail​(String email) throws GitLabApiException
      Add an email to the current user's emails.
      GitLab Endpoint: POST /user/:id/emails
      Parameters:
      email - the email address to add
      Returns:
      the Email instance for the added email
      Throws:
      GitLabApiException - if any exception occurs
    • getEmail

      public Email getEmail​(Long emailId) throws GitLabApiException
      Get a single Email instance specified by he email ID
      GitLab Endpoint: GET /user/emails/:emailId
      Parameters:
      emailId - the email ID to get
      Returns:
      the Email instance for the provided email ID
      Throws:
      GitLabApiException - if any exception occurs
    • addEmail

      public Email addEmail​(Object userIdOrUsername, String email, Boolean skipConfirmation) throws GitLabApiException
      Add an email to the user's emails.
      GitLab Endpoint: POST /user/:id/emails
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      email - the email address to add
      skipConfirmation - skip confirmation and assume e-mail is verified - true or false (default)
      Returns:
      the Email instance for the added email
      Throws:
      GitLabApiException - if any exception occurs
    • deleteEmail

      public void deleteEmail​(Long emailId) throws GitLabApiException
      Deletes an email belonging to the current user.
      GitLab Endpoint: DELETE /user/emails/:emailId
      Parameters:
      emailId - the email ID to delete
      Throws:
      GitLabApiException - if any exception occurs
    • deleteEmail

      public void deleteEmail​(Object userIdOrUsername, Long emailId) throws GitLabApiException
      Deletes a user's email
      GitLab Endpoint: DELETE /user/:id/emails/:emailId
      Parameters:
      userIdOrUsername - the user in the form of an Long(ID), String(username), or User instance
      emailId - the email ID to delete
      Throws:
      GitLabApiException - if any exception occurs
    • listGpgKeys

      public List<GpgKey> listGpgKeys() throws GitLabApiException
      Get all GPG keys for the current user.
      GitLab Endpoint: GET /user/gpg_keys
      Throws:
      GitLabApiException - if any exception occurs
    • addGpgKey

      public GpgKey addGpgKey​(String key) throws GitLabApiException
      Add a GPG key for the current user
      GitLab Endpoint: POST /user/gpg_keys
      Parameters:
      key - the ASCII-armored exported public GPG key to add
      Throws:
      GitLabApiException - if any exception occurs
    • deleteGpgKey

      public void deleteGpgKey​(Long keyId) throws GitLabApiException
      Remove a specific GPG key for the current user
      GitLab Endpoint: DELETE /user/gpg_keys/:keyId
      Parameters:
      keyId - the key ID in the form if an Long(ID)
      Throws:
      GitLabApiException - if any exception occurs
    • listGpgKeys

      public List<GpgKey> listGpgKeys​(Long userId) throws GitLabApiException
      Get all GPG keys for a given user.
      GitLab Endpoint: GET /users/:id/gpg_keys
      Parameters:
      userId - the user in the form of an Long(ID)
      Throws:
      GitLabApiException - if any exception occurs
    • addGpgKey

      public GpgKey addGpgKey​(Long userId, String key) throws GitLabApiException
      Add a GPG key for a specific user
      GitLab Endpoint: POST /users/:id/gpg_keys
      Parameters:
      userId - the user in the form of an Long(ID)
      key - the ASCII-armored exported public GPG key to add
      Throws:
      GitLabApiException - if any exception occurs
    • deleteGpgKey

      public void deleteGpgKey​(Long userId, Long keyId) throws GitLabApiException
      Remove a specific GPG key for a specific user
      GitLab Endpoint: DELETE /users/:id/gpg_keys/:keyId
      Parameters:
      userId - the user in the form of an Long(ID)
      keyId - the key ID in the form if an Long(ID)
      Throws:
      GitLabApiException - if any exception occurs
    • getMemberships

      public List<Membership> getMemberships​(Long userId) throws GitLabApiException
      Lists all projects and groups a user is a member of. (admin only)
      GitLab Endpoint: GET /users/:id/memberships
      Parameters:
      userId - the ID of the user to get the memberships for
      Returns:
      the list of memberships of the given user
      Throws:
      GitLabApiException - if any exception occurs
      Since:
      GitLab 12.8
    • getMemberships

      public Pager<Membership> getMemberships​(Long userId, int itemsPerPage) throws GitLabApiException
      Returns a Pager that lists all projects and groups a user is a member of. (admin only) This allows lazy-fetching of huge numbers of memberships.
      GitLab Endpoint: GET /users/:id/memberships
      Parameters:
      userId - the ID of the user to get the memberships for
      itemsPerPage - the number of Membership instances that will be fetched per page
      Returns:
      a Pager of user's memberships
      Throws:
      GitLabApiException - if any exception occurs
      Since:
      GitLab 12.8