You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by to...@apache.org on 2016/05/03 06:03:09 UTC
buildr git commit: BUILDR-577 Allow remote repo to be added with http
basic auth support.
Repository: buildr
Updated Branches:
refs/heads/master 0d2d1faf9 -> 95936baa5
BUILDR-577 Allow remote repo to be added with http basic auth support.
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/95936baa
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/95936baa
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/95936baa
Branch: refs/heads/master
Commit: 95936baa599a4c9151585d14fc50c9e78be4f734
Parents: 0d2d1fa
Author: Antoine Toulme <an...@lunar-ocean.com>
Authored: Mon May 2 21:02:59 2016 -0700
Committer: Antoine Toulme <an...@lunar-ocean.com>
Committed: Mon May 2 21:02:59 2016 -0700
----------------------------------------------------------------------
CHANGELOG | 1 +
lib/buildr/packaging/artifact.rb | 48 ++++++++++++++++++++++++++++++++++-
spec/packaging/artifact_spec.rb | 21 ++++++++++++++-
3 files changed, 68 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/buildr/blob/95936baa/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 7882bfd..09d52d9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,7 @@
* Change: Update jekyll to 3.1.3
* Change: Update rdoc to 4.2.2
* Added: Travis badge to README.rdoc
+* Added: BUILDR-577 Allow remote repo to be added with http basic auth support. Submitted by Michael Guymon.
1.4.25 (2016-04-18)
http://git-wip-us.apache.org/repos/asf/buildr/blob/95936baa/lib/buildr/packaging/artifact.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/packaging/artifact.rb b/lib/buildr/packaging/artifact.rb
index 2189969..f696c61 100644
--- a/lib/buildr/packaging/artifact.rb
+++ b/lib/buildr/packaging/artifact.rb
@@ -426,7 +426,7 @@ module Buildr #:nodoc:
# which they are returned from #remote, until successful.
def download
trace "Downloading #{to_spec}"
- remote = Buildr.repositories.remote.map { |repo_url| URI === repo_url ? repo_url : URI.parse(repo_url) }
+ remote = Buildr.repositories.remote_uri
remote = remote.each { |repo_url| repo_url.path += '/' unless repo_url.path[-1] == '/' }
fail "Unable to download #{to_spec}. No remote repositories defined." if remote.empty?
exact_success = remote.find do |repo_url|
@@ -650,6 +650,52 @@ module Buildr #:nodoc:
end
@remote
end
+
+ # :call-seq:
+ # remote_uri => Array
+ #
+ # Returns an array of all the remote repositories as instances of URI
+ #
+ # Supports
+ # * String urls: "http://example.com/repo"
+ # * URI: URI.parse( "http://example.com/repo" )
+ # * Hash: { :url => "http://example.com/repo", :user => "user", :pass => "pass" }
+ #
+ def remote_uri
+ remote
+
+ uris = []
+ @remote.each do |repo|
+ case repo
+ when nil then
+ # ignore nil
+ when URI then
+ uris << repo
+ when Hash then
+ url = (repo[:url] || repo['url'] )
+ if url
+ uri = URI.parse(url)
+ if ( username = (repo[:username] || repo['username'] || repo[:user] || repo['user']) )
+ uri.user = username
+ end
+
+ if ( password = (repo[:password] || repo['password'] || repo[:pass] || repo['pass']) )
+ uri.password = password
+ end
+ uris << uri
+ else
+ fail( "Repository Hash format missing url: #{repo}" )
+ end
+
+ when String then
+ uris << URI.parse(repo)
+ else
+ fail( "Unsupported Repository format: #{repo}" )
+ end
+ end
+
+ uris
+ end
# :call-seq:
# remote = Array
http://git-wip-us.apache.org/repos/asf/buildr/blob/95936baa/spec/packaging/artifact_spec.rb
----------------------------------------------------------------------
diff --git a/spec/packaging/artifact_spec.rb b/spec/packaging/artifact_spec.rb
index 6a28397..c00bdc4 100644
--- a/spec/packaging/artifact_spec.rb
+++ b/spec/packaging/artifact_spec.rb
@@ -209,6 +209,26 @@ describe Repositories, 'local' do
end
end
+describe Repositories, 'remote_uri' do
+ before do
+ Buildr.repositories.instance_eval do
+ @local = @remote = @release_to = nil
+ end
+
+ @repos = [ 'https://oss.sonatype.org/', 'http://www.ibiblio.org/maven2', { :url => 'http://repo1.maven.org/maven2', :username => 'user', :password => 'password' } ]
+ end
+
+ it 'should convert remote to array of uri' do
+ uri = URI.parse( 'http://repo1.maven.org/maven2' )
+ uri.user = 'user'
+ uri.password = 'password'
+
+ uris = [ URI.parse( 'https://oss.sonatype.org/'), URI.parse( 'http://www.ibiblio.org/maven2' ), uri ]
+
+ repositories.remote = @repos
+ repositories.remote_uri.should eql(uris)
+ end
+end
describe Repositories, 'remote' do
before do
@@ -855,7 +875,6 @@ describe Buildr, '#install' do
@spec = 'group:id:jar:all:1.0'
pom = artifact(@spec).pom
write @file
- p method(:install)
install artifact(@spec).from(@file)
lambda { install.invoke }.should_not change { File.exist?(repositories.locate(pom)) }.to(true)
end