Commit 38d8d749d73921f370ec8ff28e19f2a5fb7e6f34

Authored by Dmitriy Zaporozhets
2 parents 9a1d0c17 99a2b31e

Merge branch 'feature/merge_commit_message' of /home/git/repositories/gitlab/gitlabhq

app/assets/javascripts/merge_requests.js.coffee
@@ -24,6 +24,8 @@ class MergeRequest @@ -24,6 +24,8 @@ class MergeRequest
24 24
25 modal = $('#modal_merge_info').modal(show: false) 25 modal = $('#modal_merge_info').modal(show: false)
26 26
  27 + disableButtonIfEmptyField '#merge_commit_message', '.accept_merge_request'
  28 +
27 # Local jQuery finder 29 # Local jQuery finder
28 $: (selector) -> 30 $: (selector) ->
29 this.$el.find(selector) 31 this.$el.find(selector)
app/controllers/projects/merge_requests_controller.rb
@@ -125,7 +125,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController @@ -125,7 +125,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
125 125
126 if @merge_request.opened? && @merge_request.can_be_merged? 126 if @merge_request.opened? && @merge_request.can_be_merged?
127 @merge_request.should_remove_source_branch = params[:should_remove_source_branch] 127 @merge_request.should_remove_source_branch = params[:should_remove_source_branch]
128 - @merge_request.automerge!(current_user) 128 + @merge_request.automerge!(current_user, params[:merge_commit_message])
129 @status = true 129 @status = true
130 else 130 else
131 @status = false 131 @status = false
app/models/merge_request.rb
@@ -214,8 +214,8 @@ class MergeRequest < ActiveRecord::Base @@ -214,8 +214,8 @@ class MergeRequest < ActiveRecord::Base
214 self.merge 214 self.merge
215 end 215 end
216 216
217 - def automerge!(current_user)  
218 - if Gitlab::Satellite::MergeAction.new(current_user, self).merge! && self.unmerged_commits.empty? 217 + def automerge!(current_user, commit_message = nil)
  218 + if Gitlab::Satellite::MergeAction.new(current_user, self).merge!(commit_message) && self.unmerged_commits.empty?
219 self.merge!(current_user.id) 219 self.merge!(current_user.id)
220 true 220 true
221 end 221 end
@@ -319,6 +319,15 @@ class MergeRequest < ActiveRecord::Base @@ -319,6 +319,15 @@ class MergeRequest < ActiveRecord::Base
319 update_all(updated_at: Time.now) 319 update_all(updated_at: Time.now)
320 end 320 end
321 321
  322 + def merge_commit_message
  323 + message = "Merge branch '#{source_branch}' into '#{target_branch}'"
  324 + message << "\n\n"
  325 + message << title.to_s
  326 + message << "\n\n"
  327 + message << description.to_s
  328 + message
  329 + end
  330 +
322 private 331 private
323 332
324 def dump_commits(commits) 333 def dump_commits(commits)
app/views/projects/merge_requests/show/_mr_accept.html.haml
@@ -13,7 +13,21 @@ @@ -13,7 +13,21 @@
13 If you still want to do it manually - 13 If you still want to do it manually -
14 %strong 14 %strong
15 = link_to "click here", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal" 15 = link_to "click here", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
16 - for instructions 16 + for instructions.
  17 +
  18 + %br
  19 + If you want to modify merge commit message -
  20 + %strong
  21 + = link_to "click here", "#", class: "modify-merge-commit-link js-toggle-visibility-link", title: "Modify merge commit message"
  22 +
  23 + .js-toggle-visibility-container.hide
  24 + .form-group
  25 + = label_tag :merge_commit_message, "Commit message", class: 'control-label'
  26 + .col-sm-10
  27 + = text_area_tag :merge_commit_message, @merge_request.merge_commit_message, class: "form-control js-gfm-input", rows: 14, required: true
  28 + %p.hint
  29 + The recommended maximum line length is 52 characters for the first line and 72 characters for all following lines.
  30 +
