debian-mirror-gitlab/doc/user/project/merge_requests/index.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

188 lines
8.5 KiB
Markdown
Raw Normal View History

2019-09-04 21:01:54 +05:30
---
2020-10-24 23:57:45 +05:30
stage: Create
2021-04-17 20:07:23 +05:30
group: Code Review
2021-02-22 17:27:13 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2019-12-26 22:10:19 +05:30
type: index, reference
2019-09-04 21:01:54 +05:30
---
2021-03-11 19:13:27 +05:30
# Merge requests **(FREE)**
2017-08-17 22:00:37 +05:30
2021-04-29 21:17:54 +05:30
Merge requests (MRs) are the way you check source code changes into a branch.
When you open a merge request, you can visualize and collaborate on the code changes before merge.
Merge requests include:
2021-04-17 20:07:23 +05:30
- A description of the request.
- Code changes and inline code reviews.
- Information about CI/CD pipelines.
- A comment section for discussion threads.
- The list of commits.
2021-12-11 22:18:48 +05:30
Read more about [how to get started](getting_started.md).
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
## View merge requests
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
You can view merge requests for your project, group, or yourself.
2021-06-08 01:23:25 +05:30
2021-12-11 22:18:48 +05:30
### View merge requests for a project
2021-06-08 01:23:25 +05:30
2021-12-11 22:18:48 +05:30
To view all merge requests for a project:
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
1. On the top bar, select **Menu > Projects** and find your project.
1. On the left sidebar, select **Merge requests**.
Or, to use a [keyboard shortcut](../../shortcuts.md), press <kbd>g</kbd> + <kbd>m</kbd>.
### View merge requests for all projects in a group
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
To view merge requests for all projects in a group:
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
1. On the top bar, select **Menu > Groups** and find your group.
1. On the left sidebar, select **Merge requests**.
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
If your group contains subgroups, this view also displays merge requests from the subgroup projects.
2021-09-04 01:27:46 +05:30
2021-12-11 22:18:48 +05:30
## View all merge requests assigned to you
To view all merge requests assigned to you:
1. On the top bar, put your cursor in the **Search** box.
1. From the dropdown list, select **Merge requests assigned to me**.
Or, to use a [keyboard shortcut](../../shortcuts.md), press <kbd>Shift</kbd> + <kbd>m</kbd>.
2021-09-04 01:27:46 +05:30
2021-11-11 11:23:49 +05:30
You can [search and filter](../../search/index.md#filter-issue-and-merge-request-lists),
2021-09-04 01:27:46 +05:30
the results, or select a merge request to begin a review.
2021-11-11 11:23:49 +05:30
## Add changes to a merge request
If you have permission to add changes to a merge request, you can add your changes
2021-12-11 22:18:48 +05:30
to an existing merge request in several ways, depending on the complexity of your
change and whether you need access to a development environment:
2021-11-11 11:23:49 +05:30
2021-12-11 22:18:48 +05:30
- [Edit changes in the Web IDE](../web_ide/index.md) in your browser with the
<kbd>.</kbd> [keyboard shortcut](../../shortcuts.md). Use this
2021-11-11 11:23:49 +05:30
browser-based method to edit multiple files, or if you are not comfortable with Git commands.
You cannot run tests from the Web IDE.
- [Edit changes in Gitpod](../../../integration/gitpod.md#launch-gitpod-in-gitlab), if you
need a fully-featured environment to both edit files, and run tests afterward. Gitpod
supports running the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit).
To use Gitpod, you must [enable Gitpod in your user account](../../../integration/gitpod.md#enable-gitpod-in-your-user-settings).
- [Push changes from the command line](../../../gitlab-basics/start-using-git.md), if you are
familiar with Git and the command line.
2022-06-21 17:19:12 +05:30
## Request attention to a merge request
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/343528) in GitLab 14.10 [with a flag](../../../administration/feature_flags.md) named `mr_attention_requests`. Disabled by default.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../../administration/feature_flags.md) named `mr_attention_requests`.
On GitLab.com, this feature is dependent on the enablement status of the feature flag. Refer to the [enablement issue](https://gitlab.com/gitlab-org/gitlab/-/issues/343528) for details.
To tell a merge request's assignee or reviewer that their attention is
needed on a merge request, you can request their attention. If an assignee or a
reviewer has their attention requested on a merge request, the **Attention request**
icon (**{attention}**) is displayed as a solid icon (**{attention-solid}**) on
the merge request list page:
![Attention request icon](img/attention_request_list_v14_10.png)
To view a list of merge requests that need your attention:
1. On the top bar, select **Merge requests** (**{merge-request}**).
1. Select **Attention requests**.
To request attention from another user, use the `/attention @user`
[quick action](../quick_actions.md) or:
1. Go to the merge request.
1. On the right sidebar, identify the user you want to request attention from.
1. Next to the user's name, select **Request attention** (**{attention}**), and the appearance
of the icon changes:
![Attention request toggle](img/attention_request_sidebar_v14_10.png)
### Remove an attention request
If your attention was requested as an assignee or reviewer, it's removed when you:
- Manually remove the attention request by selecting **Remove attention request** (**{attention-solid}**).
- Approve the merge request.
- Add a new user as an assignee or reviewer.
- Request the attention of a different assignee or reviewer.
- Remove yourself (or are removed by someone else) as an assignee or reviewer.
- Merge or close the merge request.
If you are both the assignee and a reviewer on a merge request, you receive
only one attention request, which is synced across both duties. If the
attention request is removed from you, either as an assignee or a reviewer,
it is removed from both your duties.
2021-09-04 01:27:46 +05:30
## Close a merge request
If you decide to permanently stop work on a merge request,
GitLab recommends you close the merge request rather than
2022-01-26 12:08:38 +05:30
[delete it](#delete-a-merge-request). The author and assignees of a merge request, and users with
2021-09-04 01:27:46 +05:30
Developer, Maintainer, or Owner [roles](../../permissions.md) in a project
can close merge requests in the project:
1. Go to the merge request you want to close.
1. Scroll to the comment box at the bottom of the page.
1. Following the comment box, select **Close merge request**.
GitLab closes the merge request, but preserves records of the merge request,
its comments, and any associated pipelines.
### Delete a merge request
GitLab recommends you close, rather than delete, merge requests.
WARNING:
You cannot undo the deletion of a merge request.
To delete a merge request:
2022-04-04 11:22:00 +05:30
1. Sign in to GitLab as a user with the project Owner role.
2021-09-04 01:27:46 +05:30
Only users with this role can delete merge requests in a project.
1. Go to the merge request you want to delete, and select **Edit**.
1. Scroll to the bottom of the page, and select **Delete merge request**.
2017-09-10 17:25:29 +05:30
2021-04-29 21:17:54 +05:30
## Merge request workflows
2017-09-10 17:25:29 +05:30
2021-04-29 21:17:54 +05:30
For a software developer working in a team:
2017-09-10 17:25:29 +05:30
2021-04-29 21:17:54 +05:30
1. You checkout a new branch, and submit your changes through a merge request.
1. You gather feedback from your team.
1. You work on the implementation optimizing code with [Code Quality reports](code_quality.md).
1. You verify your changes with [Unit test reports](../../../ci/unit_test_reports.md) in GitLab CI/CD.
1. You avoid using dependencies whose license is not compatible with your project with [License Compliance reports](../../compliance/license_compliance/index.md).
2021-06-08 01:23:25 +05:30
1. You request the [approval](approvals/index.md) from your manager.
2019-12-26 22:10:19 +05:30
1. Your manager:
2021-04-29 21:17:54 +05:30
1. Pushes a commit with their final review.
2021-06-08 01:23:25 +05:30
1. [Approves the merge request](approvals/index.md).
2021-04-29 21:17:54 +05:30
1. Sets it to [merge when pipeline succeeds](merge_when_pipeline_succeeds.md).
2021-10-27 15:23:28 +05:30
1. Your changes get deployed to production with [manual jobs](../../../ci/jobs/job_control.md#create-a-job-that-must-be-run-manually) for GitLab CI/CD.
2021-04-29 21:17:54 +05:30
1. Your implementations were successfully shipped to your customer.
For a web developer writing a webpage for your company's website:
1. You checkout a new branch and submit a new page through a merge request.
1. You gather feedback from your reviewers.
1. You preview your changes with [Review Apps](../../../ci/review_apps/index.md).
1. You request your web designers for their implementation.
2021-06-08 01:23:25 +05:30
1. You request the [approval](approvals/index.md) from your manager.
2021-04-29 21:17:54 +05:30
1. Once approved, your merge request is [squashed and merged](squash_and_merge.md), and [deployed to staging with GitLab Pages](https://about.gitlab.com/blog/2021/02/05/ci-deployment-and-environments/).
2021-11-11 11:23:49 +05:30
1. Your production team [cherry-picks](cherry_pick_changes.md) the merge commit into production.
2019-12-26 22:10:19 +05:30
2021-04-29 21:17:54 +05:30
## Related topics
2017-08-17 22:00:37 +05:30
2021-04-29 21:17:54 +05:30
- [Create a merge request](creating_merge_requests.md)
2021-10-27 15:23:28 +05:30
- [Review a merge request](reviews/index.md)
2021-04-29 21:17:54 +05:30
- [Authorization for merge requests](authorization_for_merge_requests.md)
- [Testing and reports](testing_and_reports_in_merge_requests.md)
2021-11-18 22:05:49 +05:30
- [GitLab keyboard shortcuts](../../shortcuts.md)
2021-12-11 22:18:48 +05:30
- [Comments and threads](../../discussions/index.md)
- [Suggest code changes](reviews/suggestions.md)
- [Commits](commits.md)
- [CI/CD pipelines](../../../ci/index.md)
2022-04-04 11:22:00 +05:30
- [Push options](../push_options.md) for merge requests