Añade plugin Redmine Git Hosting 4.0.2
This commit is contained in:
parent
472cb1ea76
commit
bdd66d941f
494 changed files with 36768 additions and 0 deletions
30
plugins/redmine_git_hosting/app/use_cases/projects/base.rb
Normal file
30
plugins/redmine_git_hosting/app/use_cases/projects/base.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
module Projects
|
||||
class Base
|
||||
|
||||
include RedmineGitHosting::GitoliteAccessor::Methods
|
||||
|
||||
attr_reader :project
|
||||
attr_reader :options
|
||||
|
||||
|
||||
def initialize(project, opts = {})
|
||||
@project = project
|
||||
@options = opts
|
||||
end
|
||||
|
||||
|
||||
class << self
|
||||
|
||||
def call(project, opts = {})
|
||||
new(project, opts).call
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def call
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
module Projects
|
||||
class CreateRepository < Base
|
||||
|
||||
def call
|
||||
create_project_repository
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
def create_project_repository
|
||||
# Create new repository
|
||||
repository = Repository.factory('Xitolite')
|
||||
repository.is_default = true
|
||||
repository.extra_info = {}
|
||||
repository.extra_info['extra_report_last_commit'] = '1'
|
||||
|
||||
# Save it to database
|
||||
project.repositories << repository
|
||||
|
||||
# Create it in Gitolite
|
||||
Repositories::Create.call(repository, creation_options)
|
||||
end
|
||||
|
||||
|
||||
def creation_options
|
||||
{ create_readme_file: RedmineGitHosting::Config.init_repositories_on_create? }
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,38 @@
|
|||
module Projects
|
||||
class ExecuteHooks
|
||||
|
||||
attr_reader :project
|
||||
attr_reader :hook_type
|
||||
attr_reader :params
|
||||
|
||||
|
||||
def initialize(project, hook_type, params = {})
|
||||
@project = project
|
||||
@hook_type = hook_type
|
||||
@params = params
|
||||
end
|
||||
|
||||
|
||||
class << self
|
||||
|
||||
def call(project, hook_type, params = {})
|
||||
new(project, hook_type, params).call
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def call
|
||||
self.send("execute_#{hook_type}_hook")
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
def execute_github_hook
|
||||
RedmineHooks::GithubIssuesSync.call(project, params)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
29
plugins/redmine_git_hosting/app/use_cases/projects/update.rb
Normal file
29
plugins/redmine_git_hosting/app/use_cases/projects/update.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
module Projects
|
||||
class Update < Base
|
||||
|
||||
def call
|
||||
# Adjust daemon status
|
||||
disable_git_daemon_if_not_public
|
||||
resync
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
def disable_git_daemon_if_not_public
|
||||
# Go through all gitolite repos and disable Git daemon if necessary
|
||||
project.gitolite_repos.each do |repository|
|
||||
repository.extra[:git_daemon] = false if repository.git_daemon_enabled? && !project.is_public
|
||||
# Save GitExtra in all cases to trigger urls order consistency checks
|
||||
repository.extra.save
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def resync
|
||||
gitolite_accessor.update_projects([project.id], options)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue