Module bus.gitlab

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
    • approveUser

      public void approveUser(Long userId) throws GitLabApiException
      Approves the specified user. Available only for admin.
       GitLab Endpoint: POST /users/:id/approve
       
      Parameters:
      userId - the ID of the user to approve
      Throws:
      GitLabApiException - if any exception occurs
    • rejectUser

      public void rejectUser(Long userId) throws GitLabApiException
      Rejects specified user that is pending approval. Available only for administrators.
       GitLab Endpoint: POST /users/:id/reject
       
      Parameters:
      userId - the ID of the user to reject
      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

      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
    • 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, Date expiresAt) 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
      expiresAt - the expiration date of the ssh key, optional
      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, Date expiresAt) 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
      expiresAt - the expiration date of the ssh key, optional
      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, String description, 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
      description - description of personal access token, optional
      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
    • revokePersonalAccessToken

      public void revokePersonalAccessToken(Long tokenId) throws GitLabApiException
      Revokes a personal access token. Available only for admin users.
       GitLab Endpoint: DELETE /personal_access_tokens/:token_id
       
      Parameters:
      tokenId - the personal access token ID to revoke
      Throws:
      GitLabApiException - if any exception occurs
    • createPersonalAccessToken

      public ImpersonationToken createPersonalAccessToken(String name, String description, Date expiresAt, ImpersonationToken.Scope[] scopes) throws GitLabApiException
      Create a personal access token for your account.
       GitLab Endpoint: POST /user/personal_access_tokens
       
      Parameters:
      name - the name of the personal access token, required
      description - description of personal access token, optional
      expiresAt - the expiration date of the personal access token, optional
      scopes - an array of scopes of the personal access token. Only accepts k8s_proxy.
      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
    • getAssociationsCount

      public Associations getAssociationsCount(Long userId) throws GitLabApiException
      Get a count of a user’s projects, groups, issues, and merge requests
       GitLab Endpoint: GET /user/:id/associations_count
       
      Parameters:
      userId - the ID of the user to get the associations for
      Returns:
      the count of each type of association
      Throws:
      GitLabApiException - if any exception occurs
    • activateUser

      public void activateUser(Long userId) throws GitLabApiException
      Activates the given user (admin only)
       GitLab Endpoint: POST /users/:id/activate
       
      Parameters:
      userId - the ID of the user to activate
      Throws:
      GitLabApiException - if any exception occurs.
      Since:
      GitLab 12.4
    • deactivateUser

      public void deactivateUser(Long userId) throws GitLabApiException
      Deactivates the given user (admin only)
       GitLab Endpoint: POST /users/:id/deactivate
       
      Parameters:
      userId - the ID of the user to deactivate
      Throws:
      GitLabApiException - if any exception occurs.
      Since:
      GitLab 12.4
    • exists

      public boolean exists(String username) throws GitLabApiException
      Check if the given user exists.
       GitLab Endpoint: POST /users/:username/exists
       
      Parameters:
      username - the name of the user to check
      Throws:
      GitLabApiException - if any exception occurs.
    • createRunner

      public CreateRunnerResponse createRunner(CreateRunnerParams params) throws GitLabApiException
      Create a runner linked to the current user.
       GitLab Endpoint: POST /user/runners
       
      Parameters:
      params - a CreateRunnerParams instance holding the parameters for the runner creation
      Returns:
      creation response, be sure to copy or save the token in the response, the value cannot be retrieved again.
      Throws:
      GitLabApiException