17 .accept-group 31 .accept-group
18 .pull-left 32 .pull-left
19 = f.submit "Accept Merge Request", class: "btn btn-create accept_merge_request" 33 = f.submit "Accept Merge Request", class: "btn btn-create accept_merge_request"
features/project/merge_requests.feature
@@ -67,3 +67,13 @@ Feature: Project Merge Requests @@ -67,3 +67,13 @@ Feature: Project Merge Requests
67 And I leave a comment on the diff page 67 And I leave a comment on the diff page
68 And I switch to the merge request's comments tab 68 And I switch to the merge request's comments tab
69 Then I should see a discussion has started on commit bcf03b5de6c 69 Then I should see a discussion has started on commit bcf03b5de6c
  70 +
  71 + @javascript
  72 + Scenario: I accept merge request with custom commit message
  73 + Given project "Shop" have "Bug NS-05" open merge request with diffs inside
  74 + And merge request "Bug NS-05" is mergeable
  75 + And I visit merge request page "Bug NS-05"
  76 + And merge request is mergeable
  77 + Then I modify merge commit message
  78 + And I accept this merge request
  79 + Then I should see merged request
features/steps/project/project_merge_requests.rb
@@ -4,60 +4,60 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -4,60 +4,60 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
4 include SharedNote 4 include SharedNote
5 include SharedPaths 5 include SharedPaths
6 6
7 - Given 'I click link "New Merge Request"' do 7 + step 'I click link "New Merge Request"' do
8 click_link "New Merge Request" 8 click_link "New Merge Request"
9 end 9 end
10 10
11 - Given 'I click link "Bug NS-04"' do 11 + step 'I click link "Bug NS-04"' do
12 click_link "Bug NS-04" 12 click_link "Bug NS-04"
13 end 13 end
14 14
15 - Given 'I click link "All"' do 15 + step 'I click link "All"' do
16 click_link "All" 16 click_link "All"
17 end 17 end
18 18
19 - Given 'I click link "Closed"' do 19 + step 'I click link "Closed"' do
20 click_link "Closed" 20 click_link "Closed"
21 end 21 end
22 22
23 - Then 'I should see merge request "Wiki Feature"' do 23 + step 'I should see merge request "Wiki Feature"' do
24 within '.merge-request' do 24 within '.merge-request' do
25 page.should have_content "Wiki Feature" 25 page.should have_content "Wiki Feature"
26 end 26 end
27 end 27 end
28 28
29 - Then 'I should see closed merge request "Bug NS-04"' do 29 + step 'I should see closed merge request "Bug NS-04"' do
30 merge_request = MergeRequest.find_by_title!("Bug NS-04") 30 merge_request = MergeRequest.find_by_title!("Bug NS-04")
31 merge_request.closed?.should be_true 31 merge_request.closed?.should be_true
32 page.should have_content "Closed by" 32 page.should have_content "Closed by"
33 end 33 end
34 34
35 - Then 'I should see merge request "Bug NS-04"' do 35 + step 'I should see merge request "Bug NS-04"' do
36 page.should have_content "Bug NS-04" 36 page.should have_content "Bug NS-04"
37 end 37 end
38 38
39 - Then 'I should see "Bug NS-04" in merge requests' do 39 + step 'I should see "Bug NS-04" in merge requests' do
40 page.should have_content "Bug NS-04" 40 page.should have_content "Bug NS-04"
41 end 41 end
42 42
43 - Then 'I should see "Feature NS-03" in merge requests' do 43 + step 'I should see "Feature NS-03" in merge requests' do
44 page.should have_content "Feature NS-03" 44 page.should have_content "Feature NS-03"
45 end 45 end
46 46
47 - And 'I should not see "Feature NS-03" in merge requests' do 47 + step 'I should not see "Feature NS-03" in merge requests' do
48 page.should_not have_content "Feature NS-03" 48 page.should_not have_content "Feature NS-03"
49 end 49 end
50 50
51 51
52 - And 'I should not see "Bug NS-04" in merge requests' do 52 + step 'I should not see "Bug NS-04" in merge requests' do
53 page.should_not have_content "Bug NS-04" 53 page.should_not have_content "Bug NS-04"
54 end 54 end
55 55
56 - And 'I click link "Close"' do 56 + step 'I click link "Close"' do
57 click_link "Close" 57 click_link "Close"
58 end 58 end
59 59
60 - And 'I submit new merge request "Wiki Feature"' do 60 + step 'I submit new merge request "Wiki Feature"' do
61 fill_in "merge_request_title", with: "Wiki Feature" 61 fill_in "merge_request_title", with: "Wiki Feature"
62 62
63 # this must come first, so that the target branch is set 63 # this must come first, so that the target branch is set
@@ -76,7 +76,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -76,7 +76,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
76 click_button "Submit merge request" 76 click_button "Submit merge request"
77 end 77 end
78 78
79 - And 'project "Shop" have "Bug NS-04" open merge request' do 79 + step 'project "Shop" have "Bug NS-04" open merge request' do
80 create(:merge_request, 80 create(:merge_request,
81 title: "Bug NS-04", 81 title: "Bug NS-04",
82 source_project: project, 82 source_project: project,
@@ -84,7 +84,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -84,7 +84,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
84 author: project.users.first) 84 author: project.users.first)
85 end 85 end
86 86
87 - And 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do 87 + step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do
88 create(:merge_request_with_diffs, 88 create(:merge_request_with_diffs,
89 title: "Bug NS-05", 89 title: "Bug NS-05",
90 source_project: project, 90 source_project: project,
@@ -92,7 +92,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -92,7 +92,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
92 author: project.users.first) 92 author: project.users.first)
93 end 93 end
94 94
95 - And 'project "Shop" have "Feature NS-03" closed merge request' do 95 + step 'project "Shop" have "Feature NS-03" closed merge request' do
96 create(:closed_merge_request, 96 create(:closed_merge_request,
97 title: "Feature NS-03", 97 title: "Feature NS-03",
98 source_project: project, 98 source_project: project,
@@ -100,19 +100,19 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -100,19 +100,19 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
100 author: project.users.first) 100 author: project.users.first)
101 end 101 end
102 102
103 - And 'I switch to the diff tab' do 103 + step 'I switch to the diff tab' do
104 visit diffs_project_merge_request_path(project, merge_request) 104 visit diffs_project_merge_request_path(project, merge_request)
105 end 105 end
106 106
107 - And 'I switch to the merge requests comments tab' do 107 + step 'I switch to the merge requests comments tab' do
108 visit project_merge_request_path(project, merge_request) 108 visit project_merge_request_path(project, merge_request)
109 end 109 end
110 110
111 - And 'I click on the first commit in the merge request' do 111 + step 'I click on the first commit in the merge request' do
112 click_link merge_request.commits.first.short_id(8) 112 click_link merge_request.commits.first.short_id(8)
113 end 113 end
114 114
115 - And 'I leave a comment on the diff page' do 115 + step 'I leave a comment on the diff page' do
116 init_diff_note 116 init_diff_note
117 117
118 within('.js-discussion-note-form') do 118 within('.js-discussion-note-form') do
@@ -125,7 +125,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -125,7 +125,7 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
125 end 125 end
126 end 126 end
127 127
128 - And 'I leave a comment like "Line is wrong" on line 185 of the first file' do 128 + step 'I leave a comment like "Line is wrong" on line 185 of the first file' do
129 init_diff_note 129 init_diff_note
130 130
131 within(".js-discussion-note-form") do 131 within(".js-discussion-note-form") do
@@ -138,24 +138,47 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -138,24 +138,47 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
138 end 138 end
139 end 139 end
140 140
141 - Then 'I should see a discussion has started on line 185' do 141 + step 'I should see a discussion has started on line 185' do
142 page.should have_content "#{current_user.name} started a discussion on this merge request diff" 142 page.should have_content "#{current_user.name} started a discussion on this merge request diff"
143 page.should have_content "app/assets/stylesheets/tree.scss:L185" 143 page.should have_content "app/assets/stylesheets/tree.scss:L185"
144 page.should have_content "Line is wrong" 144 page.should have_content "Line is wrong"
145 end 145 end
146 146
147 - Then 'I should see a discussion has started on commit bcf03b5de6c:L185' do 147 + step 'I should see a discussion has started on commit bcf03b5de6c:L185' do
148 page.should have_content "#{current_user.name} started a discussion on commit" 148 page.should have_content "#{current_user.name} started a discussion on commit"
149 page.should have_content "app/assets/stylesheets/tree.scss:L185" 149 page.should have_content "app/assets/stylesheets/tree.scss:L185"
150 page.should have_content "Line is wrong" 150 page.should have_content "Line is wrong"
151 end 151 end
152 152
153 - Then 'I should see a discussion has started on commit bcf03b5de6c' do 153 + step 'I should see a discussion has started on commit bcf03b5de6c' do
154 page.should have_content "#{current_user.name} started a discussion on commit bcf03b5de6c" 154 page.should have_content "#{current_user.name} started a discussion on commit bcf03b5de6c"
155 page.should have_content "One comment to rule them all" 155 page.should have_content "One comment to rule them all"
156 page.should have_content "app/assets/stylesheets/tree.scss:L185" 156 page.should have_content "app/assets/stylesheets/tree.scss:L185"
157 end 157 end
158 158
  159 + step 'merge request is mergeable' do
  160 + page.should have_content 'You can accept this request automatically'
  161 + end
  162 +
  163 + step 'I modify merge commit message' do
  164 + find('.modify-merge-commit-link').click
  165 + fill_in 'merge_commit_message', with: "wow such merge"
  166 + end
  167 +
  168 + step 'merge request "Bug NS-05" is mergeable' do
  169 + merge_request.mark_as_mergeable
  170 + end
  171 +
  172 + step 'I accept this merge request' do
  173 + click_button "Accept Merge Request"
  174 + end
  175 +
  176 + step 'I should see merged request' do
  177 + within '.page-title' do
  178 + page.should have_content "Merged"
  179 + end
  180 + end
  181 +
