<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1,2 @@
 rdoc
+pkg</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,7 @@ module RestClient
 
 	# Internal class used to build and execute the request.
 	class Request
-		attr_reader :method, :url, :payload, :headers
+		attr_reader :method, :url, :payload, :headers, :user, :password
 
 		def self.execute(args)
 			new(args).execute
@@ -42,6 +42,8 @@ module RestClient
 			@url = args[:url] or raise ArgumentError, &quot;must pass :url&quot;
 			@payload = args[:payload]
 			@headers = args[:headers] || {}
+			@user = args[:user]
+			@password = args[:password]
 		end
 
 		def execute
@@ -84,11 +86,17 @@ module RestClient
 		class Unauthorized &lt; Exception; end
 
 		def transmit(uri, req, payload)
+			setup_credentials(req)
+
 			Net::HTTP.start(uri.host, uri.port) do |http|
 				process_result http.request(req, payload || &quot;&quot;)
 			end
 		end
 
+		def setup_credentials(req)
+			req.basic_auth(user, password) if user
+		end
+
 		def process_result(res)
 			if %w(200 201 202).include? res.code
 				res.body</diff>
      <filename>lib/rest_client.rb</filename>
    </modified>
    <modified>
      <diff>@@ -98,6 +98,34 @@ describe RestClient do
 			@request.transmit(@uri, 'req', nil)
 		end
 
+		it &quot;sets up the credentials prior to the request&quot; do
+			http = mock(&quot;net::http connection&quot;)
+			Net::HTTP.should_receive(:start).and_yield(http)
+			http.stub!(:request)
+			@request.stub!(:process_result)
+
+			@request.stub!(:user).and_return('joe')
+			@request.stub!(:password).and_return('mypass')
+			@request.should_receive(:setup_credentials).with('req')
+
+			@request.transmit(@uri, 'req', nil)
+		end
+
+		it &quot;does not attempt to send any credentials if user is nil&quot; do
+			@request.stub!(:user).and_return(nil)
+			req = mock(&quot;request&quot;)
+			req.should_not_receive(:basic_auth)
+			@request.setup_credentials(req)
+		end
+
+		it &quot;does not attempt to send any credentials if user is nil&quot; do
+			@request.stub!(:user).and_return('joe')
+			@request.stub!(:password).and_return('mypass')
+			req = mock(&quot;request&quot;)
+			req.should_receive(:basic_auth).with('joe', 'mypass')
+			@request.setup_credentials(req)
+		end
+
 		it &quot;execute calls execute_inner&quot; do
 			@request.should_receive(:execute_inner)
 			@request.execute</diff>
      <filename>spec/rest_client_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a9f62bf573558d9002198ecf97572ddd707bcb64</id>
    </parent>
  </parents>
  <author>
    <name>Adam Wiggins</name>
    <email>adam@heroku.com</email>
  </author>
  <url>http://github.com/sevenwire/http_client/commit/15c4bab527d44ff081289b667d45d0ad33cf3933</url>
  <id>15c4bab527d44ff081289b667d45d0ad33cf3933</id>
  <committed-date>2008-03-10T16:52:59-07:00</committed-date>
  <authored-date>2008-03-10T16:52:59-07:00</authored-date>
  <message>credentials sent via http basic auth</message>
  <tree>1ad447c423e12d115d39cfd95eb1bf6fe36f14db</tree>
  <committer>
    <name>Adam Wiggins</name>
    <email>adam@heroku.com</email>
  </committer>
</commit>
