{"action":"created","issue":{"url":"https://api.github.com/repos/bazelbuild/bazel/issues/4889","repository_url":"https://api.github.com/repos/bazelbuild/bazel","labels_url":"https://api.github.com/repos/bazelbuild/bazel/issues/4889/labels{/name}","comments_url":"https://api.github.com/repos/bazelbuild/bazel/issues/4889/comments","events_url":"https://api.github.com/repos/bazelbuild/bazel/issues/4889/events","html_url":"https://github.com/bazelbuild/bazel/pull/4889","id":307074188,"node_id":"MDExOlB1bGxSZXF1ZXN0MTc2MzQ5NjAw","number":4889,"title":"Initial attempt at direct s3 remote cache","user":{"login":"GregBowyer","id":125935,"node_id":"MDQ6VXNlcjEyNTkzNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/125935?v=4","gravatar_id":"","url":"https://api.github.com/users/GregBowyer","html_url":"https://github.com/GregBowyer","followers_url":"https://api.github.com/users/GregBowyer/followers","following_url":"https://api.github.com/users/GregBowyer/following{/other_user}","gists_url":"https://api.github.com/users/GregBowyer/gists{/gist_id}","starred_url":"https://api.github.com/users/GregBowyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GregBowyer/subscriptions","organizations_url":"https://api.github.com/users/GregBowyer/orgs","repos_url":"https://api.github.com/users/GregBowyer/repos","events_url":"https://api.github.com/users/GregBowyer/events{/privacy}","received_events_url":"https://api.github.com/users/GregBowyer/received_events","type":"User","site_admin":false},"labels":[{"id":323761238,"node_id":"MDU6TGFiZWwzMjM3NjEyMzg=","url":"https://api.github.com/repos/bazelbuild/bazel/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false}],"state":"open","locked":false,"assignee":{"login":"buchgr","id":1388179,"node_id":"MDQ6VXNlcjEzODgxNzk=","avatar_url":"https://avatars0.githubusercontent.com/u/1388179?v=4","gravatar_id":"","url":"https://api.github.com/users/buchgr","html_url":"https://github.com/buchgr","followers_url":"https://api.github.com/users/buchgr/followers","following_url":"https://api.github.com/users/buchgr/following{/other_user}","gists_url":"https://api.github.com/users/buchgr/gists{/gist_id}","starred_url":"https://api.github.com/users/buchgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/buchgr/subscriptions","organizations_url":"https://api.github.com/users/buchgr/orgs","repos_url":"https://api.github.com/users/buchgr/repos","events_url":"https://api.github.com/users/buchgr/events{/privacy}","received_events_url":"https://api.github.com/users/buchgr/received_events","type":"User","site_admin":false},"assignees":[{"login":"buchgr","id":1388179,"node_id":"MDQ6VXNlcjEzODgxNzk=","avatar_url":"https://avatars0.githubusercontent.com/u/1388179?v=4","gravatar_id":"","url":"https://api.github.com/users/buchgr","html_url":"https://github.com/buchgr","followers_url":"https://api.github.com/users/buchgr/followers","following_url":"https://api.github.com/users/buchgr/following{/other_user}","gists_url":"https://api.github.com/users/buchgr/gists{/gist_id}","starred_url":"https://api.github.com/users/buchgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/buchgr/subscriptions","organizations_url":"https://api.github.com/users/buchgr/orgs","repos_url":"https://api.github.com/users/buchgr/repos","events_url":"https://api.github.com/users/buchgr/events{/privacy}","received_events_url":"https://api.github.com/users/buchgr/received_events","type":"User","site_admin":false}],"milestone":null,"comments":128,"created_at":"2018-03-20T23:25:10Z","updated_at":"2018-11-17T12:12:37Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/bazelbuild/bazel/pulls/4889","html_url":"https://github.com/bazelbuild/bazel/pull/4889","diff_url":"https://github.com/bazelbuild/bazel/pull/4889.diff","patch_url":"https://github.com/bazelbuild/bazel/pull/4889.patch"},"body":"This is an initial attempt to support #4844 \r\n\r\nIt directly supports S3 as a simple remote cache. After spending some time looking at how AWS credentials are done it looks like its easier to use the SDK, instead of hand rolling the auth directly.\r\n\r\nSince the SDK provides the backbone for auth support, it makes sense to include the S3 parts of the sdk as well.\r\n\r\nIn this PR we use the S3 SDK directly to provide S3 remote cache support. This support should be on par with the google datastore support, and has similar options in its usage.\r\n\r\nThoughts?\r\n\r\n# TODO\r\n- [x] Remove requirement on S3 SDK\r\n- [x] Remove external jar requirements\r\n- [x] Chase down SSL failures (not related to S3 I think) (was #4944)\r\n- [x] Chase down connection failures (not related to S3 I think) (was #4944)\r\n- [x] Make work correctly with S3-Accelerator\r\n- [x] Make Region crash more user friendly \r\n- [x] Real world test\r\n- [x] Documentation \r\n- [x] Allow for credential profiles to be configured directly\r\n- [x] I want to take a bit more work at `AwsHttpAuthAdapter` as its constructor is messy for testing\r\n- [x] Unit tests for changes\r\n- [x] EC2 instance credentials test\r\n- [x] Figure out how to support security tokens\r\n- [x] Tidy up command line options (could use some help here as to what the bazel team want the options to look like)\r\n- [x] Replace the ThreadLocal date formatters with `javax.time` ones\r\n- [x] Stare at, and maybe profile the Aws auth code for inefficiencies\r\n- [x] Make sure the remote documentation makes sense for the option\r\n- [x] Solve the terrible, slow, horrible and unstable downloads ~~~this patch~~~ (was #4944) causes"},"comment":{"url":"https://api.github.com/repos/bazelbuild/bazel/issues/comments/439612201","html_url":"https://github.com/bazelbuild/bazel/pull/4889#issuecomment-439612201","issue_url":"https://api.github.com/repos/bazelbuild/bazel/issues/4889","id":439612201,"node_id":"MDEyOklzc3VlQ29tbWVudDQzOTYxMjIwMQ==","user":{"login":"softprops","id":2242,"node_id":"MDQ6VXNlcjIyNDI=","avatar_url":"https://avatars3.githubusercontent.com/u/2242?v=4","gravatar_id":"","url":"https://api.github.com/users/softprops","html_url":"https://github.com/softprops","followers_url":"https://api.github.com/users/softprops/followers","following_url":"https://api.github.com/users/softprops/following{/other_user}","gists_url":"https://api.github.com/users/softprops/gists{/gist_id}","starred_url":"https://api.github.com/users/softprops/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/softprops/subscriptions","organizations_url":"https://api.github.com/users/softprops/orgs","repos_url":"https://api.github.com/users/softprops/repos","events_url":"https://api.github.com/users/softprops/events{/privacy}","received_events_url":"https://api.github.com/users/softprops/received_events","type":"User","site_admin":false},"created_at":"2018-11-17T12:12:37Z","updated_at":"2018-11-17T12:12:37Z","author_association":"NONE","body":"I'd love to see this feature ship"}}
{"actor":{"display_login":"softprops"}}