Commit 45fd1cb8 authored by Suzanne Selhorn's avatar Suzanne Selhorn Committed by Andrew Fontaine

Edits to style and CTRT

Related to: https://gitlab.com/gitlab-org/gitlab/-/issues/300312
parent 07b19ec0
......@@ -8,7 +8,7 @@
= form.select :public_email, options_for_select(@user.public_verified_emails, selected: @user.public_email),
{ help: s_("Profiles|This email will be displayed on your public profile"), include_blank: s_("Profiles|Do not show on profile") },
control_class: 'select2 input-lg', disabled: email_change_disabled
- commit_email_link_url = help_page_path('user/profile/index', anchor: 'commit-email', target: '_blank')
- commit_email_link_url = help_page_path('user/profile/index', anchor: 'change-the-email-displayed-on-your-commits', target: '_blank')
- commit_email_link_start = '<a href="%{url}">'.html_safe % { url: commit_email_link_url }
- commit_email_docs_link = s_('Profiles|This email will be used for web based operations, such as edits and merges. %{commit_email_link_start}Learn more%{commit_email_link_end}').html_safe % { commit_email_link_start: commit_email_link_start, commit_email_link_end: '</a>'.html_safe }
= form.select :commit_email, options_for_select(commit_email_select_options(@user), selected: selected_commit_email(@user)),
......
......@@ -51,7 +51,7 @@
%p
= s_('Profiles|Changing your username can have unintended side effects.')
= succeed '.' do
= link_to s_('Profiles|Learn more'), help_page_path('user/profile/index', anchor: 'changing-your-username'), target: '_blank'
= link_to s_('Profiles|Learn more'), help_page_path('user/profile/index', anchor: 'change-your-username'), target: '_blank'
.col-lg-8
- data = { initial_username: current_user.username, root_url: root_url, action_url: update_username_profile_path(format: :json) }
#update-username{ data: data }
......
......@@ -120,7 +120,7 @@
- private_profile_label = capture do
= s_("Profiles|Don't display activity-related personal information on your profiles")
= f.check_box :private_profile, label: private_profile_label, inline: true, wrapper_class: 'mr-0'
= link_to sprite_icon('question-o'), help_page_path('user/profile/index.md', anchor: 'private-profile')
= link_to sprite_icon('question-o'), help_page_path('user/profile/index.md', anchor: 'make-your-user-profile-page-private')
%h5= s_("Profiles|Private contributions")
= f.check_box :include_private_contributions, label: s_('Profiles|Include private contributions on my profile'), wrapper_class: 'mb-2', inline: true
.help-block
......
......@@ -80,7 +80,7 @@ Learn more about GitLab account management:
|:-----------------------------------------------------------|:------------|
| [User account](user/profile/index.md) | Manage your account. |
| [Authentication](topics/authentication/index.md) | Account security with two-factor authentication, set up your SSH keys, and deploy keys for secure access to your projects. |
| [User settings](user/profile/index.md#user-settings) | Manage your user settings, two factor authentication, and more. |
| [User settings](user/profile/index.md#access-your-user-settings) | Manage your user settings, two factor authentication, and more. |
| [User permissions](user/permissions.md) | Learn what each role in a project can do. |
### Git and GitLab
......
......@@ -191,7 +191,7 @@ have to be taken here:
will associate this profile to the LDAP identity.
The user can do either of these steps [in their
profile](../../../user/profile/index.md#user-profile) or an administrator can do it.
profile](../../../user/profile/index.md#access-your-user-profile) or an administrator can do it.
#### Debug LDAP user filter
......
......@@ -10,7 +10,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
## Get a single avatar URL
Get a single [avatar](../user/profile/index.md#user-settings) URL for a user with the given email address.
Get a single [avatar](../user/profile/index.md#access-your-user-settings) URL for a user with the given email address.
If:
......
......@@ -70,16 +70,16 @@ It picks reviewers and maintainers from the list at the
[engineering projects](https://about.gitlab.com/handbook/engineering/projects/)
page, with these behaviors:
1. It doesn't pick people whose Slack or [GitLab status](../user/profile/index.md#current-status):
1. It doesn't pick people whose Slack or [GitLab status](../user/profile/index.md#set-your-current-status):
- contains the string 'OOO', 'PTO', 'Parental Leave', or 'Friends and Family'
- emoji is `:palm_tree:`, `:beach:`, `:beach_umbrella:`, `:beach_with_umbrella:`, `:ferris_wheel:`, `:thermometer:`, `:face_with_thermometer:`, `:red_circle:`, `:bulb:`, `:sun_with_face:`.
1. [Trainee maintainers](https://about.gitlab.com/handbook/engineering/workflow/code-review/#trainee-maintainer)
are three times as likely to be picked as other reviewers.
1. Team members whose Slack or [GitLab status](../user/profile/index.md#current-status) emoji
1. Team members whose Slack or [GitLab status](../user/profile/index.md#set-your-current-status) emoji
is 🔵 `:large_blue_circle:` are more likely to be picked. This applies to both reviewers and trainee maintainers.
- Reviewers with `:large_blue_circle:` are two times as likely to be picked as other reviewers.
- Trainee maintainers with `:large_blue_circle:` are four times as likely to be picked as other reviewers.
1. People whose [GitLab status](../user/profile/index.md#current-status) emoji
1. People whose [GitLab status](../user/profile/index.md#set-your-current-status) emoji
is 🔶 `:large_orange_diamond:` are half as likely to be picked. This applies to both reviewers and trainee maintainers.
1. It always picks the same reviewers and maintainers for the same
branch name (unless their OOO status changes, as in point 1). It
......
......@@ -95,7 +95,7 @@ The **Seat usage** page lists all users occupying seats. Details for each user i
- Full name
- Username
- Public email address (if they have provided one in their [user settings](../../user/profile/index.md#user-settings))
- Public email address (if they have provided one in their [user settings](../../user/profile/index.md#access-your-user-settings))
The Seat usage listing is updated live, but the usage statistics on the billing page are updated
only once per day. For this reason there can be a minor difference between the seat usage listing
......
......@@ -29,7 +29,7 @@ legal/auditing/compliance reasons.
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22560) in GitLab 11.5.
This configuration option sets the email hostname for [private commit emails](../../profile/index.md#private-commit-email).
This configuration option sets the email hostname for [private commit emails](../../profile/index.md#use-an-automatically-generated-private-commit-email).
By default it is set to `users.noreply.YOUR_CONFIGURED_HOSTNAME`.
In order to change this option:
......
......@@ -85,7 +85,7 @@ There are several types of users in GitLab:
## User activity
You can follow or unfollow other users from their [user profiles](profile/index.md#user-profile).
You can follow or unfollow other users from their [user profiles](profile/index.md#access-your-user-profile).
To see their activity in the top-level Activity view, select Follow or Unfollow, and select
the Followed Users tab:
......
......@@ -44,7 +44,7 @@ To enable 2FA:
1. **In GitLab:**
1. Sign in to your GitLab account.
1. Go to your [**User settings**](../index.md#user-settings).
1. Go to your [**User settings**](../index.md#access-your-user-settings).
1. Go to **Account**.
1. Select **Enable Two-factor Authentication**.
1. **On your device (usually your phone):**
......@@ -248,7 +248,7 @@ Search for `security.webauth.u2f` and double click on it to toggle to `true`.
To set up 2FA with a U2F device:
1. Sign in to your GitLab account.
1. Go to your [**User settings**](../index.md#user-settings).
1. Go to your [**User settings**](../index.md#access-your-user-settings).
1. Go to **Account**.
1. Click **Enable Two-Factor Authentication**.
1. Connect your U2F device.
......@@ -284,7 +284,7 @@ and the following mobile browsers:
To set up 2FA with a WebAuthn compatible device:
1. Sign in to your GitLab account.
1. Go to your [**User settings**](../index.md#user-settings).
1. Go to your [**User settings**](../index.md#access-your-user-settings).
1. Go to **Account**.
1. Select **Enable Two-Factor Authentication**.
1. Plug in your WebAuthn device.
......@@ -351,7 +351,7 @@ request and you're automatically signed in.
If you ever need to disable 2FA:
1. Sign in to your GitLab account.
1. Go to your [**User settings**](../index.md#user-settings).
1. Go to your [**User settings**](../index.md#access-your-user-settings).
1. Go to **Account**.
1. Click **Disable**, under **Two-Factor Authentication**.
......@@ -445,7 +445,7 @@ To regenerate 2FA recovery codes, you need access to a desktop browser:
1. Navigate to GitLab.
1. Sign in to your GitLab account.
1. Go to your [**User settings**](../index.md#user-settings).
1. Go to your [**User settings**](../index.md#access-your-user-settings).
1. Select **Account > Two-Factor Authentication (2FA)**.
1. If you've already configured 2FA, click **Manage two-factor authentication**.
1. In the **Register Two-Factor Authenticator** pane, click **Regenerate recovery codes**.
......
......@@ -7,133 +7,61 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# User account
Each GitLab account has a user profile, and settings. Your [profile](#user-profile)
contains information about you, and your GitLab activity. Your [settings](#user-settings)
allow you to customize some aspects of GitLab to suit yourself.
Each GitLab account has a user profile, which contains information about you and your GitLab activity.
## Creating users
Your profile also includes settings, which you use to customize your GitLab experience.
There are several ways to create users on GitLab. See the [creating users documentation](account/create_accounts.md) for more details.
## Signing in
There are several ways to sign into your GitLab account.
See the [authentication topic](../../topics/authentication/index.md) 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](unknown_sign_in_notification.md) for more details.
## User profile
## Access your user profile
To access your profile:
1. In the top-right corner, select your avatar.
1. Select your name or username.
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](../group/index.md) you're a member of
- Contributed projects: [projects](../project/index.md) you contributed to
- Personal projects: your personal projects (respecting the project's visibility level)
- Starred projects: projects you starred
- Snippets: your personal code [snippets](../snippets.md)
- Followers: people [following](../index.md#user-activity) you
- Following: people you are [following](../index.md#user-activity)
Profile page with active Following view:
![Follow users](img/profile_following_v13_9.png)
## User settings
## Access your user settings
To access your user settings:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
From there, you can:
- Update your personal information, including:
- Full name
- Primary email, public email, and commit email
- Social media handles
- Website URL
- Location
- Job title
- Bio
- Change your [password](#changing-your-password)
- Set a [custom status](#current-status) for your profile
- Manage your [commit email](#commit-email) for your profile
- Manage [2FA](account/two_factor_authentication.md)
- Add details of [external accounts](#add-details-of-external-accounts).
- Change your username and [delete your account](account/delete_account.md)
- Manage applications that can
[use GitLab as an OAuth provider](../../integration/oauth_provider.md#introduction-to-oauth)
- Manage [personal access tokens](personal_access_tokens.md) to access your account via API and authorized applications
- Add and delete emails linked to your account
- Choose which email to use for [notifications](notifications.md), web-based commits, and display on your public profile
- Manage [SSH keys](../../ssh/README.md) to access your account via SSH
- Manage your [preferences](preferences.md#syntax-highlighting-theme)
to customize your own GitLab experience
- [View your active sessions](active_sessions.md) and revoke any of them if necessary
- Access your audit events, a security log of important events involving your account
## Change your password
## Changing your password
To change your password:
1. Go to your [user settings](#user-settings).
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. In the left sidebar, select **Password**.
1. Enter your current password in the **Current password** field.
1. Enter your desired new password twice, once in the **New password** field and
once in the **Password confirmation** field.
1. In the **Current password** field, enter your current password.
1. In the **New password** and **Password confirmation** field, enter your new password.
1. Select **Save password**.
If you don't know your current password, select the 'I forgot my password' link.
If you don't know your current password, select the **I forgot my password** link.
## Change your username
![Change your password](img/change_password_v13_0.png)
Your username has a unique [namespace](../group/index.md#namespaces),
which is updated when you change your username. Before you change your username, read about
[how redirects behave](../project/repository/index.md#redirects-when-changing-repository-paths).
If you do not want to update the namespace, you can create a new user or group and transfer projects to it instead.
## Changing your username
Prerequisites:
Your `username` is a unique [`namespace`](../group/index.md#namespaces)
related to your user ID. Changing it can have unintended side effects, read
[how redirects behave](../project/repository/index.md#redirects-when-changing-repository-paths)
before proceeding.
- Your namespace cannot contain a project with [Container Registry](../packages/container_registry/index.md) tags.
- Your namespace cannot have a project that hosts [GitLab Pages](../project/pages/index.md). For more information,
see [this procedure in the GitLab Team Handbook](https://about.gitlab.com/handbook/tools-and-tips/#how-to-change-your-username-at-gitlabcom).
To change your `username`:
To change your username:
1. Navigate to your [user settings](#user-settings).
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. In the left sidebar, select **Account**.
1. Enter a new username under **Change username**.
1. In the **Change username** section, enter a new username as the path.
1. Select **Update username**.
WARNING:
It is not possible to change your username if it contains a
project with [Container Registry](../packages/container_registry/index.md) 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](https://about.gitlab.com/handbook/tools-and-tips/#how-to-change-your-username-at-gitlabcom)
which also covers the case where you have projects hosted with
[GitLab Pages](../project/pages/index.md).
## Private profile
## Make your user profile page private
The following information is hidden from the user profile page (`https://gitlab.example.com/username`) 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
You can make your user profile visible to only you and GitLab administrators.
To make your profile private:
......@@ -142,11 +70,13 @@ To make your profile private:
1. Select the **Private profile** checkbox.
1. Select **Update profile settings**.
NOTE:
All your profile information can be seen by yourself and GitLab administrators even if
the **Private profile** option is enabled.
The following is hidden from your user profile page (`https://gitlab.example.com/username`):
- Atom feed
- Date when account was created
- Tabs for activity, groups, contributed projects, personal projects, starred projects, snippets
## Add details of external accounts
## Add external accounts to your user profile page
You can 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.
......@@ -155,58 +85,47 @@ To add links to other accounts:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. Edit the desired fields for external accounts:
1. In the **Main settings** section, add your information from:
- Skype
- LinkedIn
- Twitter
1. Select **Update profile settings**.
## Private contributions
## Show private contributions on your user profile page
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/14078) in GitLab 11.3.
Enabling private contributions includes contributions to private projects, in the user contribution calendar graph and user recent activity.
In the user contribution calendar graph and recent activity list, you can show contributions to private projects.
To enable private contributions:
To show private contributions:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. Select the **Private contributions** checkbox.
1. In the **Main settings** section, select the **Include private contributions on my profile** checkbox.
1. Select **Update profile settings**.
## Current status
## Set your 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](#private-profile).
Status messages are restricted to 100 characters of plain text.
They may however contain emoji codes such as `I'm on vacation :palm_tree:`.
Your status is publicly visible even if your [profile is private](#make-your-user-profile-page-private).
To set your current status:
1. In the top-right corner, select your avatar.
1. Select **Set status**, or **Edit status** if you have already set a status.
1. Set the desired emoji and status message.
1. Select **Set status** or, if you have already set a status, **Edit status**.
1. Set the desired emoji and status message. Status messages must be plain text and 100 characters or less.
They can also contain emoji codes like, `I'm on vacation :palm_tree:`.
1. Select **Set status**. Alternatively, you can select **Remove status** to remove your user status entirely.
or
1. In the top-right corner, select your avatar.
1. Select your name or username.
1. Select the Edit profile icon (**{pencil}**).
1. Enter your status message in the **Your status** text field.
1. Select Add status emoji icon (**{slight-smile}**), and select the desired emoji.
1. Select **Update profile settings**.
You can also set your current status [using the API](../../api/users.md#user-status).
You can also set your current status by [using the API](../../api/users.md#user-status).
If you previously selected the **Busy** checkbox, remember to deselect it when you become available again.
If you select the **Busy** checkbox, remember to clear it when you become available again.
## Busy status indicator
## Set a busy status indicator
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/259649) in GitLab 13.6.
> - It was [deployed behind a feature flag](../feature_flags.md), disabled by default.
......@@ -217,23 +136,19 @@ If you previously selected the **Busy** checkbox, remember to deselect it when y
To indicate to others that you are busy, you can set an indicator.
![Busy status indicator](img/busy_status_indicator_v13_6.png)
To set the busy status indicator, either:
- Set it directly:
1. In the top-right corner, select your avatar.
1. Select **Set status**, or **Edit status** if you have already set a status.
1. Select **Set status** or, if you have already set a status, **Edit status**.
1. Select the **Busy** checkbox.
- Set it on your profile:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. Select the **Busy** checkbox.
1. In the **Current status** section, select the **Busy** checkbox.
Once selected, you can see the busy status in various locations in the user interface.
The busy status is displayed in the user interface.
Username:
......@@ -270,7 +185,7 @@ To enable it:
Feature.enable(:set_user_availability_status)
```
## Commit email
## Change the email displayed on your commits
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/21598) in GitLab 11.4.
......@@ -282,29 +197,27 @@ To change your commit email:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. Select the **Commit email** dropdown.
1. Select any of the verified emails.
1. In the **Commit email** list, select an email address.
1. Select **Update profile settings**.
### Private commit email
### Use an automatically-generated private commit email
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22560) 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.
GitLab provides an automatically-generated private commit email address,
so you can keep your email information private.
To enable this option:
To use a private commit email:
1. In the top-right corner, select your avatar.
1. Select **Edit profile**.
1. Select the **Commit email** dropdown.
1. Select **Use a private email** option.
1. In the **Commit email** list, select the **Use a private email** option.
1. Select **Update profile settings**.
After this option is enabled, every Git-related action is performed using the private commit email.
Every Git-related action uses 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:
To stay fully anonymous, you can also copy the private commit email
and configure it on your local machine by using the following command:
```shell
git config --global user.email <your email address>
......@@ -314,16 +227,16 @@ git config --global user.email <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`
When you sign in to the main GitLab application, a `_gitlab_session` cookie is
set. When you close your browser, the cookie is cleared client-side
and it 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`](https://github.com/heartcombo/devise)).
`remember_user_token` expires after
`config/initializers/devise.rb` -> `config.remember_for` (defaults to 2 weeks).
When you sign in to the main GitLab application, you can also check the
**Remember me** option. This sets the `remember_user_token`
cookie via [`devise`](https://github.com/heartcombo/devise).
The `remember_user_token` cookie expires after
`config/initializers/devise.rb` -> `config.remember_for`. The default is 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.
......@@ -359,3 +272,14 @@ The server continues to reset the TTL for that session, independent of whether 2
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.
## Related topics
- [Create users](account/create_accounts.md)
- [Sign in to your GitLab account](../../topics/authentication/index.md)
- [Receive emails for sign-ins from unknown IP addresses or devices](unknown_sign_in_notification.md)
- Manage applications that can [use GitLab as an OAuth provider](../../integration/oauth_provider.md#introduction-to-oauth)
- Manage [personal access tokens](personal_access_tokens.md) to access your account via API and authorized applications
- Manage [SSH keys](../../ssh/README.md) to access your account via SSH
- Change your [syntax highlighting theme](preferences.md#syntax-highlighting-theme)
- [View your active sessions](active_sessions.md) and revoke any of them if necessary
......@@ -257,6 +257,6 @@ This will be rendered as:
> - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/225205) in GitLab 13.2.
User activity events on designs (creation, deletion, and updates) are tracked by GitLab and
displayed on the [user profile](../../profile/index.md#user-profile),
displayed on the [user profile](../../profile/index.md#access-your-user-profile),
[group](../../group/index.md#view-group-activity),
and [project](../working_with_projects.md#project-activity) activity pages.
......@@ -296,7 +296,7 @@ and Git push/pull redirects.
Depending on the situation, different things apply.
When [renaming a user](../../profile/index.md#changing-your-username),
When [renaming a user](../../profile/index.md#change-your-username),
[changing a group path](../../group/index.md#change-a-groups-path) or [renaming a repository](../settings/index.md#renaming-a-repository):
- Existing web URLs for the namespace and anything under it (such as projects) will
......
......@@ -182,7 +182,7 @@ Similar to versioned diff file views, you can see the changes made in a given Wi
> - [Feature flag for Git events was removed](https://gitlab.com/gitlab-org/gitlab/-/issues/258665) in **GitLab 13.5**
Wiki events (creation, deletion, and updates) are tracked by GitLab and
displayed on the [user profile](../../profile/index.md#user-profile),
displayed on the [user profile](../../profile/index.md#access-your-user-profile),
[group](../../group/index.md#view-group-activity),
and [project](../working_with_projects.md#project-activity) activity pages.
......
......@@ -116,7 +116,7 @@ LDAP Users remain confirmed if all of the following conditions are met:
- The ["User email confirmation at sign-up" option](../security/user_email_confirmation.md) is set to false.
- The first sign-in is based on user LDAP credentials.
- The user has added and verified [a secondary email address](profile/index.md#user-settings) some time later.
- The user has added and verified [a secondary email address](profile/index.md) some time later.
NOTE:
Confirmation timestamps (primary vs. secondary) are different.
......@@ -124,6 +124,6 @@ Confirmation timestamps (primary vs. secondary) are different.
Users remain unconfirmed by the background migration if any of the following conditions are met:
- They [create an account through GitLab](profile/account/create_accounts.md).
- They [swap their primary email address](profile/index.md#user-settings) and verify it.
- They [swap their primary email address](profile/index.md#change-the-email-displayed-on-your-commits) and verify it.
- If they have two email addresses with the same `confirmed_at` timestamp due to the linked [security issue](https://gitlab.com/gitlab-org/gitlab/-/issues/121664).
- [LDAP is introduced](../administration/auth/ldap/index.md), and users' primary email address matches that in LDAP.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment