Import opened pull request from Bitbucket
This commit is contained in:
parent
64722a15e3
commit
704115c726
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue