项目创建版本库替换成gitlab模式

GitlabVersion
nwb 11 years ago
parent 48ded776de
commit c5f6f5884f

@ -39,6 +39,7 @@ class RepositoriesController < ApplicationController
before_filter :check_hidden_repo, :only => [:show, :stats, :revisions, :revision, :diff ] before_filter :check_hidden_repo, :only => [:show, :stats, :revisions, :revision, :diff ]
helper :repositories helper :repositories
include RepositoriesHelper include RepositoriesHelper
include GitlabHelper
#@root_path = RepositoriesHelper::ROOT_PATH #@root_path = RepositoriesHelper::ROOT_PATH
@ -91,10 +92,30 @@ class RepositoriesController < ApplicationController
render :action => 'show', :layout => 'base_projects' render :action => 'show', :layout => 'base_projects'
end end
# 创建git版本库
def create def create
if params[:repository_scm].to_s == 'Gitlab' if params[:repository_scm].to_s == 'Git'
# add by nwb # add by nwb
# 增加对gitlab版本库的支持 # 增加对gitlab版本库的支持
# 判断gitlab用户是否存在不存在则创建
user = User.current
gitlab_user = GitlabUser.find_by_user_id(user.id)
if gitlab_user.nil?
if create_user(user.login,user.show_name,user.password,user.mail,user.id)
else
# 创建gitlab用户失败
# 返回可自定义用户创建gitlab的界面
end
end
# 创建gitlab版本库
repos = params[:repository][:identifier]
if create_project_for_user(repos,@project.id,gitlab_user.gitlab_user_id)
# 创建成功
else
# 创建gitlab项目失败
end
# 连接创建成功后的gitlab版本库
attrs = pickup_extra_info attrs = pickup_extra_info
@repository = Repository.factory('Git') @repository = Repository.factory('Git')
@repository.safe_attributes = params[:repository] @repository.safe_attributes = params[:repository]

@ -89,8 +89,9 @@ module GitlabHelper
# 为指定用户创建版本库 # 为指定用户创建版本库
# project_name版本库名称 user_id:Gitlab版本库中的用户编号 # project_name版本库名称 user_id:Gitlab版本库中的用户编号
# project_id: 项目在trustie中的编号
# add by nwb # add by nwb
def create_project_for_user(project_name,user_id) def create_project_for_user(project_name,project_id,user_id)
url = REPO_IP_ADDRESS + GITLAB_API + "/projects/user/" + user_id url = REPO_IP_ADDRESS + GITLAB_API + "/projects/user/" + user_id
uri = URI.parse(url) uri = URI.parse(url)
data = {user_id:user_id, name:project_name,private_token:GitlabHelper.gitlab_token} data = {user_id:user_id, name:project_name,private_token:GitlabHelper.gitlab_token}

Loading…
Cancel
Save