-
- Downloads
Enforce "developers can merge" during `pre-receive`.
1. When a merge request is being merged, save the merge commit SHA in the `in_progress_merge_commit_sha` database column. 2. The `pre-receive` hook looks for any locked (in progress) merge request with `in_progress_merge_commit_sha` matching the `newrev` it is passed. 3. If it finds a matching MR, the merge is legitimate. 4. Update `git_access_spec` to test the behaviour we added here. Also refactored this spec a bit to make it easier to add more contexts / conditions.
Showing
- app/models/repository.rb 8 additions, 6 deletionsapp/models/repository.rb
- app/services/merge_requests/merge_service.rb 3 additions, 1 deletionapp/services/merge_requests/merge_service.rb
- db/migrate/20160629025435_add_column_in_progress_merge_commit_sha_to_merge_requests.rb 8 additions, 0 deletions..._column_in_progress_merge_commit_sha_to_merge_requests.rb
- db/schema.rb 1 addition, 0 deletionsdb/schema.rb
- lib/gitlab/checks/matching_merge_request.rb 18 additions, 0 deletionslib/gitlab/checks/matching_merge_request.rb
- lib/gitlab/git_access.rb 7 additions, 0 deletionslib/gitlab/git_access.rb
- spec/lib/gitlab/diff/position_tracer_spec.rb 2 additions, 1 deletionspec/lib/gitlab/diff/position_tracer_spec.rb
- spec/lib/gitlab/git_access_spec.rb 114 additions, 71 deletionsspec/lib/gitlab/git_access_spec.rb
- spec/models/repository_spec.rb 5 additions, 4 deletionsspec/models/repository_spec.rb
- spec/services/merge_requests/refresh_service_spec.rb 1 addition, 2 deletionsspec/services/merge_requests/refresh_service_spec.rb
Loading
Please register or sign in to comment