159 def project 182 def project
160 @project ||= Project.find_by_name!("Shop") 183 @project ||= Project.find_by_name!("Shop")
161 end 184 end
lib/gitlab/satellite/merge_action.rb
@@ -24,10 +24,10 @@ module Gitlab @@ -24,10 +24,10 @@ module Gitlab
24 # Returns false if the merge produced conflicts 24 # Returns false if the merge produced conflicts
25 # Returns false if pushing from the satellite to the repository failed or was rejected 25 # Returns false if pushing from the satellite to the repository failed or was rejected
26 # Returns true otherwise 26 # Returns true otherwise
27 - def merge! 27 + def merge!(merge_commit_message = nil)
28 in_locked_and_timed_satellite do |merge_repo| 28 in_locked_and_timed_satellite do |merge_repo|
29 prepare_satellite!(merge_repo) 29 prepare_satellite!(merge_repo)
30 - if merge_in_satellite!(merge_repo) 30 + if merge_in_satellite!(merge_repo, merge_commit_message)
31 # push merge back to bare repo 31 # push merge back to bare repo
32 # will raise CommandFailed when push fails 32 # will raise CommandFailed when push fails
33 merge_repo.git.push(default_options, :origin, merge_request.target_branch) 33 merge_repo.git.push(default_options, :origin, merge_request.target_branch)
@@ -49,14 +49,7 @@ module Gitlab @@ -49,14 +49,7 @@ module Gitlab
49 in_locked_and_timed_satellite do |merge_repo| 49 in_locked_and_timed_satellite do |merge_repo|
50 prepare_satellite!(merge_repo) 50 prepare_satellite!(merge_repo)
51 update_satellite_source_and_target!(merge_repo) 51 update_satellite_source_and_target!(merge_repo)
52 -  
53 - if merge_request.for_fork?  
54 - diff = merge_repo.git.native(:diff, default_options, "origin/#{merge_request.target_branch}", "source/#{merge_request.source_branch}")  
55 - else  
56 - diff = merge_repo.git.native(:diff, default_options, "#{merge_request.target_branch}", "#{merge_request.source_branch}")  
57 - end  
58 -  
59 - return diff 52 + diff = merge_repo.git.native(:diff, default_options, "origin/#{merge_request.target_branch}", "source/#{merge_request.source_branch}")
60 end 53 end
61 rescue Grit::Git::CommandFailed => ex 54 rescue Grit::Git::CommandFailed => ex
62 handle_exception(ex) 55 handle_exception(ex)
@@ -88,14 +81,7 @@ module Gitlab @@ -88,14 +81,7 @@ module Gitlab
88 in_locked_and_timed_satellite do |merge_repo| 81 in_locked_and_timed_satellite do |merge_repo|
89 prepare_satellite!(merge_repo) 82 prepare_satellite!(merge_repo)
90 update_satellite_source_and_target!(merge_repo) 83 update_satellite_source_and_target!(merge_repo)
91 -  
92 - if (merge_request.for_fork?)  
93 - patch = merge_repo.git.format_patch(default_options({stdout: true}), "origin/#{merge_request.target_branch}..source/#{merge_request.source_branch}")  
94 - else  
95 - patch = merge_repo.git.format_patch(default_options({stdout: true}), "#{merge_request.target_branch}..#{merge_request.source_branch}")  
96 - end  
97 -  
98 - return patch 84 + patch = merge_repo.git.format_patch(default_options({stdout: true}), "origin/#{merge_request.target_branch}..source/#{merge_request.source_branch}")
99 end 85 end
100 rescue Grit::Git::CommandFailed => ex 86 rescue Grit::Git::CommandFailed => ex
101 handle_exception(ex) 87 handle_exception(ex)
@@ -125,34 +111,26 @@ module Gitlab @@ -125,34 +111,26 @@ module Gitlab
125 # 111 #
126 # Returns false if the merge produced conflicts 112 # Returns false if the merge produced conflicts
127 # Returns true otherwise 113 # Returns true otherwise
128 - def merge_in_satellite!(repo) 114 + def merge_in_satellite!(repo, message = nil)
129 update_satellite_source_and_target!(repo) 115 update_satellite_source_and_target!(repo)
130 116
  117 + message ||= "Merge branch '#{merge_request.source_branch}' into '#{merge_request.target_branch}'"
  118 +
