|
|
|
@ -98,6 +98,14 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
# add by nwb
|
|
|
|
|
# 增加对gitlab版本库的支持
|
|
|
|
|
|
|
|
|
|
attrs = pickup_extra_info
|
|
|
|
|
@repository = Repository.factory('Git')
|
|
|
|
|
@repository.safe_attributes = params[:repository]
|
|
|
|
|
if attrs[:attrs_extra].keys.any?
|
|
|
|
|
@repository.merge_extra_info(attrs[:attrs_extra])
|
|
|
|
|
end
|
|
|
|
|
@repository.project = @project
|
|
|
|
|
|
|
|
|
|
# 数据检测
|
|
|
|
|
if params[:repository][:identifier] == ""
|
|
|
|
|
flash[:error] = l(:project_module_repository) + l(:blank)
|
|
|
|
@ -117,14 +125,6 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
attrs = pickup_extra_info
|
|
|
|
|
@repository = Repository.factory('Git')
|
|
|
|
|
@repository.safe_attributes = params[:repository]
|
|
|
|
|
if attrs[:attrs_extra].keys.any?
|
|
|
|
|
@repository.merge_extra_info(attrs[:attrs_extra])
|
|
|
|
|
end
|
|
|
|
|
@repository.project = @project
|
|
|
|
|
|
|
|
|
|
# 判断gitlab用户是否存在,不存在则创建
|
|
|
|
|
user = User.current
|
|
|
|
|
gitlab_user = GitlabUser.find_by_user_id(user.id)
|
|
|
|
@ -135,10 +135,12 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
render :action => 'newrepo', :layout =>'base_projects'
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
gitlab_user = GitlabUser.find_by_user_id(user.id)
|
|
|
|
|
end
|
|
|
|
|
# 创建gitlab版本库
|
|
|
|
|
repos = params[:repository][:identifier]
|
|
|
|
|
if !create_project_for_user(repos,@project.id,gitlab_user.gitlab_user_id)
|
|
|
|
|
temp = create_project_for_user(repos,@project.id,gitlab_user.gitlab_user_id)
|
|
|
|
|
if !temp[:result]
|
|
|
|
|
# 创建gitlab项目失败
|
|
|
|
|
flash[:error] = l(:error_create_gitlab_project)
|
|
|
|
|
render :action => 'newrepo', :layout =>'base_projects'
|
|
|
|
@ -146,6 +148,9 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 连接创建成功后的gitlab版本库
|
|
|
|
|
gitproject = GitlabProject.find_by_gitlab_project_id(temp[:gitprojectid])
|
|
|
|
|
@repository.url = gitproject.repository_url
|
|
|
|
|
@repository.root_url = gitproject.repository_url
|
|
|
|
|
if request.post? && @repository.save
|
|
|
|
|
redirect_to settings_project_path(@project, :tab => 'repositories')
|
|
|
|
|
else
|
|
|
|
@ -262,14 +267,14 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
if(@repository.type=="Repository::Git")
|
|
|
|
|
logger.info "destory the repository value"+"root path"+@root_path+"repo_name"+@repo_name+
|
|
|
|
|
"repository_name"+@repository_name+"user group"+@middle
|
|
|
|
|
system "sed -i /"+@repo_name+"/{d} "+@root_path+"user.passwd"
|
|
|
|
|
system "sed -i /"+@middle+"/{d} "+@root_path+"group.passwd"
|
|
|
|
|
system "rm -r "+@root_path+"htdocs/"+@repository_name
|
|
|
|
|
# if(@sed_user&&@sed_group&&@remove)
|
|
|
|
|
# else
|
|
|
|
|
# logger.info "An error occured when destory the repository"+"delete form passwd: \n"+
|
|
|
|
|
# @sed_user+"delete from group"+@sed_group+"delete from file"+@remove
|
|
|
|
|
# end
|
|
|
|
|
#system "sed -i /"+@repo_name+"/{d} "+@root_path+"user.passwd"
|
|
|
|
|
#system "sed -i /"+@middle+"/{d} "+@root_path+"group.passwd"
|
|
|
|
|
#system "rm -r "+@root_path+"htdocs/"+@repository_name
|
|
|
|
|
|
|
|
|
|
gitlabproject = GitlabProject.find_by_repository_url(@repository.url)
|
|
|
|
|
if gitlabproject
|
|
|
|
|
gitlabproject.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|