2016-08-01 16:54:31 +08:00
class PullRequestsController < ApplicationController
before_filter :find_project_and_repository
2016-08-01 17:38:37 +08:00
before_filter :connect_gitlab , :only = > [ :index , :show , :create , :accept_pr ]
2016-08-01 16:54:31 +08:00
layout " base_projects "
2016-08-01 17:38:37 +08:00
# 返回json格式
2016-08-01 16:54:31 +08:00
def index
2016-08-01 17:38:37 +08:00
@requests = @g . merge_requests ( @project . gpid )
2016-08-01 16:54:31 +08:00
end
def new
2016-08-02 16:34:20 +08:00
2016-08-01 16:54:31 +08:00
end
2016-08-01 17:38:37 +08:00
# Creates a merge request.
# If the operation is successful, 200 and the newly created merge request is returned. If an error occurs, an error number and a message explaining the reason is returned.
#
# @example
# Gitlab.create_merge_request(5, 'New merge request',
# :source_branch => 'source_branch', :target_branch => 'target_branch')
# Gitlab.create_merge_request(5, 'New merge request',
# :source_branch => 'source_branch', :target_branch => 'target_branch', :assignee_id => 42)
#
# @param [Integer] project The ID of a project.
# @param [String] title The title of a merge request.
# @param [Hash] options A customizable set of options.
# @option options [String] :source_branch (required) The source branch name.
# @option options [String] :target_branch (required) The target branch name.
# @option options [Integer] :assignee_id (optional) The ID of a user to assign merge request.
# @return [Gitlab::ObjectifiedHash] Information about created merge request.
2016-08-01 16:54:31 +08:00
def create
2016-08-01 17:38:37 +08:00
title = params [ :title ]
description = params [ :description ]
source_branch = params [ :source_branch ]
target_branch = params [ :target_branch ]
g . create_merge_request ( @project . gpid , :title = > title , :description = > description , :source_branch = > source_branch , :target_branch = > target_branch )
2016-08-01 16:54:31 +08:00
end
def show
2016-08-02 16:34:20 +08:00
@request = @g . merge_request ( @rpoject . gpid , id )
2016-08-01 17:38:37 +08:00
end
# Accept a merge request.
# If merge success you get 200 OK.
# Accept a merge request.
#
# @example
# Gitlab.accept_pull_rquest(5, 1)
#
# @param [Integer] project The ID of a project.
# @param [Integer] id The ID of a merge request.
# @return [Gitlab::ObjectifiedHash]
def accept_pr
commit_id = parmas [ :commit_id ]
status = @g . accept_pull_rquest ( @project . gpid , commit_id )
if status == '200'
# 需跳入的地方
end
2016-08-01 16:54:31 +08:00
end
private
def connect_gitlab
@g = Gitlab . client
end
def find_project_and_repository
@project = Project . find ( params [ :project_id ] )
render_404 if @project . gpid . blank?
@repository = Repository . where ( :project_id = > @project . id , :type = > " Repository::Gitlab " )
rescue ActiveRecord :: RecordNotFound
render_404
end
end