131 # merge the source branch into the satellite 119 # merge the source branch into the satellite
132 # will raise CommandFailed when merge fails 120 # will raise CommandFailed when merge fails
133 - if merge_request.for_fork?  
134 - repo.git.pull(default_options({no_ff: true}), 'source', merge_request.source_branch)  
135 - else  
136 - repo.git.pull(default_options({no_ff: true}), 'origin', merge_request.source_branch)  
137 - end 121 + repo.git.merge(default_options({no_ff: true}), "-m #{message}", "source/#{merge_request.source_branch}")
138 rescue Grit::Git::CommandFailed => ex 122 rescue Grit::Git::CommandFailed => ex
139 handle_exception(ex) 123 handle_exception(ex)
140 end 124 end
141 125
142 # Assumes a satellite exists that is a fresh clone of the projects repo, prepares satellite for merges, diffs etc 126 # Assumes a satellite exists that is a fresh clone of the projects repo, prepares satellite for merges, diffs etc
143 def update_satellite_source_and_target!(repo) 127 def update_satellite_source_and_target!(repo)
144 - if merge_request.for_fork?  
145 - repo.remote_add('source', merge_request.source_project.repository.path_to_repo)  
146 - repo.remote_fetch('source')  
147 - repo.git.checkout(default_options({b: true}), merge_request.target_branch, "origin/#{merge_request.target_branch}")  
148 - else  
149 - repo.git.checkout(default_options, "#{merge_request.source_branch}")  
150 - repo.git.checkout(default_options({t: true}), "origin/#{merge_request.target_branch}")  
151 - end 128 + repo.remote_add('source', merge_request.source_project.repository.path_to_repo)
  129 + repo.remote_fetch('source')
  130 + repo.git.checkout(default_options({b: true}), merge_request.target_branch, "origin/#{merge_request.target_branch}")
