Description
Allow for remote repositories to pass in auth information in addition to the url. The patch will allow options of passing in a String, Hash, or URI
repositories.remote << "http://repository.jboss.org/nexus/content/groups/public-jboss"
repositories.remote << { :url => "http://repository.jboss.org/nexus/content/groups/public-jboss", :username => 'username', :password => 'password' }
repositories.remote << URI.parse( "uri" )
repositories.remote is now an instance of Buildr::RepositoryArray, an extension of Array. The methods that add/change the array have been overridden to convert input into the format of {:url => URI, :username => String, :password => String}, with :username and :password being optional.
repositories.remote now return repos in the format of an Array of {:url => URI, :username => String, :password => String}, so that is a consideration for backward compatibility.
Artifact#download_artifact now passes the auth information to URI.download. HTTP#read and HTTP#write_internal now check the passed in options for auth.
SFTP is not supported by this patch. It would not be a difficult task, just have to consolidate with the existing options[:ssh_options] being passed in.