{"action":"created","comment":{"url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/comments/41084268","id":41084268,"diff_hunk":"@@ -893,25 +896,133 @@ def default_ami_for_region(region, criteria = {})\n \n     def create_winrm_transport(machine_spec, machine_options, instance)\n       remote_host = determine_remote_host(machine_spec, instance)\n+      username = machine_spec.reference[:winrm_username] || 'Administrator'\n+      # default to http for now, should upgrade to https when knife support self-signed\n+      transport_type = machine_options[:winrm_transport] || 'http'\n+      type = case transport_type\n+             when 'http'\n+               :plaintext\n+             when 'https'\n+               :ssl\n+             end\n+      if machine_spec.reference[:winrm_port]\n+        port = machine_spec.reference[:winrm_port]\n+      else #default port\n+        port = case transport_type\n+                 when 'http'\n+                   '5985'\n+                 when 'https'\n+                   '5986'\n+                 end\n+      end\n+      endpoint = \"#{transport_type}://#{remote_host}:#{port}/wsman\"\n \n-      port = machine_spec.reference['winrm_port'] || 5985\n-      endpoint = \"http://#{remote_host}:#{port}/wsman\"\n-      type = :plaintext\n-      pem_bytes = get_private_key(instance.key_name)\n-      encrypted_admin_password = wait_for_admin_password(machine_spec)\n+      if machine_options[:password]\n+        password = machine_options[:password]\n+      else # pull from ec2 and store in reference\n+        if machine_spec.reference[:winrm_encrypted_password]\n+          decoded = Base64.decode64(machine_spec.reference[:winrm_encrypted_password])\n+        else\n+          encrypted_admin_password = wait_for_admin_password(machine_spec)\n+          machine_spec.reference[:winrm_encrypted_password]=encrypted_admin_password\n+          # ^^^ should be saved\n+          decoded = Base64.decode64(encrypted_admin_password)\n+        end\n+        # decrypt so we can utilize\n+        private_key = OpenSSL::PKey::RSA.new(get_private_key(instance.key_name))\n+        password = private_key.private_decrypt decoded\n+      end\n \n-      decoded = Base64.decode64(encrypted_admin_password)\n-      private_key = OpenSSL::PKey::RSA.new(pem_bytes)\n-      decrypted_password = private_key.private_decrypt decoded\n+      disable_sspi =  machine_options[:winrm_disable_sspi] || false # default to Negotiate\n+      basic_auth_only = machine_options[:winrm_basic_auth_only] || false # disallow Basic auth by default\n+      no_ssl_peer_verification = machine_options[:winrm_no_ssl_peer_verification] || false #disallow MITM potential by default\n \n       winrm_options = {\n-        :user => machine_spec.reference['winrm_username'] || 'Administrator',\n-        :pass => decrypted_password,\n-        :disable_sspi => true,\n-        :basic_auth_only => true\n+        user: username,\n+        pass: password,\n+        disable_sspi: disable_sspi,\n+        basic_auth_only: basic_auth_only,\n+        no_ssl_peer_verification: no_ssl_peer_verification,\n       }\n \n+      if no_ssl_peer_verification or type != :ssl\n+        # we won't verify certs\n+      elsif machine_spec.reference[:winrm_ssl_cert]\n+        # we have stored the cert\n+      else\n+        # we need to retrieve the cert and verify it by connecting just to\n+        # retrieve the ssl certificate and compare it to what we see in the\n+        # console logs\n+        console_lines = Base64.decode64(instance.console_output.data.output).lines\n+        noverify_peer_context = OpenSSL::SSL::SSLContext.new\n+        noverify_peer_context.verify_mode = OpenSSL::SSL::VERIFY_NONE\n+        tcp_connection = TCPSocket.new(instance.private_ip_address, '5986')\n+        shady_ssl_connection = OpenSSL::SSL::SSLSocket.new(tcp_connection, noverify_peer_context)\n+        shady_ssl_connection.connect\n+        shady_ssl_connection.peer_cert_chain\n+        winrm_cert = shady_ssl_connection.peer_cert_chain.first\n+\n+        rdp_thumbprint = console_lines.grep(\n+          /RDPCERTIFICATE-THUMBPRINT/)[-1].split(': ').last.chomp\n+        rdp_subject = console_lines.grep(\n+          /RDPCERTIFICATE-SUBJECTNAME/)[-1].split(': ').last.chomp\n+        winrm_subject = winrm_cert.subject.to_s.split('=').last.upcase\n+        winrm_thumbprint=OpenSSL::Digest::SHA1.new(winrm_cert.to_der).to_s.upcase\n+\n+        if rdp_subject != winrm_subject or rdp_thumbprint != winrm_thumbprint\n+          Chef::Log.fatal \"Winrm ssl port certificate differs from rdp console logs\"\n+        end\n+        machine_spec.reference[:winrm_ssl_subject]=winrm_subject\n+        machine_spec.reference[:winrm_ssl_thumbprint]=winrm_thumbprint\n+        machine_spec.reference[:winrm_ssl_cert]=winrm_cert.to_pem\n+      end\n+\n+      # If we have a cert, use it for verification\n+      if machine_spec.reference[:winrm_ssl_cert]\n+        FileUtils.mkdir_p(Chef::Config.trusted_certs_dir)\n+        filename = File.join(Chef::Config.trusted_certs_dir, \"#{machine_spec.name}.crt\")\n+        if File.exists?(filename)\n+          Chef::Log.warn(\"Existing cert for #{winrm_subject} in #{filename}\")\n+        else\n+          Chef::Log.warn(\"Adding certificate for #{winrm_subject} in #{filename}\")\n+          File.open(filename, File::CREAT|File::TRUNC|File::RDWR, 0644) do |f|\n+            f.print(machine_spec.reference[:winrm_ssl_cert])\n+          end\n+        end\n+        winrm_options[:ca_trust_path] = filename\n+      end\n       Chef::Provisioning::Transport::WinRM.new(\"#{endpoint}\", type, winrm_options, {})\n+      binding.pry\n+      # in order for ssl to work, we need to tell ssl that it's ok that ssl_subject doesn't\n+      # match the ip\n+      #[19] pry(#<Chef::Provisioning::AWSDriver::Driver>)> endpoint.split('/')[2].split(':').first\n+      #  => \"10.113.70.104\"\n+      #  [20] pry(#<Chef::Provisioning::AWSDriver::Driver>)> machine_spec.reference[:winrm_ssl_subject]\n+      #    => \"IP-0A714668\"\n+      #\n+      # [1] pry(#<Chef::Provisioning::AWSDriver::Driver>)> Chef::Provisioning::Transport::WinRM.new(\"#{endpoint}\", type, winrm_options, {}).execute('hostname')\n+      # OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed\n+      # from /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:307:in `connect'\n+      # [2] pry(#<Chef::Provisioning::AWSDriver::Driver>)> wtf!\n+      # Exception: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed\n+      # --\n+      # 0: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:307:in `connect'\n+      # 1: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:307:in `ssl_connect'\n+      # 2: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:755:in `block in connect'\n+      # 3: /home/hh/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout'\n+      # 4: /home/hh/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/timeout.rb:99:in `call'\n+      # 5: /home/hh/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/timeout.rb:99:in `timeout'\n+      # 6: /home/hh/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/timeout.rb:125:in `timeout'\n+      # 7: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:746:in `connect'\n+      # 8: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:612:in `query'\n+      # 9: /home/hh/.rvm/gems/ruby-2.2.0/gems/httpclient-2.6.0.1/lib/httpclient/session.rb:164:in `query'\n+      # [3] pry(#<Chef::Provisioning::AWSDriver::Driver>)> winrm_options\n+      # => {:user=>\"Administrator\",\n+      #  :pass=>\"(xntd8f=-HNnuJ3\",\n+      #   :disable_sspi=>false,\n+      #    :basic_auth_only=>false,\n+      #     :no_ssl_peer_verification=>false,","path":"lib/chef/provisioning/aws_driver/driver.rb","position":166,"original_position":166,"commit_id":"9fced5eeea48584653dd2072cd24365e720eadf3","original_commit_id":"9fced5eeea48584653dd2072cd24365e720eadf3","user":{"login":"hh","id":31331,"avatar_url":"https://avatars.githubusercontent.com/u/31331?v=3","gravatar_id":"","url":"https://api.github.com/users/hh","html_url":"https://github.com/hh","followers_url":"https://api.github.com/users/hh/followers","following_url":"https://api.github.com/users/hh/following{/other_user}","gists_url":"https://api.github.com/users/hh/gists{/gist_id}","starred_url":"https://api.github.com/users/hh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hh/subscriptions","organizations_url":"https://api.github.com/users/hh/orgs","repos_url":"https://api.github.com/users/hh/repos","events_url":"https://api.github.com/users/hh/events{/privacy}","received_events_url":"https://api.github.com/users/hh/received_events","type":"User","site_admin":false},"body":"@mwrock \r\nThe purpose here is to make it easy to copy the already existing self signed cert generated by windows on first boot for rdp, and reuse it for winrm. The Subject CN of that cert does not contain a valid fqdn, it's usually WIN-RANDOM or IP-HEXIPV4.\r\n\r\nI'm trying to duplicate the utility of ssh where we verify the fingerprint of the connection to a particular ip (and verify it). See http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-checking-a-server%E2%80%99s-ssh-host-fingerprint-with-the-web-console\r\n\r\nI'm looking for a way to explicitly pass self-signed ssl certificates per https connection. The only reason it's failing right now is the Certificate CN doesn't match the ip we attempt to connect to.\r\n\r\nIf we aren't able to actually verify self-signed ssl certs and bind them to a particular winrm target it kinda makes self-signed certs useless unless we regenerate them to match their IP or a dns name that reaches them... which is not easy to do in ec2 user_data.\r\n\r\nI'm currently using the following:\r\n\r\n```powershell\r\n\r\nwinrm quickconfig -q                                                                                                                           \r\nwinrm set winrm/config/winrs '@{MaxMemoryPerShellMB=\"300\"}'                                                                                    \r\nwinrm set winrm/config '@{MaxTimeoutms=\"1800000\"}'                                                                                             \r\n                                                                                                                                               \r\nnetsh advfirewall firewall add rule name=\"WinRM 5986\" protocol=TCP dir=in localport=5986 action=allow                                          \r\n                                                                                                                                               \r\n$SourceStoreScope = 'LocalMachine'                                                                                                             \r\n$SourceStorename = 'Remote Desktop'                                                                                                            \r\n                                                                                                                                               \r\n$SourceStore = New-Object  -TypeName System.Security.Cryptography.X509Certificates.X509Store  -ArgumentList $SourceStorename, $SourceStoreScop\\\r\ne                                                                                                                                              \r\n$SourceStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)                                                         \r\n                                                                                                                                               \r\n$cert = $SourceStore.Certificates | Where-Object  -FilterScript {                                                                              \r\n    $_.subject -like '*'                                                                                                                       \r\n}                                                                                                                                              \r\n                                                                                                                                               \r\n$DestStoreScope = 'LocalMachine'                                                                                                               \r\n$DestStoreName = 'My'                                                                                                                          \r\n                                                                                                                                               \r\n$DestStore = New-Object  -TypeName System.Security.Cryptography.X509Certificates.X509Store  -ArgumentList $DestStoreName, $DestStoreScope      \r\n$DestStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)                                                          \r\n$DestStore.Add($cert)                                                                                                                          \r\n                                                                                                                                               \r\n$SourceStore.Close()                                                                                                                           \r\n$DestStore.Close()                                                                                                                             \r\n                                                                                                                                               \r\nwinrm create winrm/config/listener?Address=*+Transport=HTTPS  `@`{Hostname=`\"($certId)`\"`;CertificateThumbprint=`\"($cert.Thumbprint)`\"`}       \r\n                                                                                                                                               \r\nnet stop winrm                                                                                                                                 \r\nsc config winrm start=auto                                                                                                                     \r\nnet start winrm \r\n```","created_at":"2015-10-03T05:50:51Z","updated_at":"2015-10-03T05:50:51Z","html_url":"https://github.com/ii/chef-provisioning-aws/pull/2#discussion_r41084268","pull_request_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/comments/41084268"},"html":{"href":"https://github.com/ii/chef-provisioning-aws/pull/2#discussion_r41084268"},"pull_request":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2","id":46561799,"html_url":"https://github.com/ii/chef-provisioning-aws/pull/2","diff_url":"https://github.com/ii/chef-provisioning-aws/pull/2.diff","patch_url":"https://github.com/ii/chef-provisioning-aws/pull/2.patch","issue_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/2","number":2,"state":"open","locked":false,"title":"Let's discuss getting winrm ssl to talk to self-signed certs","user":{"login":"hh","id":31331,"avatar_url":"https://avatars.githubusercontent.com/u/31331?v=3","gravatar_id":"","url":"https://api.github.com/users/hh","html_url":"https://github.com/hh","followers_url":"https://api.github.com/users/hh/followers","following_url":"https://api.github.com/users/hh/following{/other_user}","gists_url":"https://api.github.com/users/hh/gists{/gist_id}","starred_url":"https://api.github.com/users/hh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hh/subscriptions","organizations_url":"https://api.github.com/users/hh/orgs","repos_url":"https://api.github.com/users/hh/repos","events_url":"https://api.github.com/users/hh/events{/privacy}","received_events_url":"https://api.github.com/users/hh/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-10-01T18:51:32Z","updated_at":"2015-10-03T05:50:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e09968e69efb0b5546c0f090c2a6e33f67ca1103","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2/commits","review_comments_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2/comments","review_comment_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/2/comments","statuses_url":"https://api.github.com/repos/ii/chef-provisioning-aws/statuses/9fced5eeea48584653dd2072cd24365e720eadf3","head":{"label":"ii:dachange","ref":"dachange","sha":"9fced5eeea48584653dd2072cd24365e720eadf3","user":{"login":"ii","id":30447,"avatar_url":"https://avatars.githubusercontent.com/u/30447?v=3","gravatar_id":"","url":"https://api.github.com/users/ii","html_url":"https://github.com/ii","followers_url":"https://api.github.com/users/ii/followers","following_url":"https://api.github.com/users/ii/following{/other_user}","gists_url":"https://api.github.com/users/ii/gists{/gist_id}","starred_url":"https://api.github.com/users/ii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ii/subscriptions","organizations_url":"https://api.github.com/users/ii/orgs","repos_url":"https://api.github.com/users/ii/repos","events_url":"https://api.github.com/users/ii/events{/privacy}","received_events_url":"https://api.github.com/users/ii/received_events","type":"Organization","site_admin":false},"repo":{"id":42804511,"name":"chef-provisioning-aws","full_name":"ii/chef-provisioning-aws","owner":{"login":"ii","id":30447,"avatar_url":"https://avatars.githubusercontent.com/u/30447?v=3","gravatar_id":"","url":"https://api.github.com/users/ii","html_url":"https://github.com/ii","followers_url":"https://api.github.com/users/ii/followers","following_url":"https://api.github.com/users/ii/following{/other_user}","gists_url":"https://api.github.com/users/ii/gists{/gist_id}","starred_url":"https://api.github.com/users/ii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ii/subscriptions","organizations_url":"https://api.github.com/users/ii/orgs","repos_url":"https://api.github.com/users/ii/repos","events_url":"https://api.github.com/users/ii/events{/privacy}","received_events_url":"https://api.github.com/users/ii/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ii/chef-provisioning-aws","description":"AWS driver and resources for Chef that uses the AWS SDK","fork":true,"url":"https://api.github.com/repos/ii/chef-provisioning-aws","forks_url":"https://api.github.com/repos/ii/chef-provisioning-aws/forks","keys_url":"https://api.github.com/repos/ii/chef-provisioning-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ii/chef-provisioning-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ii/chef-provisioning-aws/teams","hooks_url":"https://api.github.com/repos/ii/chef-provisioning-aws/hooks","issue_events_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/events{/number}","events_url":"https://api.github.com/repos/ii/chef-provisioning-aws/events","assignees_url":"https://api.github.com/repos/ii/chef-provisioning-aws/assignees{/user}","branches_url":"https://api.github.com/repos/ii/chef-provisioning-aws/branches{/branch}","tags_url":"https://api.github.com/repos/ii/chef-provisioning-aws/tags","blobs_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ii/chef-provisioning-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/ii/chef-provisioning-aws/languages","stargazers_url":"https://api.github.com/repos/ii/chef-provisioning-aws/stargazers","contributors_url":"https://api.github.com/repos/ii/chef-provisioning-aws/contributors","subscribers_url":"https://api.github.com/repos/ii/chef-provisioning-aws/subscribers","subscription_url":"https://api.github.com/repos/ii/chef-provisioning-aws/subscription","commits_url":"https://api.github.com/repos/ii/chef-provisioning-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/ii/chef-provisioning-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/ii/chef-provisioning-aws/contents/{+path}","compare_url":"https://api.github.com/repos/ii/chef-provisioning-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ii/chef-provisioning-aws/merges","archive_url":"https://api.github.com/repos/ii/chef-provisioning-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ii/chef-provisioning-aws/downloads","issues_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues{/number}","pulls_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/ii/chef-provisioning-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/ii/chef-provisioning-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ii/chef-provisioning-aws/labels{/name}","releases_url":"https://api.github.com/repos/ii/chef-provisioning-aws/releases{/id}","created_at":"2015-09-20T07:26:07Z","updated_at":"2015-09-20T07:26:07Z","pushed_at":"2015-10-01T18:51:32Z","git_url":"git://github.com/ii/chef-provisioning-aws.git","ssh_url":"git@github.com:ii/chef-provisioning-aws.git","clone_url":"https://github.com/ii/chef-provisioning-aws.git","svn_url":"https://github.com/ii/chef-provisioning-aws","homepage":"","size":984,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"ii:damaster","ref":"damaster","sha":"f76c6ba016b01d0c9d6e1684b348416ff8585bf9","user":{"login":"ii","id":30447,"avatar_url":"https://avatars.githubusercontent.com/u/30447?v=3","gravatar_id":"","url":"https://api.github.com/users/ii","html_url":"https://github.com/ii","followers_url":"https://api.github.com/users/ii/followers","following_url":"https://api.github.com/users/ii/following{/other_user}","gists_url":"https://api.github.com/users/ii/gists{/gist_id}","starred_url":"https://api.github.com/users/ii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ii/subscriptions","organizations_url":"https://api.github.com/users/ii/orgs","repos_url":"https://api.github.com/users/ii/repos","events_url":"https://api.github.com/users/ii/events{/privacy}","received_events_url":"https://api.github.com/users/ii/received_events","type":"Organization","site_admin":false},"repo":{"id":42804511,"name":"chef-provisioning-aws","full_name":"ii/chef-provisioning-aws","owner":{"login":"ii","id":30447,"avatar_url":"https://avatars.githubusercontent.com/u/30447?v=3","gravatar_id":"","url":"https://api.github.com/users/ii","html_url":"https://github.com/ii","followers_url":"https://api.github.com/users/ii/followers","following_url":"https://api.github.com/users/ii/following{/other_user}","gists_url":"https://api.github.com/users/ii/gists{/gist_id}","starred_url":"https://api.github.com/users/ii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ii/subscriptions","organizations_url":"https://api.github.com/users/ii/orgs","repos_url":"https://api.github.com/users/ii/repos","events_url":"https://api.github.com/users/ii/events{/privacy}","received_events_url":"https://api.github.com/users/ii/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ii/chef-provisioning-aws","description":"AWS driver and resources for Chef that uses the AWS SDK","fork":true,"url":"https://api.github.com/repos/ii/chef-provisioning-aws","forks_url":"https://api.github.com/repos/ii/chef-provisioning-aws/forks","keys_url":"https://api.github.com/repos/ii/chef-provisioning-aws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ii/chef-provisioning-aws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ii/chef-provisioning-aws/teams","hooks_url":"https://api.github.com/repos/ii/chef-provisioning-aws/hooks","issue_events_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/events{/number}","events_url":"https://api.github.com/repos/ii/chef-provisioning-aws/events","assignees_url":"https://api.github.com/repos/ii/chef-provisioning-aws/assignees{/user}","branches_url":"https://api.github.com/repos/ii/chef-provisioning-aws/branches{/branch}","tags_url":"https://api.github.com/repos/ii/chef-provisioning-aws/tags","blobs_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/refs{/sha}","trees_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ii/chef-provisioning-aws/statuses/{sha}","languages_url":"https://api.github.com/repos/ii/chef-provisioning-aws/languages","stargazers_url":"https://api.github.com/repos/ii/chef-provisioning-aws/stargazers","contributors_url":"https://api.github.com/repos/ii/chef-provisioning-aws/contributors","subscribers_url":"https://api.github.com/repos/ii/chef-provisioning-aws/subscribers","subscription_url":"https://api.github.com/repos/ii/chef-provisioning-aws/subscription","commits_url":"https://api.github.com/repos/ii/chef-provisioning-aws/commits{/sha}","git_commits_url":"https://api.github.com/repos/ii/chef-provisioning-aws/git/commits{/sha}","comments_url":"https://api.github.com/repos/ii/chef-provisioning-aws/comments{/number}","issue_comment_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/comments{/number}","contents_url":"https://api.github.com/repos/ii/chef-provisioning-aws/contents/{+path}","compare_url":"https://api.github.com/repos/ii/chef-provisioning-aws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ii/chef-provisioning-aws/merges","archive_url":"https://api.github.com/repos/ii/chef-provisioning-aws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ii/chef-provisioning-aws/downloads","issues_url":"https://api.github.com/repos/ii/chef-provisioning-aws/issues{/number}","pulls_url":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls{/number}","milestones_url":"https://api.github.com/repos/ii/chef-provisioning-aws/milestones{/number}","notifications_url":"https://api.github.com/repos/ii/chef-provisioning-aws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ii/chef-provisioning-aws/labels{/name}","releases_url":"https://api.github.com/repos/ii/chef-provisioning-aws/releases{/id}","created_at":"2015-09-20T07:26:07Z","updated_at":"2015-09-20T07:26:07Z","pushed_at":"2015-10-01T18:51:32Z","git_url":"git://github.com/ii/chef-provisioning-aws.git","ssh_url":"git@github.com:ii/chef-provisioning-aws.git","clone_url":"https://github.com/ii/chef-provisioning-aws.git","svn_url":"https://github.com/ii/chef-provisioning-aws","homepage":"","size":984,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2"},"html":{"href":"https://github.com/ii/chef-provisioning-aws/pull/2"},"issue":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/2"},"comments":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/ii/chef-provisioning-aws/statuses/9fced5eeea48584653dd2072cd24365e720eadf3"}}}}