diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-02-17 14:31:00 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-02-17 14:31:00 +0100 |
commit | 5f271a9fa2f54f766fc9bd04720c65d2145228d4 (patch) | |
tree | 1c11c5c4ad0049a598b8acc34549168fb467d87e /app/services/merge_requests | |
parent | 953e590b18289005c69b72575ae6f38161ffa11b (diff) | |
parent | 827a56a47914f128a78deade463d589328d18fc1 (diff) | |
download | gitlab-ce-5f271a9fa2f54f766fc9bd04720c65d2145228d4.tar.gz |
Merge branch 'master' into fix/gb/pipeline-retry-builds-started
* master: (313 commits)
Allow slashes in slash command arguments
Add API endpoint to get all milestone merge requests
remove trailing comma
Restore pagination to admin abuse reports
replace deprecated NoErrorsPlugin with NoEmitOnErrorsPlugin
only compress assets in production
Reduce number of pipelines created to test pagination
add CHANGELOG.md entry for !8761
prevent diff unfolding link from appearing for deleted files
fix build failures
only show diff unfolding link if there are more lines to show
fix typo in node section
Only yield valid references in ReferenceFilter.references_in
Cache js selectors; fix css
move "Install node modules" step before "Migrate DB" within update process
Renders pagination again for pipelines table
update migration docs for 8.17 to include minimum node version
Add CHANGELOG file
Fix positioning of top scroll button
Remove comments in migration
...
Diffstat (limited to 'app/services/merge_requests')
-rw-r--r-- | app/services/merge_requests/merge_service.rb | 18 | ||||
-rw-r--r-- | app/services/merge_requests/refresh_service.rb | 6 |
2 files changed, 15 insertions, 9 deletions
diff --git a/app/services/merge_requests/merge_service.rb b/app/services/merge_requests/merge_service.rb index 5ca6fec962d..177b714b734 100644 --- a/app/services/merge_requests/merge_service.rb +++ b/app/services/merge_requests/merge_service.rb @@ -11,18 +11,20 @@ module MergeRequests def execute(merge_request) @merge_request = merge_request - return log_merge_error('Merge request is not mergeable', true) unless @merge_request.mergeable? + unless @merge_request.mergeable? + return log_merge_error('Merge request is not mergeable', save_message_on_model: true) + end @source = find_merge_source - return log_merge_error('No source for merge', true) unless @source + unless @source + log_merge_error('No source for merge', save_message_on_model: true) + end merge_request.in_locked_state do if commit after_merge success - else - log_merge_error('Can not merge changes', true) end end end @@ -43,11 +45,11 @@ module MergeRequests if commit_id merge_request.update(merge_commit_sha: commit_id) else - merge_request.update(merge_error: 'Conflicts detected during merge') + log_merge_error('Conflicts detected during merge', save_message_on_model: true) false end rescue GitHooksService::PreReceiveError => e - merge_request.update(merge_error: e.message) + log_merge_error(e.message, save_message_on_model: true) false rescue StandardError => e merge_request.update(merge_error: "Something went wrong during merge: #{e.message}") @@ -70,10 +72,10 @@ module MergeRequests @merge_request.force_remove_source_branch? ? @merge_request.author : current_user end - def log_merge_error(message, http_error = false) + def log_merge_error(message, save_message_on_model: false) Rails.logger.error("MergeService ERROR: #{merge_request_info} - #{message}") - error(message) if http_error + @merge_request.update(merge_error: message) if save_message_on_model end def merge_request_info diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb index b4bfb0e5e8c..581d18032e6 100644 --- a/app/services/merge_requests/refresh_service.rb +++ b/app/services/merge_requests/refresh_service.rb @@ -144,7 +144,11 @@ module MergeRequests return unless @commits.present? merge_requests_for_source_branch.each do |merge_request| - wip_commit = @commits.detect(&:work_in_progress?) + commit_shas = merge_request.commits_sha + + wip_commit = @commits.detect do |commit| + commit.work_in_progress? && commit_shas.include?(commit.sha) + end if wip_commit && !merge_request.work_in_progress? merge_request.update(title: merge_request.wip_title) |