diff --git a/app/apis/sys_api.rb b/app/apis/sys_api.rb index 65c81647e..fcee616b5 100644 --- a/app/apis/sys_api.rb +++ b/app/apis/sys_api.rb @@ -28,6 +28,6 @@ class SysApi < ActionWebService::API::Base :expects => [], :returns => [[AWSProjectWithRepository]] api_method :repository_created, - :expects => [:string, :string], + :expects => [:string, :string, :string], :returns => [:int] end diff --git a/app/controllers/sys_controller.rb b/app/controllers/sys_controller.rb index 395683886..8aff3bd15 100644 --- a/app/controllers/sys_controller.rb +++ b/app/controllers/sys_controller.rb @@ -28,13 +28,12 @@ class SysController < ActionController::Base end # Registers a repository for the given project identifier - # (Subversion specific) - def repository_created(identifier, url) + def repository_created(identifier, vendor, url) project = Project.find_by_identifier(identifier) # Do not create the repository if the project has already one return 0 unless project && project.repository.nil? logger.debug "Repository for #{project.name} was created" - repository = Repository.factory('Subversion', :project => project, :url => url) + repository = Repository.factory(vendor, :project => project, :url => url) repository.save repository.id || 0 end diff --git a/extra/svn/reposman.rb b/extra/svn/reposman.rb index 89215d047..21af33584 100755 --- a/extra/svn/reposman.rb +++ b/extra/svn/reposman.rb @@ -92,6 +92,7 @@ $svn_url = false $test = false $command = "svnadmin create" $force = false +$repository_vendor = 'Subversion' def log(text,level=0, exit=false) return if $quiet or level > $verbose @@ -240,7 +241,7 @@ projects.each do |project| end if $svn_url - ret = soap.RepositoryCreated project.identifier, "#{$svn_url}#{project.identifier}" + ret = soap.RepositoryCreated project.identifier, $repository_vendor, "#{$svn_url}#{project.identifier}" if ret > 0 log("\trepository #{repos_path} registered in Redmine with url #{$svn_url}#{project.identifier}"); else diff --git a/test/functional/sys_api_test.rb b/test/functional/sys_api_test.rb index 232fc7614..48ed780d0 100644 --- a/test/functional/sys_api_test.rb +++ b/test/functional/sys_api_test.rb @@ -41,8 +41,10 @@ class SysControllerTest < Test::Unit::TestCase def test_repository_created project = Project.find(3) assert_nil project.repository - assert invoke(:repository_created, project.identifier, 'http://localhost/svn') + assert invoke(:repository_created, project.identifier, 'Subversion', 'http://localhost/svn') project.reload assert_not_nil project.repository + assert project.repository.is_a?(Repository::Subversion) + assert_equal 'http://localhost/svn', project.repository.url end end