Commit 704115c7 authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre Committed by Stan Hu

Import opened pull request from Bitbucket

parent 64722a15
module Bitbucket module Bitbucket
module Representation module Representation
class PullRequest < Representation::Base class PullRequest < Representation::Base
def author
raw.fetch('author', {}).fetch('username', 'Anonymous')
end
def description
raw['description']
end
def iid
raw['id']
end
def state
if raw['state'] == 'MERGED'
'merged'
elsif raw['state'] == 'DECLINED'
'closed'
else
'opened'
end
end
def created_at
raw['created_on']
end
def updated_at
raw['updated_on']
end
def title
raw['title']
end
def source_branch_name
source_branch.dig('branch', 'name')
end
def source_branch_sha
source_branch.dig('commit', 'hash')
end
def target_branch_name
target_branch.dig('branch', 'name')
end
def target_branch_sha
target_branch.dig('commit', 'hash')
end
private
def source_branch
raw['source']
end
def target_branch
raw['destination']
end
end end
end end
end end
...@@ -11,6 +11,7 @@ module Gitlab ...@@ -11,6 +11,7 @@ module Gitlab
def execute def execute
import_issues import_issues
import_pull_requests
true true
end end
...@@ -72,6 +73,36 @@ module Gitlab ...@@ -72,6 +73,36 @@ module Gitlab
rescue ActiveRecord::RecordInvalid rescue ActiveRecord::RecordInvalid
nil nil
end end
def import_pull_requests
pull_requests = client.pull_requests(repo)
pull_requests.each do |pull_request|
begin
description = @formatter.author_line(pull_request.author)
description += pull_request.description
project.merge_requests.create(
iid: pull_request.iid,
title: pull_request.title,
description: description,
source_project: project,
source_branch: pull_request.source_branch_name,
source_branch_sha: pull_request.source_branch_sha,
target_project: project,
target_branch: pull_request.target_branch_name,
target_branch_sha: pull_request.target_branch_sha,
state: pull_request.state,
author_id: gl_user_id(project, pull_request.author),
assignee_id: nil,
created_at: pull_request.created_at,
updated_at: pull_request.updated_at
)
rescue ActiveRecord::RecordInvalid
nil
end
end
end
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment