Import opened pull request from Bitbucket

This commit is contained in:
Douglas Barbosa Alexandre 2016-08-22 16:15:39 -03:00 committed by Stan Hu
parent 64722a15e3
commit 704115c726
2 changed files with 90 additions and 0 deletions

View File

@ -1,6 +1,65 @@
module Bitbucket
module Representation
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

View File

@ -11,6 +11,7 @@ module Gitlab
def execute
import_issues
import_pull_requests
true
end
@ -72,6 +73,36 @@ module Gitlab
rescue ActiveRecord::RecordInvalid
nil
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