{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/comments/229914985","pull_request_review_id":170528023,"id":229914985,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyOTkxNDk4NQ==","diff_hunk":"@@ -0,0 +1,163 @@\n+// Copyright 2018 Google LLC\n+//\n+// Licensed under the Apache License, Version 2.0 (the \"License\");\n+// you may not use this file except in compliance with the License.\n+// You may obtain a copy of the License at\n+//\n+//     http://www.apache.org/licenses/LICENSE-2.0\n+//\n+// Unless required by applicable law or agreed to in writing, software\n+// distributed under the License is distributed on an \"AS IS\" BASIS,\n+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+// See the License for the specific language governing permissions and\n+// limitations under the License.\n+\n+#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_INTERNAL_FUTURE_VOID_H_\n+#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_INTERNAL_FUTURE_VOID_H_\n+/**\n+ * @file\n+ *\n+ * Fully specialize `future<void>` and `promise<R>` for void.\n+ */\n+\n+#include \"google/cloud/internal/port_platform.h\"\n+\n+// C++ futures only make sense when exceptions are enabled.\n+#if GOOGLE_CLOUD_CPP_HAVE_EXCEPTIONS\n+#include \"google/cloud/internal/future_fwd.h\"\n+#include \"google/cloud/internal/future_impl.h\"\n+\n+namespace google {\n+namespace cloud {\n+inline namespace GOOGLE_CLOUD_CPP_NS {\n+/**\n+ * Implement ISO/IEC TS 19571:2016 future for void.\n+ */\n+template <>\n+class future<void> {\n+ public:\n+  future() noexcept : shared_state_() {}\n+  future(future<void>&& f) noexcept\n+      : shared_state_(std::move(f.shared_state_)) {}\n+\n+  // TODO(#1345) - implement the unwrapping constructor.\n+  // future(future<future<void>>&& f) noexcept;\n+  // future& operator=(future<future<void>>&& f) noexcept;\n+  future(future<void> const&) = delete;\n+\n+  future& operator=(future<void>&& f) noexcept {\n+    future tmp(std::move(f));\n+    std::swap(tmp.shared_state_, shared_state_);\n+    return *this;\n+  }\n+  future& operator=(future const&) = delete;\n+\n+  void get() {\n+    check_valid();\n+    std::shared_ptr<shared_state_type> tmp;\n+    tmp.swap(shared_state_);\n+    return tmp->get();\n+  }\n+\n+  bool valid() const noexcept { return static_cast<bool>(shared_state_); }\n+  void wait() const {\n+    check_valid();\n+    shared_state_->wait();\n+  }\n+\n+  template <typename Rep, typename Period>\n+  std::future_status wait_for(\n+      std::chrono::duration<Rep, Period> const& rel_time) const {\n+    check_valid();\n+    return shared_state_->wait_for(rel_time);\n+  }\n+\n+  template <typename Rep, typename Period>\n+  std::future_status wait_until(\n+      std::chrono::time_point<Rep, Period> const& abs_time) const {\n+    check_valid();\n+    return shared_state_->wait_until(abs_time);\n+  }\n+\n+ private:\n+  /// Shorthand to refer to the shared state type.\n+  using shared_state_type = internal::future_shared_state<void>;\n+\n+  friend class promise<void>;\n+  explicit future(std::shared_ptr<shared_state_type> state)\n+      : shared_state_(std::move(state)) {}\n+\n+  void check_valid() const {\n+    if (not shared_state_) {\n+      throw std::future_error(std::future_errc::no_state);\n+    }\n+  }\n+\n+  std::shared_ptr<shared_state_type> shared_state_;\n+};\n+\n+/**\n+ * Specialize promise as defined in ISO/IEC TS 19571:2016 for void.\n+ */\n+template <>\n+class promise<void> {\n+ public:\n+  /// Create a promise\n+  promise() : shared_state_(new shared_state) {}\n+\n+  promise(promise&& rhs) noexcept\n+      : shared_state_(std::move(rhs.shared_state_)) {\n+    rhs.shared_state_.reset();\n+  }\n+\n+  promise(promise const&) = delete;\n+\n+  ~promise() {\n+    if (shared_state_) {\n+      shared_state_->abandon();\n+    }\n+  }\n+\n+  promise& operator=(promise&& rhs) noexcept {\n+    promise tmp(std::move(rhs));\n+    this->swap(tmp);\n+    return *this;\n+  }\n+\n+  promise& operator=(promise const&) = delete;\n+\n+  void swap(promise& other) noexcept {\n+    std::swap(shared_state_, other.shared_state_);\n+  }\n+\n+  future<void> get_future() {\n+    shared_state::mark_retrieved(shared_state_);\n+    return future<void>(shared_state_);\n+  }\n+\n+  void set_value() {\n+    if (not shared_state_) {","path":"google/cloud/internal/future_void.h","position":139,"original_position":139,"commit_id":"437188bffb279add8c71b97549cda8e8149aa048","original_commit_id":"437188bffb279add8c71b97549cda8e8149aa048","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/6241635?v=4","gravatar_id":"","url":"https://api.github.com/users/coryan","html_url":"https://github.com/coryan","followers_url":"https://api.github.com/users/coryan/followers","following_url":"https://api.github.com/users/coryan/following{/other_user}","gists_url":"https://api.github.com/users/coryan/gists{/gist_id}","starred_url":"https://api.github.com/users/coryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coryan/subscriptions","organizations_url":"https://api.github.com/users/coryan/orgs","repos_url":"https://api.github.com/users/coryan/repos","events_url":"https://api.github.com/users/coryan/events{/privacy}","received_events_url":"https://api.github.com/users/coryan/received_events","type":"User","site_admin":false},"body":"Future or promise?  You are pointing to a function in `promise<void>`, so yeah, after moves is the only case where promises lose their shared state I think.\r\n\r\nFutures are more complicated.  A default-constructed future does not have a shared state. A moved-from future no longer has shared state. A future where you called `.get()` no longer has a shared state.  A future where you called `.then()` no longer has shared state.\r\n","created_at":"2018-11-01T01:16:39Z","updated_at":"2018-11-01T01:16:40Z","html_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367#discussion_r229914985","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/comments/229914985"},"html":{"href":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367#discussion_r229914985"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367"}},"in_reply_to_id":229911852},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367","id":227345257,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI3MzQ1MjU3","html_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367","diff_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367.diff","patch_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/1367","number":1367,"state":"closed","locked":false,"title":"Implement future<void> and promise<void>.","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/6241635?v=4","gravatar_id":"","url":"https://api.github.com/users/coryan","html_url":"https://github.com/coryan","followers_url":"https://api.github.com/users/coryan/followers","following_url":"https://api.github.com/users/coryan/following{/other_user}","gists_url":"https://api.github.com/users/coryan/gists{/gist_id}","starred_url":"https://api.github.com/users/coryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coryan/subscriptions","organizations_url":"https://api.github.com/users/coryan/orgs","repos_url":"https://api.github.com/users/coryan/repos","events_url":"https://api.github.com/users/coryan/events{/privacy}","received_events_url":"https://api.github.com/users/coryan/received_events","type":"User","site_admin":false},"body":"This implements futures and promises for `void`. It does not yet\r\nimplement the `.then()` member function, to keep the PR size small. Part\r\nof the work for #1345.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/googlecloudplatform/google-cloud-cpp/1367)\n<!-- Reviewable:end -->\n","created_at":"2018-10-31T16:00:06Z","updated_at":"2018-11-01T01:16:40Z","closed_at":"2018-11-01T00:38:35Z","merged_at":"2018-11-01T00:38:35Z","merge_commit_sha":"b79ecc7cc80ccaa095ca32988081235c4c76c2c7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":921026962,"node_id":"MDU6TGFiZWw5MjEwMjY5NjI=","url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/labels/api:%20storage","name":"api: storage","color":"d4c5f9","default":false},{"id":760104389,"node_id":"MDU6TGFiZWw3NjAxMDQzODk=","url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/labels/cla:%20yes","name":"cla: yes","color":"0e8a16","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/1367/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/statuses/437188bffb279add8c71b97549cda8e8149aa048","head":{"label":"coryan:futures-from-the-future-pr3","ref":"futures-from-the-future-pr3","sha":"437188bffb279add8c71b97549cda8e8149aa048","user":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/6241635?v=4","gravatar_id":"","url":"https://api.github.com/users/coryan","html_url":"https://github.com/coryan","followers_url":"https://api.github.com/users/coryan/followers","following_url":"https://api.github.com/users/coryan/following{/other_user}","gists_url":"https://api.github.com/users/coryan/gists{/gist_id}","starred_url":"https://api.github.com/users/coryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coryan/subscriptions","organizations_url":"https://api.github.com/users/coryan/orgs","repos_url":"https://api.github.com/users/coryan/repos","events_url":"https://api.github.com/users/coryan/events{/privacy}","received_events_url":"https://api.github.com/users/coryan/received_events","type":"User","site_admin":false},"repo":{"id":111937615,"node_id":"MDEwOlJlcG9zaXRvcnkxMTE5Mzc2MTU=","name":"google-cloud-cpp","full_name":"coryan/google-cloud-cpp","private":false,"owner":{"login":"coryan","id":6241635,"node_id":"MDQ6VXNlcjYyNDE2MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/6241635?v=4","gravatar_id":"","url":"https://api.github.com/users/coryan","html_url":"https://github.com/coryan","followers_url":"https://api.github.com/users/coryan/followers","following_url":"https://api.github.com/users/coryan/following{/other_user}","gists_url":"https://api.github.com/users/coryan/gists{/gist_id}","starred_url":"https://api.github.com/users/coryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coryan/subscriptions","organizations_url":"https://api.github.com/users/coryan/orgs","repos_url":"https://api.github.com/users/coryan/repos","events_url":"https://api.github.com/users/coryan/events{/privacy}","received_events_url":"https://api.github.com/users/coryan/received_events","type":"User","site_admin":false},"html_url":"https://github.com/coryan/google-cloud-cpp","description":"Google Cloud Platform C++ client libraries","fork":true,"url":"https://api.github.com/repos/coryan/google-cloud-cpp","forks_url":"https://api.github.com/repos/coryan/google-cloud-cpp/forks","keys_url":"https://api.github.com/repos/coryan/google-cloud-cpp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coryan/google-cloud-cpp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coryan/google-cloud-cpp/teams","hooks_url":"https://api.github.com/repos/coryan/google-cloud-cpp/hooks","issue_events_url":"https://api.github.com/repos/coryan/google-cloud-cpp/issues/events{/number}","events_url":"https://api.github.com/repos/coryan/google-cloud-cpp/events","assignees_url":"https://api.github.com/repos/coryan/google-cloud-cpp/assignees{/user}","branches_url":"https://api.github.com/repos/coryan/google-cloud-cpp/branches{/branch}","tags_url":"https://api.github.com/repos/coryan/google-cloud-cpp/tags","blobs_url":"https://api.github.com/repos/coryan/google-cloud-cpp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coryan/google-cloud-cpp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coryan/google-cloud-cpp/git/refs{/sha}","trees_url":"https://api.github.com/repos/coryan/google-cloud-cpp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coryan/google-cloud-cpp/statuses/{sha}","languages_url":"https://api.github.com/repos/coryan/google-cloud-cpp/languages","stargazers_url":"https://api.github.com/repos/coryan/google-cloud-cpp/stargazers","contributors_url":"https://api.github.com/repos/coryan/google-cloud-cpp/contributors","subscribers_url":"https://api.github.com/repos/coryan/google-cloud-cpp/subscribers","subscription_url":"https://api.github.com/repos/coryan/google-cloud-cpp/subscription","commits_url":"https://api.github.com/repos/coryan/google-cloud-cpp/commits{/sha}","git_commits_url":"https://api.github.com/repos/coryan/google-cloud-cpp/git/commits{/sha}","comments_url":"https://api.github.com/repos/coryan/google-cloud-cpp/comments{/number}","issue_comment_url":"https://api.github.com/repos/coryan/google-cloud-cpp/issues/comments{/number}","contents_url":"https://api.github.com/repos/coryan/google-cloud-cpp/contents/{+path}","compare_url":"https://api.github.com/repos/coryan/google-cloud-cpp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coryan/google-cloud-cpp/merges","archive_url":"https://api.github.com/repos/coryan/google-cloud-cpp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coryan/google-cloud-cpp/downloads","issues_url":"https://api.github.com/repos/coryan/google-cloud-cpp/issues{/number}","pulls_url":"https://api.github.com/repos/coryan/google-cloud-cpp/pulls{/number}","milestones_url":"https://api.github.com/repos/coryan/google-cloud-cpp/milestones{/number}","notifications_url":"https://api.github.com/repos/coryan/google-cloud-cpp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coryan/google-cloud-cpp/labels{/name}","releases_url":"https://api.github.com/repos/coryan/google-cloud-cpp/releases{/id}","deployments_url":"https://api.github.com/repos/coryan/google-cloud-cpp/deployments","created_at":"2017-11-24T16:28:07Z","updated_at":"2018-10-30T14:51:21Z","pushed_at":"2018-11-01T00:38:38Z","git_url":"git://github.com/coryan/google-cloud-cpp.git","ssh_url":"git@github.com:coryan/google-cloud-cpp.git","clone_url":"https://github.com/coryan/google-cloud-cpp.git","svn_url":"https://github.com/coryan/google-cloud-cpp","homepage":"https://cloud.google.com/","size":98573,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"cdb982f8085130c6abc68c7285ee7da700dbf641","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":111860063,"node_id":"MDEwOlJlcG9zaXRvcnkxMTE4NjAwNjM=","name":"google-cloud-cpp","full_name":"GoogleCloudPlatform/google-cloud-cpp","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp","description":"Google Cloud Client Library for C++","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/deployments","created_at":"2017-11-24T00:19:31Z","updated_at":"2018-11-01T00:38:37Z","pushed_at":"2018-11-01T00:38:35Z","git_url":"git://github.com/GoogleCloudPlatform/google-cloud-cpp.git","ssh_url":"git@github.com:GoogleCloudPlatform/google-cloud-cpp.git","clone_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp.git","svn_url":"https://github.com/GoogleCloudPlatform/google-cloud-cpp","homepage":"https://cloud.google.com/","size":93299,"stargazers_count":50,"watchers_count":50,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":36,"mirror_url":null,"archived":false,"open_issues_count":136,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":36,"open_issues":136,"watchers":50,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367"},"html":{"href":"https://github.com/GoogleCloudPlatform/google-cloud-cpp/pull/1367"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/1367"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/issues/1367/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/pulls/1367/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-cpp/statuses/437188bffb279add8c71b97549cda8e8149aa048"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"coryan"}}