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

Import opened pull request from Bitbucket

parent adbc5c7c885f
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
......@@ -11,6 +11,7 @@ def initialize(project)
def execute
import_issues
import_pull_requests
true
end
......@@ -72,6 +73,36 @@ def import_issues
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
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