lib/provisional/scm/unfuddle_svn.rb in vigetlabs-provisional-2.1.2 vs lib/provisional/scm/unfuddle_svn.rb in vigetlabs-provisional-2.1.3
- old
+ new
@@ -1,43 +1,18 @@
require 'provisional/scm/svn'
-require 'net/http'
-require 'builder'
+require 'provisional/unfuddle_common'
module Provisional
module SCM
class UnfuddleSvn < Provisional::SCM::Svn
def initialize(options)
- %w(username password domain id).each do |opt|
- raise ArgumentError, "#{opt} must be specified" unless options[opt]
- end
+ ensure_required_options(options)
super
end
def init
- begin
- xml = Builder::XmlMarkup.new
- xml.repository do
- xml.abbreviation @options['name']
- xml.title @options['name']
- xml.system 'svn'
- xml.projects do
- xml.project(:id => @options['id'])
- end
- end
-
- http = Net::HTTP.new("#{@options['domain']}.unfuddle.com", 80)
- request = Net::HTTP::Post.new('/api/v1/repositories.xml', 'Content-Type' => 'application/xml')
- request.basic_auth(@options['username'], @options['password'])
- request.body = xml.target!
- response, data = http.request(request)
- unless response.code == "201"
- raise RuntimeError, "Repository not created on Unfuddle due to HTTP error: #{response.code}"
- end
-
- @options['url'] = "http://#{@options['domain']}.unfuddle.com/svn/#{@options['domain']}_#{@options['name']}/"
- rescue
- raise RuntimeError, "Repository not created on Unfuddle due to exception: #{$!}"
- end
+ create_repository(@options)
+ @options['url'] = "http://#{@options['domain']}.unfuddle.com/svn/#{@options['domain']}_#{@options['name']}/"
end
end
end
end