summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-07-30 23:37:54 -0700
committerStan Hu <stanhu@gmail.com>2018-07-30 23:37:54 -0700
commit3cda8c93d879282af2ab5b21ca2d89daf0238f17 (patch)
tree494ce2da69553ab6dfc41257bcc9feae3726fb42
parent7c88c4af0e31081b4137bc1b93e40d22ef6a93c6 (diff)
downloadgitlab-ce-3cda8c93d879282af2ab5b21ca2d89daf0238f17.tar.gz
Fix merge request SHA
-rw-r--r--lib/bitbucket_server/representation/activity.rb14
-rw-r--r--lib/gitlab/bitbucket_server_import/importer.rb2
-rw-r--r--spec/lib/bitbucket_server/representation/activity_spec.rb1
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importer_spec.rb5
4 files changed, 17 insertions, 5 deletions
diff --git a/lib/bitbucket_server/representation/activity.rb b/lib/bitbucket_server/representation/activity.rb
index a594b0881f6..08bf30a5d1e 100644
--- a/lib/bitbucket_server/representation/activity.rb
+++ b/lib/bitbucket_server/representation/activity.rb
@@ -28,25 +28,33 @@ module BitbucketServer
end
def committer_user
- raw.dig('commit', 'committer', 'displayName')
+ commit.dig('committer', 'displayName')
end
def committer_email
- raw.dig('commit', 'committer', 'emailAddress')
+ commit.dig('committer', 'emailAddress')
end
def merge_timestamp
- timestamp = raw.dig('commit', 'committerTimestamp')
+ timestamp = commit['committerTimestamp']
self.class.convert_timestamp(timestamp)
end
+ def merge_commit
+ commit['id']
+ end
+
def created_at
self.class.convert_timestamp(created_date)
end
private
+ def commit
+ raw.fetch('commit', {})
+ end
+
def action
raw['action']
end
diff --git a/lib/gitlab/bitbucket_server_import/importer.rb b/lib/gitlab/bitbucket_server_import/importer.rb
index a96dd260221..d956968c013 100644
--- a/lib/gitlab/bitbucket_server_import/importer.rb
+++ b/lib/gitlab/bitbucket_server_import/importer.rb
@@ -197,7 +197,6 @@ module Gitlab
updated_at: pull_request.updated_at
}
- attributes[:merge_commit_sha] = target_branch_sha if pull_request.merged?
merge_request = project.merge_requests.create!(attributes)
import_pull_request_comments(pull_request, merge_request) if merge_request.persisted?
end
@@ -219,6 +218,7 @@ module Gitlab
user_id = gitlab_user_id(committer)
timestamp = merge_event.merge_timestamp
+ merge_request.update_attributes({ merge_commit_sha: merge_event.merge_commit })
metric = MergeRequest::Metrics.find_or_initialize_by(merge_request: merge_request)
metric.update(merged_by_id: user_id, merged_at: timestamp)
end
diff --git a/spec/lib/bitbucket_server/representation/activity_spec.rb b/spec/lib/bitbucket_server/representation/activity_spec.rb
index 4051c8369e7..15c50e40472 100644
--- a/spec/lib/bitbucket_server/representation/activity_spec.rb
+++ b/spec/lib/bitbucket_server/representation/activity_spec.rb
@@ -33,5 +33,6 @@ describe BitbucketServer::Representation::Activity do
it { expect(subject.committer_email).to eq('test.user@example.com') }
it { expect(subject.merge_timestamp).to be_a(Time) }
it { expect(subject.created_at).to be_a(Time) }
+ it { expect(subject.merge_commit).to eq('839fa9a2d434eb697815b8fcafaecc51accfdbbc') }
end
end
diff --git a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
index 20b0dcdd8a0..c7cee15ff36 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
@@ -65,7 +65,9 @@ describe Gitlab::BitbucketServerImport::Importer do
comment?: false,
merge_event?: true,
committer_email: project.owner.email,
- merge_timestamp: now)
+ merge_timestamp: now,
+ merge_commit: '12345678'
+ )
@pr_note = instance_double(
BitbucketServer::Representation::Comment,
@@ -90,6 +92,7 @@ describe Gitlab::BitbucketServerImport::Importer do
merge_request = MergeRequest.first
expect(merge_request.metrics.merged_by).to eq(project.owner)
expect(merge_request.metrics.merged_at).to eq(@merge_event.merge_timestamp)
+ expect(merge_request.merge_commit_sha).to eq('12345678')
end
it 'imports comments' do