From 6dcc50e60b6970eb852a060108239eb5d4b8c1a6 Mon Sep 17 00:00:00 2001 From: nwb Date: Wed, 16 Jul 2014 15:52:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gitlab=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE(=E7=89=88=E6=9C=AC=E5=BA=93)=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 ++ app/helpers/gitlab_helper.rb | 54 +++++++++++++++++++++++++---- db/schema.rb | 3 +- 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f546a2ac3..2051eb4c9 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -365,6 +365,8 @@ class UsersController < ApplicationController def show # 测试代码 #login_gitlab("admin@local.host","19840410") + #create_project("testproject1") + #create_project_for_user("testproject1","2") # 测试结束 pre_count = 10 #limit diff --git a/app/helpers/gitlab_helper.rb b/app/helpers/gitlab_helper.rb index 486190c88..ea7013c31 100644 --- a/app/helpers/gitlab_helper.rb +++ b/app/helpers/gitlab_helper.rb @@ -1,5 +1,6 @@ # Gitlab5.3 API操作接口 # Add by nwb +# 暂时没支持SSH module GitlabHelper @@ -7,7 +8,7 @@ module GitlabHelper ROOT_PATH="/home/git/repositories/" PROJECT_PATH_CUT = 40 # gitlab版本库所在服务器 - #REPO_IP_ADDRESS = Setting.repository_domain + #REPO_IP_ADDRESS = "http://" + Setting.repository_domain REPO_IP_ADDRESS = "http://192.168.137.100" GITLAB_API = "/api/v3" @@ -31,7 +32,7 @@ module GitlabHelper res = Net::HTTP.post_form(uri, data) if res.code == '201' temp = ActiveSupport::JSON.decode(res.body) - gitlab_token= temp['private_token'] + GitlabHelper.gitlab_token= temp['private_token'] return true else return false @@ -43,14 +44,53 @@ module GitlabHelper # 创建项目 # add by nwb - def create_project(name) - + def create_project(project_name) + url = REPO_IP_ADDRESS + GITLAB_API + "/projects" + uri = URI.parse(url) + data = {name:project_name, private_token:GitlabHelper.gitlab_token} + begin + res = Net::HTTP.post_form(uri, data) + if res.code == '201' + temp = ActiveSupport::JSON.decode(res.body) + #新创建项目的版本库地址 + respo = temp['http_url_to_repo'] + respo['http://localhost'] = REPO_IP_ADDRESS + # 新创建项目的web地址 + webaddress = temp['web_url'] + webaddress['http://localhost'] = REPO_IP_ADDRESS + return true + else + return false + end + rescue =>err + return false + end end # 为指定用户创建版本库 - # name:版本库名称 user:版本库创建后所属的用户 - def create_project_for_user(name,user) - + # project_name:版本库名称 user_id:Gitlab版本库中的用户编号 + # add by nwb + def create_project_for_user(project_name,user_id) + url = REPO_IP_ADDRESS + GITLAB_API + "/projects/user/" + user_id + uri = URI.parse(url) + data = {user_id:user_id, name:project_name,private_token:GitlabHelper.gitlab_token} + begin + res = Net::HTTP.post_form(uri, data) + if res.code == '201' + temp = ActiveSupport::JSON.decode(res.body) + #新创建项目的版本库地址 + respo = temp['http_url_to_repo'] + respo['http://localhost'] = REPO_IP_ADDRESS + # 新创建项目的web地址 + webaddress = temp['web_url'] + webaddress['http://localhost'] = REPO_IP_ADDRESS + return true + else + return false + end + rescue =>err + return false + end end # 创建用户 diff --git a/db/schema.rb b/db/schema.rb index 3d1499022..ac5ca0644 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140715015540) do +ActiveRecord::Schema.define(:version => 20140716021558) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -415,6 +415,7 @@ ActiveRecord::Schema.define(:version => 20140715015540) do t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.string "page_type" + t.integer "sort_type" end create_table "forums", :force => true do |t|