Merge branch 'docs/allow-edits-maintainers-forks' into 'master'

Refactor "Allow edits from maintainers in forks" docs

See merge request gitlab-org/gitlab-ce!24426
This commit is contained in:
Achilleas Pipinellis 2019-01-17 16:08:11 +00:00
commit 9db129266a
5 changed files with 68 additions and 7 deletions

View File

@ -1,20 +1,72 @@
# Allow collaboration on merge requests across forks
> [Introduced][ce-17395] in GitLab 10.6.
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17395)
in GitLab 10.6.
When a user opens a merge request from a fork, they are given the option to allow
upstream members to collaborate with them on the source branch. This allows
the members of the upstream project to make small fixes or rebase branches
before merging, reducing the back and forth of accepting external contributions.
This feature is available for merge requests across forked projects that are
publicly accessible. It makes it easier for members of projects to
collaborate on merge requests across forks.
publicly accessible.
When enabled for a merge request, members with merge access to the target
branch of the project will be granted write permissions to the source branch
of the merge request.
## Enabling commit edits from upstream members
The feature can only be enabled by users who already have push access to the
source project, and only lasts while the merge request is open.
source project and only lasts while the merge request is open. Once enabled,
upstream members will also be able to retry the pipelines and jobs of the
merge request:
Enable this functionality while creating or editing a merge request:
1. Enable the contribution while creating or editing a merge request.
![Enable collaboration](./img/allow_collaboration.png)
![Enable contribution](img/allow_collaboration.png)
[ce-17395]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17395
1. Once the merge request is created, you'll see that commits from members who
can merge to the target branch are allowed.
![Check that contribution is enabled](img/allow_collaboration_after_save.png)
## Pushing to the fork as the upstream member
If the creator of the merge request has enabled contributions from upstream
members, you can push directly to the branch of the forked repository.
Assuming that:
- The forked project URL is `git@gitlab.com:thedude/awesome-project.git`.
- The branch of the merge request is `update-docs`.
Here's how the process would look like:
1. First, you need to get the changes that the merge request has introduced.
Click the **Check out branch** button that has some pre-populated
commands that you can run.
![Check out branch button](img/checkout_button.png)
1. Use the copy to clipboard button to copy the first command and paste them
in your terminal:
```sh
git fetch git@gitlab.com:thedude/awesome-project.git update-docs
git checkout -b thedude-awesome-project-update-docs FETCH_HEAD
```
This will fetch the branch of the forked project and then create a local branch
based off the fetched branch.
1. Make any changes you want and commit.
1. Push to the forked project:
```sh
git push git@gitlab.com:thedude/awesome-project.git thedude-awesome-project-update-docs:update-docs
```
Note the colon (`:`) between the two branches. The above command will push the
local branch `thedude-awesome-project-update-docs` to the
`update-docs` branch of the `git@gitlab.com:thedude/awesome-project.git` repository.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -92,6 +92,15 @@ request widget will show the "Removes source branch" text.
![Remove source branch status](img/remove_source_branch_status.png)
## Allow collaboration on merge requests across forks
When a user opens a merge request from a fork, they are given the option to allow
upstream maintainers to collaborate with them on the source branch. This allows
the maintainers of the upstream project to make small fixes or rebase branches
before merging, reducing the back and forth of accepting community contributions.
[Learn more about allowing upstream members to push to forks.](allow_collaboration.md)
## Authorization for merge requests
There are two main ways to have a merge request flow with GitLab: