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:
  • 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
    • createPersonalAccessToken

      public ImpersonationToken createPersonalAccessToken(Object userIdOrUsername, String name, Date expiresAt, ImpersonationToken.Scope[] scopes) throws GitLabApiException
      Create a personal access token. Available only for admin users.
      GitLab Endpoint: POST /users/:user_id/personal_access_tokens
      Parameters:
      userIdOrUsername - the user in the form of an Integer(ID), String(username), or User instance
      name - the name of the personal access token, required
      expiresAt - the expiration date of the personal access token, optional
      scopes - an array of scopes of the personal access token
      Returns:
      the created PersonalAccessToken instance
      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