From d4f15a97c444477353a1bd8770fadaec7c963090 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Tue, 24 Dec 2019 15:43:47 +0800 Subject: [PATCH 1/9] FIX code review --- app/services/repositories/migrate_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/repositories/migrate_service.rb b/app/services/repositories/migrate_service.rb index f80a16d69..a413950e7 100644 --- a/app/services/repositories/migrate_service.rb +++ b/app/services/repositories/migrate_service.rb @@ -37,7 +37,7 @@ class Repositories::MigrateService < ApplicationService end def repository_params - params.merge(project_id: project.id,) + params.merge(project_id: project.id) end def gitea_repository_params From b667664ed40e486d6fb4360b894648dd5eab651a Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 13:55:40 +0800 Subject: [PATCH 2/9] ADD gitea pull request api --- app/services/gitea/client_service.rb | 7 ++-- .../gitea/pull_request/check_service.rb | 35 ++++++++++++++++ .../gitea/pull_request/create_service.rb | 32 ++++++++++++++ .../gitea/pull_request/get_service.rb | 37 ++++++++++++++++ .../gitea/pull_request/list_service.rb | 7 ++++ .../gitea/pull_request/merge_service.rb | 42 +++++++++++++++++++ app/services/gitea/repository/get_service.rb | 13 +++++- 7 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 app/services/gitea/pull_request/check_service.rb create mode 100644 app/services/gitea/pull_request/create_service.rb create mode 100644 app/services/gitea/pull_request/get_service.rb create mode 100644 app/services/gitea/pull_request/list_service.rb create mode 100644 app/services/gitea/pull_request/merge_service.rb diff --git a/app/services/gitea/client_service.rb b/app/services/gitea/client_service.rb index 6723fa248..2e5b88d70 100644 --- a/app/services/gitea/client_service.rb +++ b/app/services/gitea/client_service.rb @@ -15,7 +15,7 @@ class Gitea::ClientService < ApplicationService # token: {}, # data: {} # } - def post(url, params) + def post(url, params={}) puts "[gitea] request params: #{params}" request_url = [api_url, url].join('').freeze auth_token = authen_params(params[:token]) @@ -29,11 +29,10 @@ class Gitea::ClientService < ApplicationService def get(url, params={}) auth_token = authen_params(params[:token]) - response = conn(auth_token).get do |req| + conn(auth_token).get do |req| req.url full_url(url) req.body = params[:data].to_json end - render_status(response) end def delete(url, params={}) @@ -109,6 +108,8 @@ class Gitea::ClientService < ApplicationService # return {status: -1, message: result[0]} raise Error, result[0] when 204 + + puts "[gitea] " raise Error, "[gitea] delete ok" else result = JSON.parse(response&.body) diff --git a/app/services/gitea/pull_request/check_service.rb b/app/services/gitea/pull_request/check_service.rb new file mode 100644 index 000000000..e562a57fc --- /dev/null +++ b/app/services/gitea/pull_request/check_service.rb @@ -0,0 +1,35 @@ +# Check if a pull request has been merged +class Gitea::PullRequest::CheckService < Gitea::ClientService + attr_reader :user, :repo, :pull_request_id + + # user: 用户 + # repo: 仓库名称/标识 + # pull_request_id: pull request主键id + def initialize(user, repo, pull_request_id) + super({token: user.gitea_token}) + @user = user + @repo = repo + @pull_request_id = pull_request_id + end + + def call + response = get(url, params) + render_response(response) + end + + private + def params + Hash.new.merge(token: user.gitea_token) + end + + def url + "/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}/merge".freeze + end + + def render_response(response) + case response.status + when 204 then true + when 404 then false + end + end +end diff --git a/app/services/gitea/pull_request/create_service.rb b/app/services/gitea/pull_request/create_service.rb new file mode 100644 index 000000000..32fd02093 --- /dev/null +++ b/app/services/gitea/pull_request/create_service.rb @@ -0,0 +1,32 @@ +# Create a pull request +class Gitea::PullRequest::CreateService < Gitea::ClientService + attr_reader :user, :repo, :params + + # params ex: + # { + # title: 'pull request title', + # body: 'pull request content', + # head: 'develop', // from branch 源分支 + # base: 'master' // to branch 目标分支 + # } + # 以上列子说明从develop分支合并到master分支 + # repo: 仓库名称 + def initialize(user, repo, params={}) + @user = user + @repo = repo + @params = params + end + + def call + post(url, request_params) + end + + private + def url + "/repos/#{user.login}/#{repo}/pulls".freeze + end + + def request_params + Hash.new.merge(token: user.gitea_token, data: params) + end +end diff --git a/app/services/gitea/pull_request/get_service.rb b/app/services/gitea/pull_request/get_service.rb new file mode 100644 index 000000000..6a7ec30f4 --- /dev/null +++ b/app/services/gitea/pull_request/get_service.rb @@ -0,0 +1,37 @@ +# Get a pull request +class Gitea::PullRequest::GetService < Gitea::ClientService + attr_reader :user, :repo, :pull_request_id + + # user: 用户 + # repo: 仓库名称/标识 + # pull_request_id: pull request主键id + def initialize(user, repo, pull_request_id) + super({token: user.gitea_token}) + @user = user + @repo = repo + @pull_request_id = pull_request_id + end + + def call + response = get(url, params) + render_result(response) + end + + private + def params + Hash.new.merge(token: user.gitea_token) + end + + def url + "/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}".freeze + end + + def render_result(response) + case response.status + when 200 + JSON.parse(response.body) + else + nil + end + end +end diff --git a/app/services/gitea/pull_request/list_service.rb b/app/services/gitea/pull_request/list_service.rb new file mode 100644 index 000000000..a77443f59 --- /dev/null +++ b/app/services/gitea/pull_request/list_service.rb @@ -0,0 +1,7 @@ +# List a repo's pull requests +class Gitea::PullRequest::ListService < Gitea::ClientService + + def url + "/repos/{owner}/{repo}/pulls" + end +end diff --git a/app/services/gitea/pull_request/merge_service.rb b/app/services/gitea/pull_request/merge_service.rb new file mode 100644 index 000000000..971794a7c --- /dev/null +++ b/app/services/gitea/pull_request/merge_service.rb @@ -0,0 +1,42 @@ +# Merge a pull request +class Gitea::PullRequest::MergeService < Gitea::ClientService + attr_reader :user, :repo, :pull_request_id, :params + + # parameters: + # repo: name of the repo + # pull_request_id: index of the pull request to merge + # params: + # title: merge标题 + # message: merge说明 + def initialize(user, repo, pull_request_id, params={}) + @user = user + @repo = repo + @params = params + @pull_request_id = pull_request_id + end + + def call + post(url, request_params) + end + + private + def url + "/repos/#{user.login}/#{repo}/pulls/#{pull_request_id}/merge" + end + + def request_params + Hash.new.merge(token: user.gitea_token, data: body) + end + + def body + # TODO + # 暂时只支持 merge模式 + #params Do: Enum [ merge, rebase, rebase-merge, squash ], default merge + body = { + Do: 'merge' + } + body = body.merge(MergeTitleField: params[:title]) if params[:title] + body = body.merge(MergeMessageField: params[:message]) if params[:message] + body + end +end diff --git a/app/services/gitea/repository/get_service.rb b/app/services/gitea/repository/get_service.rb index 257607c83..372abce28 100644 --- a/app/services/gitea/repository/get_service.rb +++ b/app/services/gitea/repository/get_service.rb @@ -7,11 +7,11 @@ class Gitea::Repository::GetService < Gitea::ClientService end def call - get(url, params) + response = get(url, params) + render_result(response) end private - def params Hash.new.merge(token: user.gitea_token) end @@ -19,4 +19,13 @@ class Gitea::Repository::GetService < Gitea::ClientService def url "/repos/#{user.login}/#{repo_name}".freeze end + + def render_result(response) + case response.status + when 200 + JSON.parse(response.body) + else + nil + end + end end From 018541c6827fc9186bb1803470cc8bf7cf03f14b Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 16:13:40 +0800 Subject: [PATCH 3/9] FIX user unable to register bug and phone validate --- app/models/user.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 5b90d6311..0d6ccfb24 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -19,7 +19,7 @@ class User < ApplicationRecord EDU_NORMAL = 8 # 普通用户 VALID_EMAIL_REGEX = /^[a-zA-Z0-9]+([.\-_\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/i - VALID_PHONE_REGEX = /^1\d{10}$/ + # VALID_PHONE_REGEX = /^1\d{10}$/ # 身份证 VALID_NUMBER_REGEX = /(^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^([A-Z]\d{6,10}(\(\w{1}\))?)$)/ @@ -171,7 +171,7 @@ class User < ApplicationRecord delegate :gender, :department_id, :school_id, :location, :location_city, :technical_title, to: :user_extension, allow_nil: true - before_save :update_hashed_password, :set_laboratory + before_save :update_hashed_password after_create do SyncTrustieJob.perform_later("user", 1) if allow_sync_to_trustie? end @@ -183,7 +183,7 @@ class User < ApplicationRecord validates_presence_of :login, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }, case_sensitive: false validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, case_sensitive: false validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, case_sensitive: false - validates_uniqueness_of :phone, :if => Proc.new { |user| user.phone_changed? && user.phone.present? }, case_sensitive: false + # validates_uniqueness_of :phone, :if => Proc.new { |user| user.phone_changed? && user.phone.present? }, case_sensitive: false validates_length_of :login, maximum: LOGIN_LENGTH_LIMIT validates_length_of :mail, maximum: MAIL_LENGTH_LMIT # validates_format_of :mail, with: VALID_EMAIL_REGEX, multiline: true @@ -735,11 +735,6 @@ class User < ApplicationRecord end end - def set_laboratory - return unless new_record? - - self.laboratory = Laboratory.current if laboratory_id.blank? - end end From 8d1fbfbfe8f683b0c72852cff8972a4163c807c9 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 16:13:59 +0800 Subject: [PATCH 4/9] ADD index to users table --- db/migrate/20191225073843_add_indexes_to_users.rb | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 db/migrate/20191225073843_add_indexes_to_users.rb diff --git a/db/migrate/20191225073843_add_indexes_to_users.rb b/db/migrate/20191225073843_add_indexes_to_users.rb new file mode 100644 index 000000000..865f62d88 --- /dev/null +++ b/db/migrate/20191225073843_add_indexes_to_users.rb @@ -0,0 +1,6 @@ +class AddIndexesToUsers < ActiveRecord::Migration[5.2] + def change + add_index :users, :login + add_index :users, :mail + end +end From 4c92e78f9bba54b664251f96f213c4c1933c5aa7 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 16:15:28 +0800 Subject: [PATCH 5/9] FIX improvew --- app/controllers/accounts_controller.rb | 14 +++++++------- app/forms/gitea/user_form.rb | 13 +++++++++++++ app/interactors/gitea/register_interactor.rb | 14 +++++++++++--- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 4525b0deb..cff5c77a2 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -8,24 +8,24 @@ class AccountsController < ApplicationController # 其他平台同步注册的用户 def remote_register - phone = params[:phone]&.gsub(/\s+/, "") + username = params[:username]&.gsub(/\s+/, "") email = params[:email]&.gsub(/\s+/, "") password = params[:password] platform = (params[:platform] || 'forge')&.gsub(/\s+/, "") - @user = User.new(admin: false, login: phone, mail: email, phone: phone, type: "User") - @user.admin = false - @user.type = 'User' + @user = User.new(admin: false, login: username, mail: email, type: "User") @user.password = password @user.platform = platform @user.activate + ActiveRecord::Base.transaction do - interactor = Gitea::RegisterInteractor.call({username: phone, email: email, password: password}) + interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password}) if interactor.success? - result = Gitea::User::GenerateTokenService.new(phone, password).call + gitea_user = interactor.result + result = Gitea::User::GenerateTokenService.new(username, password).call @user.gitea_token = result['sha1'] + @user.gitea_uid = gitea_user['id'] if @user.save! - UserExtension.create!(user_id: @user.id) render_ok({user: {id: @user.id, token: @user.gitea_token}}) end else diff --git a/app/forms/gitea/user_form.rb b/app/forms/gitea/user_form.rb index 7c52bf57a..8fc83dbfc 100644 --- a/app/forms/gitea/user_form.rb +++ b/app/forms/gitea/user_form.rb @@ -1,4 +1,5 @@ class Gitea::UserForm + include ActiveModel::Model EMAIL_REGEX = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ include ActiveModel::Model @@ -8,6 +9,8 @@ class Gitea::UserForm validates :email, presence: true, format: { with: EMAIL_REGEX, multiline: true } validates :password, presence: true + validate :check_username, :check_email + attr_reader :record def persist @@ -21,4 +24,14 @@ class Gitea::UserForm false end end + + private + def check_username + # errors.add(:login, :exist) + raise "#{username} 已使用." if User.exists?(login: username.strip) + end + + def check_email + raise "#{email} 已使用." if User.exists?(mail: email.strip) + end end diff --git a/app/interactors/gitea/register_interactor.rb b/app/interactors/gitea/register_interactor.rb index 5b6481a0e..909a67911 100644 --- a/app/interactors/gitea/register_interactor.rb +++ b/app/interactors/gitea/register_interactor.rb @@ -6,7 +6,7 @@ module Gitea interactor end - attr_reader :error + attr_reader :error, :result def initialize(params) @params = params @@ -16,10 +16,14 @@ module Gitea @error.nil? end + def result + @result + end + def run Gitea::UserForm.new(params).validate! - Gitea::User::RegisterService.new(params).call - # Gitea::Client.new.register("nifewf", "123@qq.com", "djs_D_00001") + response = Gitea::User::RegisterService.new(params).call + render_result(response) rescue Exception => exception Rails.logger.info "Exception ===========> #{exception.message}" fail!(exception.message) @@ -33,5 +37,9 @@ module Gitea def fail!(error) @error = error end + + def render_result(response) + @result = response + end end end From 9231e2f1bfcbcaeac862f9eda8d7fbb5c6acd6a3 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 16:16:03 +0800 Subject: [PATCH 6/9] FIX update README.md file --- README.md | 113 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 103 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ad9ba54f0..688dda462 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ POST accounts/remote_register curl -X POST \ -d "email=2456233122@qq.com" \ -d "password=djs_D_00001" \ --d "phone=18816895620" \ +-d "username=16895620" \ -d "platform=forge" \ http://localhost:3000/api/accounts/remote_register | jq ``` @@ -36,7 +36,7 @@ http://localhost:3000/api/accounts/remote_register | jq |参数名|必选|类型|说明| -|-|-|- |email |是|string |邮箱 | -|phone |是|string |手机号 | +|username |是|string |登录名 | |password |是|string |秘密 | |platform |否|string |用户来源的相关平台,取值范围['educoder', 'trustie', 'forge'], 默认值为forge | @@ -293,14 +293,13 @@ POST api/projects/migrate ``` curl -X POST \ -d "user_id=36401" \ --d "clone_addr=https://gitea.com/CasperVector/slew.git" --d "name=好项目" \ +-d "clone_addr=https://gitea.com/CasperVector/slew.git" \ +-d "name=ni项目" \ -d "description=my first project" \ --d "repository_name=gorails" \ +-d "repository_name=mirror_demo" \ -d "project_category_id=1" \ -d "project_language_id=2" \ --d "private=true" -http://localhost:3000/api/projects/ | jq +http://localhost:3000/api/projects/migrate | jq ``` *请求参数说明:* @@ -313,7 +312,7 @@ http://localhost:3000/api/projects/ | jq |repository_name |是|string |仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 | |project_category_id|是|int |项目类别id | |project_language_id|是|int |项目语言id | -|private |否|boolean|项目是否私有, true:为私有,false: 公开,默认为公开 | +|private |否|boolean|项目是否私有, true:为私有,false: 非私有,默认为公开 | *返回参数说明:* @@ -327,8 +326,102 @@ http://localhost:3000/api/projects/ | jq 返回值 ``` { - "id": 3240, - "name": "好项目" + "id": 3263, + "name": "ni项目" +} +``` +--- + +#### 项目详情 +``` +POST api/projects/:identifier +``` +*示例* +``` +curl -X GET \ +-d "user_id=36401" \ +-d "clone_addr=https://gitea.com/CasperVector/slew.git" \ +-d "name=ni项目" \ +-d "description=my first project" \ +-d "repository_name=mirror_demo" \ +-d "project_category_id=1" \ +-d "project_language_id=2" \ +http://localhost:3000/api/projects/migrate | jq +``` +*请求参数说明:* + +|参数名|必选|类型|说明| +-|-|-|- +|user_id |是|int |用户id或者组织id | +|name |是|string |项目名称 | +|clone_addr |是|string |镜像项目clone地址 | +|description |否|string |项目描述 | +|repository_name |是|string |仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 | +|project_category_id|是|int |项目类别id | +|project_language_id|是|int |项目语言id | +|private |否|boolean|项目是否私有, true:为私有,false: 非私有,默认为公开 | + + +*返回参数说明:* + +|参数名|类型|说明| +-|-|- +|id |int |id | +|name |string|项目名称| + + +返回值 +``` +{ + "id": 3263, + "name": "ni项目" +} +``` +--- + +#### 项目列表 +``` +GET api/projects +``` +*示例* +``` +curl -X POST \ +-d "user_id=36401" \ +-d "clone_addr=https://gitea.com/CasperVector/slew.git" \ +-d "name=ni项目" \ +-d "description=my first project" \ +-d "repository_name=mirror_demo" \ +-d "project_category_id=1" \ +-d "project_language_id=2" \ +http://localhost:3000/api/projects/migrate | jq +``` +*请求参数说明:* + +|参数名|必选|类型|说明| +-|-|-|- +|user_id |是|int |用户id或者组织id | +|name |是|string |项目名称 | +|clone_addr |是|string |镜像项目clone地址 | +|description |否|string |项目描述 | +|repository_name |是|string |仓库名称, 只含有数字、字母、下划线不能以下划线开头和结尾,且唯一 | +|project_category_id|是|int |项目类别id | +|project_language_id|是|int |项目语言id | +|private |否|boolean|项目是否私有, true:为私有,false: 非私有,默认为公开 | + + +*返回参数说明:* + +|参数名|类型|说明| +-|-|- +|id |int |id | +|name |string|项目名称| + + +返回值 +``` +{ + "id": 3263, + "name": "ni项目" } ``` --- From fafefdbb6f8ebfabe658aca2f444e74b49de3b4a Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 19:30:06 +0800 Subject: [PATCH 7/9] ADD get project branches api --- app/controllers/projects_controller.rb | 10 +++++++++ app/models/project.rb | 4 ++++ app/services/gitea/client_service.rb | 9 ++++++++ .../gitea/repository/branches_service.rb | 22 +++++++++++++++++++ app/views/projects/branches.json.jbuilder | 3 +++ 5 files changed, 48 insertions(+) create mode 100644 app/services/gitea/repository/branches_service.rb create mode 100644 app/views/projects/branches.json.jbuilder diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 66cef715c..a3bcf65cb 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,7 +1,9 @@ class ProjectsController < ApplicationController before_action :require_login + before_action :find_project, only: %i[branches] def index + end def create @@ -24,7 +26,15 @@ class ProjectsController < ApplicationController tip_exception(e.message) end + def branches + @branches = Gitea::Repository::BranchesService.new(current_user, @project.identifier).call + end + private + def find_project + @project = Project.find_by_identifier! params[:id] + end + def project_params params.permit(:user_id, :name, :description, :repository_name, :project_category_id, :project_language_id, :license_id, :ignore_id) diff --git a/app/models/project.rb b/app/models/project.rb index 3b8d293de..5699e6f21 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -34,4 +34,8 @@ class Project < ApplicationRecord members.exists?(user_id: user.id) end + def to_param + self.identifier.parameterize + end + end diff --git a/app/services/gitea/client_service.rb b/app/services/gitea/client_service.rb index 2e5b88d70..47483ec62 100644 --- a/app/services/gitea/client_service.rb +++ b/app/services/gitea/client_service.rb @@ -121,4 +121,13 @@ class Gitea::ClientService < ApplicationService def authen_params(token) (token.is_a? String) ? {token: token} : Hash(token) end + + def render_data(response) + case response.status + when 201, 200 + JSON.parse(response.body) + else + nil + end + end end diff --git a/app/services/gitea/repository/branches_service.rb b/app/services/gitea/repository/branches_service.rb new file mode 100644 index 000000000..4e4c67527 --- /dev/null +++ b/app/services/gitea/repository/branches_service.rb @@ -0,0 +1,22 @@ +class Gitea::Repository::BranchesService < Gitea::ClientService + attr_reader :user, :repo + + def initialize(user, repo) + @user = user + @repo = repo + end + + def call + response = get(url, params) + render_data(response) + end + + private + def params + Hash.new.merge(token: user.gitea_token) + end + + def url + "/repos/#{user.login}/#{repo}/branches".freeze + end +end diff --git a/app/views/projects/branches.json.jbuilder b/app/views/projects/branches.json.jbuilder new file mode 100644 index 000000000..c93b6fbe4 --- /dev/null +++ b/app/views/projects/branches.json.jbuilder @@ -0,0 +1,3 @@ +json.array! @branches do |branch| + json.name branch['name'] +end From 13442935062864426581d0b6ce95eea25b1f7e98 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 19:30:29 +0800 Subject: [PATCH 8/9] FIX update routes --- config/routes.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/routes.rb b/config/routes.rb index 0f97eba11..9a7b3652a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,6 +42,9 @@ Rails.application.routes.draw do collection do post :migrate end + member do + get :branches + end end # resources :memos do From 4a4ced0edd6a15f1be382b56fe550585f0c57513 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 25 Dec 2019 19:31:27 +0800 Subject: [PATCH 9/9] FIX sync repository identifier --- app/services/repositories/create_service.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 38aecaaa0..70dc84799 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -12,7 +12,7 @@ class Repositories::CreateService < ApplicationService ActiveRecord::Base.transaction do if @repository.save! gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call - sync_project(gitea_repository) + sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) end @repository @@ -24,7 +24,8 @@ class Repositories::CreateService < ApplicationService private - def sync_project(gitea_repository) + def sync_project(repository, gitea_repository) + project.update_column('identifier', repository.identifier) project.update_columns(gpid: gitea_repository["id"]) if gitea_repository end