152 rescue Grit::Git::CommandFailed => ex 131 rescue Grit::Git::CommandFailed => ex
153 handle_exception(ex) 132 handle_exception(ex)
154 end 133 end
155 -  
156 end 134 end
157 end 135 end
158 end 136 end
spec/controllers/merge_requests_controller_spec.rb
@@ -3,7 +3,7 @@ require &#39;spec_helper&#39; @@ -3,7 +3,7 @@ require &#39;spec_helper&#39;
3 describe Projects::MergeRequestsController do 3 describe Projects::MergeRequestsController do
4 let(:project) { create(:project_with_code) } 4 let(:project) { create(:project_with_code) }
5 let(:user) { create(:user) } 5 let(:user) { create(:user) }
6 - let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project, target_branch: "bcf03b5d~3", source_branch: "bcf03b5d") } 6 + let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project, target_branch: "stable", source_branch: "master") }
7 7
8 before do 8 before do
9 sign_in(user) 9 sign_in(user)
@@ -61,7 +61,7 @@ describe Projects::MergeRequestsController do @@ -61,7 +61,7 @@ describe Projects::MergeRequestsController do
61 it "should really be a git email patch with commit" do 61 it "should really be a git email patch with commit" do
62 get :show, project_id: project.to_param, id: merge_request.iid, format: format 62 get :show, project_id: project.to_param, id: merge_request.iid, format: format
63 63
64 - expect(response.body[0..100]).to start_with("From #{merge_request.commits.last.id}") 64 + expect(response.body[0..100]).to start_with("From 6ea87c47f0f8a24ae031c3fff17bc913889ecd00")
65 end 65 end
66 66
67 it "should contain git diffs" do 67 it "should contain git diffs" do
spec/lib/gitlab/satellite/merge_action_spec.rb
@@ -2,13 +2,12 @@ require &#39;spec_helper&#39; @@ -2,13 +2,12 @@ require &#39;spec_helper&#39;
2 2
3 describe 'Gitlab::Satellite::MergeAction' do 3 describe 'Gitlab::Satellite::MergeAction' do
4 before(:each) do 4 before(:each) do
5 -# TestEnv.init(mailer: false, init_repos: true, repos: true)  
6 @master = ['master', 'b1e6a9dbf1c85e6616497a5e7bad9143a4bd0828'] 5 @master = ['master', 'b1e6a9dbf1c85e6616497a5e7bad9143a4bd0828']
7 @one_after_stable = ['stable', '6ea87c47f0f8a24ae031c3fff17bc913889ecd00'] #this commit sha is one after stable 6 @one_after_stable = ['stable', '6ea87c47f0f8a24ae031c3fff17bc913889ecd00'] #this commit sha is one after stable
8 @wiki_branch = ['wiki', '635d3e09b72232b6e92a38de6cc184147e5bcb41'] #this is the commit sha where the wiki branch goes off from master 7 @wiki_branch = ['wiki', '635d3e09b72232b6e92a38de6cc184147e5bcb41'] #this is the commit sha where the wiki branch goes off from master
9 @conflicting_metior = ['metior', '313d96e42b313a0af5ab50fa233bf43e27118b3f'] #this branch conflicts with the wiki branch 8 @conflicting_metior = ['metior', '313d96e42b313a0af5ab50fa233bf43e27118b3f'] #this branch conflicts with the wiki branch
10 9
11 - #these commits are quite close together, itended to make string diffs/format patches small 10 + # these commits are quite close together, itended to make string diffs/format patches small
12 @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3'] 11 @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3']
13 @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633'] 12 @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633']
14 end 13 end
@@ -16,6 +15,7 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do @@ -16,6 +15,7 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
16 let(:project) { create(:project_with_code) } 15 let(:project) { create(:project_with_code) }
17 let(:merge_request) { create(:merge_request, source_project: project, target_project: project) } 16 let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
18 let(:merge_request_fork) { create(:merge_request) } 17 let(:merge_request_fork) { create(:merge_request) }
  18 +
19 describe '#commits_between' do 19 describe '#commits_between' do
20 def verify_commits(commits, first_commit_sha, last_commit_sha) 20 def verify_commits(commits, first_commit_sha, last_commit_sha)
21 commits.each { |commit| commit.class.should == Gitlab::Git::Commit } 21 commits.each { |commit| commit.class.should == Gitlab::Git::Commit }
@@ -145,4 +145,4 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do @@ -145,4 +145,4 @@ describe &#39;Gitlab::Satellite::MergeAction&#39; do
145 end 145 end
146 end 146 end
147 end 147 end
148 -end  
149 \ No newline at end of file 148 \ No newline at end of file
  149 +end