|
|
|
@ -12,7 +12,8 @@ class Repositories::CreateService < ApplicationService
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
if @repository.save!
|
|
|
|
|
gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call
|
|
|
|
|
project.update_attributes(gpid: gitea_repository["id"]) if gitea_repository
|
|
|
|
|
sync_project(gitea_repository)
|
|
|
|
|
sync_repository(@repository, gitea_repository)
|
|
|
|
|
end
|
|
|
|
|
@repository
|
|
|
|
|
end
|
|
|
|
@ -23,6 +24,18 @@ class Repositories::CreateService < ApplicationService
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def sync_project(gitea_repository)
|
|
|
|
|
project.update_columns(gpid: gitea_repository["id"]) if gitea_repository
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def sync_repository(repository, gitea_repository)
|
|
|
|
|
repository.update_columns(url: remote_repository_url) if gitea_repository
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def remote_repository_url
|
|
|
|
|
[Gitea.gitea_config[:domain], '/', user.login, '/', params[:identifier], ".git"].join("")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def repository_params
|
|
|
|
|
params.merge(project_id: project.id)
|
|
|
|
|
end
|
|
|
|
@ -43,9 +56,9 @@ class Repositories::CreateService < ApplicationService
|
|
|
|
|
|
|
|
|
|
ignore = project.ignore
|
|
|
|
|
license = project.license
|
|
|
|
|
hash.merge(license: license.content) if license
|
|
|
|
|
hash.merge(gitignores: ignore.content) if ignore
|
|
|
|
|
puts "[gitea] create repository params: #{hash}"
|
|
|
|
|
hash = hash.merge(license: license.name) if license
|
|
|
|
|
hash = hash.merge(gitignores: ignore.name) if ignore
|
|
|
|
|
hash = hash.merge(auto_init: true) if ignore || license
|
|
|
|
|
hash
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|