User account

Each GitLab account has a user profile, and settings. Your profile contains information about you, and your GitLab activity. Your settings allow you to customize some aspects of GitLab to suit yourself.

Creating users

There are several ways to create users on GitLab. See the creating users documentation for more details.

Signing in

There are several ways to sign into your GitLab account. See the authentication topic for more details.

Unknown sign-in

GitLab notifies you if a sign-in occurs that is from an unknown IP address or device. See Unknown Sign-In Notification for more details.

User profile

To access your profile:

  1. Click on your avatar.
  2. Select Profile.

On your profile page, you can see the following information:

  • Personal information
  • Activity stream: see your activity streamline and the history of your contributions
  • Groups: groups you're a member of
  • Contributed projects: projects you contributed to
  • Personal projects: your personal projects (respecting the project's visibility level)
  • Starred projects: projects you starred
  • Snippets: your personal code snippets

Profile settings

To access your profile settings:

  1. Click on your avatar.
  2. Select Settings.

From there, you can:

Changing your password

  1. Navigate to your profile's Settings > Password.
  2. Enter your current password in the 'Current password' field.
  3. Enter your desired new password twice, once in the 'New password' field and once in the 'Password confirmation' field.
  4. Click the 'Save password' button.

If you don't know your current password, select the 'I forgot my password' link.

Change your password

Changing your username

Your username is a unique namespace related to your user ID. Changing it can have unintended side effects, read how redirects behave before proceeding.

To change your username:

  1. Navigate to your profile's Settings > Account.
  2. Enter a new username under Change username.
  3. Click Update username.

WARNING: It is currently not possible to change your username if it contains a project with Container Registry tags, because the project cannot be moved.

NOTE: If you want to retain ownership over the original namespace and protect the URL redirects, then instead of changing a group's path or renaming a username, you can create a new group and transfer projects to it. Alternatively, you can follow this detailed procedure from the GitLab Team Handbook which also covers the case where you have projects hosted with GitLab Pages.

Private profile

The following information is hidden from the user profile page ( if this feature is enabled:

  • Atom feed
  • Date when account is created
  • Activity tab
  • Groups tab
  • Contributed projects tab
  • Personal projects tab
  • Starred projects tab
  • Snippets tab

To enable private profile:

  1. Click your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Check the Private profile option in the Main settings section.
  5. Click Update profile settings.

NOTE: All your profile information can be seen by yourself, and GitLab admins, even if the Private profile option is enabled.

Add details of external accounts

GitLab allows you to add links to certain other external accounts you might have, like Skype and Twitter. They can help other users connect with you on other platforms.

To add links to other accounts:

  1. Click your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Complete the desired fields for external accounts, in the Main settings section:
    • Skype
    • Twitter
    • LinkedIn
  5. Click Update profile settings.

Private contributions

Introduced in GitLab 11.3.

Enabling private contributions includes contributions to private projects, in the user contribution calendar graph and user recent activity.

To enable private contributions:

  1. Click on your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Check the Private contributions option.
  5. Click Update profile settings.

Current status

Introduced in GitLab 11.2.

You can provide a custom status message for your user profile along with an emoji that describes it. This may be helpful when you are out of office or otherwise not available. Other users can then take your status into consideration when responding to your issues or assigning work to you. Please be aware that your status is publicly visible even if your profile is private.

Status messages are restricted to 100 characters of plain text. They may however contain emoji codes such as I'm on vacation :palm_tree:.

To set your current status:

  1. Click your avatar.
  2. Click Set status, or Edit status if you have already set a status.
  3. Set the desired emoji and/or status message.
  4. Click Set status. Alternatively, you can click Remove status to remove your user status entirely.


  1. Click your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Enter your status message in the Your status text field.
  5. Click Add status emoji (smiley face), and select the desired emoji.
  6. Click Update profile settings.

You can also set your current status using the API.

If you previously selected the "Busy" checkbox, remember to deselect it when you become available again.

Busy status indicator

To indicate to others that you are busy, you can set an indicator

Busy status indicator

To set the busy status indicator, either:

  • Set it directly:

    1. Click your avatar.
    2. Click Set status, or Edit status if you have already set a status.
    3. Select the Busy checkbox
  • Set it on your profile:

    1. Click your avatar.
    2. Select Profile.
    3. Click Edit profile ({pencil}).
    4. Select the Busy checkbox

Disable busy status feature

The busy status feature is deployed behind a feature flag and is enabled by default. GitLab administrators with access to the GitLab Rails console can disable it for your instance from the rails console.

To disable it:


To enable it:


Commit email

Introduced in GitLab 11.4.

A commit email is an email address displayed in every Git-related action carried out through the GitLab interface.

Any of your own verified email addresses can be used as the commit email.

To change your commit email:

  1. Click your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Click Commit email dropdown.
  5. Select any of the verified emails.
  6. Click Update profile settings.

Private commit email

Introduced in GitLab 11.5.

GitLab provides the user with an automatically generated private commit email option, which allows the user to keep their email information private.

To enable this option:

  1. Click your avatar.
  2. Select Profile.
  3. Click Edit profile (pencil icon).
  4. Click Commit email dropdown.
  5. Select Use a private email option.
  6. Click Update profile settings.

Once this option is enabled, every Git-related action is performed using the private commit email.

To stay fully anonymous, you can also copy this private commit email and configure it on your local machine using the following command:

git config --global <your email address>


Why do I keep getting signed out?

When signing in to the main GitLab application, a _gitlab_session cookie is set. _gitlab_session is cleared client-side when you close your browser and expires after "Application settings -> Session duration (minutes)"/session_expire_delay (defaults to 10080 minutes = 7 days) of no activity.

When signing in to the main GitLab application, you can also check the "Remember me" option which sets the remember_user_token cookie (via devise). remember_user_token expires after config/initializers/devise.rb -> config.remember_for (defaults to 2 weeks).

When the _gitlab_session expires or isn't available, GitLab uses the remember_user_token to get you a new _gitlab_session and keep you signed in through browser restarts.

After your remember_user_token expires and your _gitlab_session is cleared/expired, you are asked to sign in again to verify your identity for security reasons.

NOTE: When any session is signed out, or when a session is revoked via Active Sessions, all Remember me tokens are revoked. While other sessions remain active, the Remember me feature doesn't restore a session if the browser is closed or the existing session expires.

Increased sign-in time

Introduced in GitLab 13.1.

The remember_user_token lifetime of a cookie can now extend beyond the deadline set by config.remember_for, as the config.extend_remember_period flag is now set to true.

GitLab uses both session and persistent cookies:

  • Session cookie: Session cookies are normally removed at the end of the browser session when the browser is closed. The _gitlab_session cookie has no fixed expiration date. However, it expires based on its session_expire_delay.
  • Persistent cookie: The remember_user_token is a cookie with an expiration date of two weeks. GitLab activates this cookie if you click Remember Me when you sign in.

By default, the server sets a time-to-live (TTL) of 1-week on any session that is used.

When you close a browser, the session cookie may still remain. For example, Chrome has the "Continue where you left off" option that restores session cookies. In other words, as long as you access GitLab at least once every 2 weeks, you could remain signed in with GitLab, as long as your browser tab is open. The server continues to reset the TTL for that session, independent of whether 2FA is installed, If you close your browser and open it up again, the remember_user_token cookie allows your user to reauthenticate itself.

Without the config.extend_remember_period flag, you would be forced to sign in again after two weeks.