Failed to push commits to the source branch of a merge request manually

GitLab CE supports push from maintainer since 10.6 (Allow collaboration on merge requests across forks ).

Both in 10.7 and 10.8, I still failed to push commits to the source branch of a merge request manually.

Here are the steps what I do:

  1. User A forks a project P from user B as his project F.

  2. User A creates a branch ‘edit-from-maintainer’ from master, and push some commits.

  3. User A creates a merge request from ‘edit-from-maintainer’ to the master of project P.

  4. Both of projects P and F are internal.

  5. Enable Allow edits from maintainers.

  6. B clones F, commits some patches to a remote-tracking branch ‘edit-from-maintainer’.

  7. B pushes the remote-tracking branch to the remote, and got the error:

    GitLab: You are not allowed to push code to this project.  
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights  
    and the repository exists.
    

However, the Allows edits from maintainers has effect on the web page of the MR.

By setting merge method of the target project to Fast-forward merge, and the tip of source branch is behind the target branch, a Rebse button appears when allow edits from maintainers, and the rebase completes successfully to push commits to the source branch.

When Allows edits from maintainers is disable, there is no rebase button to do this.

The GitLab doc doesn’t have much description about the flow to push commits to source branch of a MR, like the one of GitHub.
Since there is no related issues reported in GitLab CE, I wonder if there is something wrong in my flow.