{"action":"created","comment":{"url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/comments/165781124","pull_request_review_id":93777895,"id":165781124,"diff_hunk":"@@ -0,0 +1,272 @@\n+/*\n+ * Copyright 2018 Google\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+\n+#include \"Firestore/core/src/firebase/firestore/model/field_path.h\"\n+\n+#include <initializer_list>\n+#include <string>\n+#include <vector>\n+\n+#include \"gtest/gtest.h\"\n+\n+namespace firebase {\n+namespace firestore {\n+namespace model {\n+\n+TEST(FieldPath, Constructors) {\n+  const FieldPath empty_path;\n+  EXPECT_TRUE(empty_path.empty());\n+  EXPECT_EQ(0, empty_path.size());\n+  EXPECT_TRUE(empty_path.begin() == empty_path.end());\n+\n+  const FieldPath path_from_list = {\"rooms\", \"Eros\", \"messages\"};\n+  EXPECT_FALSE(path_from_list.empty());\n+  EXPECT_EQ(3, path_from_list.size());\n+  EXPECT_TRUE(path_from_list.begin() + 3 == path_from_list.end());\n+\n+  std::vector<std::string> segments{\"rooms\", \"Eros\", \"messages\"};\n+  const FieldPath path_from_segments{segments.begin(), segments.end()};\n+  EXPECT_FALSE(path_from_segments.empty());\n+  EXPECT_EQ(3, path_from_segments.size());\n+  EXPECT_TRUE(path_from_segments.begin() + 3 == path_from_segments.end());\n+\n+  FieldPath copied = path_from_list;\n+  EXPECT_EQ(path_from_list, copied);\n+  const FieldPath moved = std::move(copied);\n+  // Because FieldPath is immutable, move constructor performs a copy.\n+  EXPECT_EQ(copied, moved);\n+}\n+\n+TEST(FieldPath, Indexing) {\n+  const FieldPath path{\"rooms\", \"Eros\", \"messages\"};\n+\n+  EXPECT_EQ(path.front(), \"rooms\");\n+  EXPECT_EQ(path[0], \"rooms\");\n+  EXPECT_EQ(path.at(0), \"rooms\");\n+\n+  EXPECT_EQ(path[1], \"Eros\");\n+  EXPECT_EQ(path.at(1), \"Eros\");\n+\n+  EXPECT_EQ(path[2], \"messages\");\n+  EXPECT_EQ(path.at(2), \"messages\");\n+  EXPECT_EQ(path.back(), \"messages\");\n+}\n+\n+TEST(FieldPath, DropFirst) {\n+  const FieldPath abc{\"rooms\", \"Eros\", \"messages\"};\n+  const FieldPath bc{\"Eros\", \"messages\"};\n+  const FieldPath c{\"messages\"};\n+  const FieldPath empty;\n+  const FieldPath abc_dupl{\"rooms\", \"Eros\", \"messages\"};\n+\n+  EXPECT_NE(empty, c);\n+  EXPECT_NE(c, bc);\n+  EXPECT_NE(bc, abc);\n+\n+  EXPECT_EQ(bc, abc.DropFirst());\n+  EXPECT_EQ(c, abc.DropFirst(2));\n+  EXPECT_EQ(empty, abc.DropFirst(3));\n+  EXPECT_EQ(abc_dupl, abc);\n+}\n+\n+TEST(FieldPath, DropLast) {\n+  const FieldPath abc{\"rooms\", \"Eros\", \"messages\"};\n+  const FieldPath ab{\"rooms\", \"Eros\"};\n+  const FieldPath a{\"rooms\"};\n+  const FieldPath empty;\n+  const FieldPath abc_dupl{\"rooms\", \"Eros\", \"messages\"};\n+\n+  EXPECT_EQ(ab, abc.DropLast());\n+  EXPECT_EQ(a, abc.DropLast().DropLast());\n+  EXPECT_EQ(empty, abc.DropLast().DropLast().DropLast());\n+}\n+\n+TEST(FieldPath, Concatenation) {\n+  const FieldPath path;\n+  const FieldPath a{\"rooms\"};\n+  const FieldPath ab{\"rooms\", \"Eros\"};\n+  const FieldPath abc{\"rooms\", \"Eros\", \"messages\"};\n+\n+  EXPECT_EQ(a, path.Concat(\"rooms\"));\n+  EXPECT_EQ(ab, path.Concat(\"rooms\").Concat(\"Eros\"));\n+  EXPECT_EQ(abc, path.Concat(\"rooms\").Concat(\"Eros\").Concat(\"messages\"));\n+  EXPECT_EQ(abc, path.Concat(FieldPath{\"rooms\", \"Eros\", \"messages\"}));\n+  EXPECT_EQ(abc, path.Concat({\"rooms\", \"Eros\", \"messages\"}));\n+\n+  const FieldPath bcd{\"Eros\", \"messages\", \"this_week\"};\n+  EXPECT_EQ(bcd, abc.DropFirst().Concat(\"this_week\"));\n+}\n+\n+TEST(FieldPath, Comparison) {\n+  const FieldPath abc{\"a\", \"b\", \"c\"};\n+  const FieldPath abc2{\"a\", \"b\", \"c\"};\n+  const FieldPath xyz{\"x\", \"y\", \"z\"};\n+  EXPECT_EQ(abc, abc2);\n+  EXPECT_NE(abc, xyz);\n+\n+  const FieldPath empty;\n+  const FieldPath a{\"a\"};\n+  const FieldPath b{\"b\"};\n+  const FieldPath ab{\"a\", \"b\"};\n+\n+  EXPECT_TRUE(empty < a);\n+  EXPECT_TRUE(a < b);\n+  EXPECT_TRUE(a < ab);\n+\n+  EXPECT_TRUE(a > empty);\n+  EXPECT_TRUE(b > a);\n+  EXPECT_TRUE(ab > a);\n+}\n+\n+TEST(FieldPath, IsPrefixOf) {\n+  const FieldPath empty;\n+  const FieldPath a{\"a\"};\n+  const FieldPath ab{\"a\", \"b\"};\n+  const FieldPath abc{\"a\", \"b\", \"c\"};\n+  const FieldPath b{\"b\"};\n+  const FieldPath ba{\"b\", \"a\"};\n+\n+  EXPECT_TRUE(empty.IsPrefixOf(empty));\n+  EXPECT_TRUE(empty.IsPrefixOf(a));\n+  EXPECT_TRUE(empty.IsPrefixOf(ab));\n+  EXPECT_TRUE(empty.IsPrefixOf(abc));\n+  EXPECT_TRUE(empty.IsPrefixOf(b));\n+  EXPECT_TRUE(empty.IsPrefixOf(ba));\n+\n+  EXPECT_FALSE(a.IsPrefixOf(empty));\n+  EXPECT_TRUE(a.IsPrefixOf(a));\n+  EXPECT_TRUE(a.IsPrefixOf(ab));\n+  EXPECT_TRUE(a.IsPrefixOf(abc));\n+  EXPECT_FALSE(a.IsPrefixOf(b));\n+  EXPECT_FALSE(a.IsPrefixOf(ba));\n+\n+  EXPECT_FALSE(ab.IsPrefixOf(empty));\n+  EXPECT_FALSE(ab.IsPrefixOf(a));\n+  EXPECT_TRUE(ab.IsPrefixOf(ab));\n+  EXPECT_TRUE(ab.IsPrefixOf(abc));\n+  EXPECT_FALSE(ab.IsPrefixOf(b));\n+  EXPECT_FALSE(ab.IsPrefixOf(ba));\n+\n+  EXPECT_FALSE(abc.IsPrefixOf(empty));\n+  EXPECT_FALSE(abc.IsPrefixOf(a));\n+  EXPECT_FALSE(abc.IsPrefixOf(ab));\n+  EXPECT_TRUE(abc.IsPrefixOf(abc));\n+  EXPECT_FALSE(abc.IsPrefixOf(b));\n+  EXPECT_FALSE(abc.IsPrefixOf(ba));\n+}\n+\n+TEST(FieldPath, AccessFailures) {\n+  const FieldPath path;\n+  ASSERT_DEATH_IF_SUPPORTED(path.front(), \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path.back(), \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path[0], \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path[1], \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path.at(0), \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path.DropFirst(), \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path.DropFirst(2), \"\");\n+  ASSERT_DEATH_IF_SUPPORTED(path.DropLast(), \"\");\n+}\n+\n+TEST(FieldPath, Parsing) {\n+  const auto parse = [](const std::pair<std::string, size_t> expected) {\n+    const auto path = FieldPath::ParseServerFormat(expected.first);\n+    return std::make_pair(path.CanonicalString(), path.size());\n+  };\n+  const auto make_expected = [](const std::string& str, const size_t size) {\n+    return std::make_pair(str, size);\n+  };\n+\n+  auto expected = make_expected(\"foo\", 1);\n+  EXPECT_EQ(expected, parse(expected));\n+  expected = make_expected(\"foo.bar\", 2);\n+  EXPECT_EQ(expected, parse(expected));\n+  expected = make_expected(\"foo.bar.baz\", 3);\n+  EXPECT_EQ(expected, parse(expected));\n+  expected = make_expected(R\"(`.foo\\\\`)\", 1);\n+  EXPECT_EQ(expected, parse(expected));\n+  expected = make_expected(R\"(`.foo\\\\`.`.foo`)\", 2);\n+  EXPECT_EQ(expected, parse(expected));\n+  expected = make_expected(R\"(foo.`\\``.bar)\", 3);\n+  EXPECT_EQ(expected, parse(expected));\n+\n+  const auto path_with_dot = FieldPath::ParseServerFormat(R\"(foo\\.bar)\");\n+  EXPECT_EQ(path_with_dot.CanonicalString(), \"`foo.bar`\");\n+  EXPECT_EQ(path_with_dot.size(), 1);\n+}\n+\n+// This is a special case in C++: std::string may contain embedded nulls. To\n+// fully mimic behavior of Objective-C code, parsing must terminate upon\n+// encountering the first null terminator in the string.\n+TEST(FieldPath, ParseEmbeddedNull) {\n+  std::string str{\"foo\"};\n+  str += '\\0';\n+  str += \".bar\";\n+\n+  const auto path = FieldPath::ParseServerFormat(str);\n+  EXPECT_EQ(path.size(), 1);\n+  EXPECT_EQ(path.CanonicalString(), \"foo\");\n+}\n+\n+TEST(FieldPath, ParseFailures) {\n+  ASSERT_DEATH_IF_SUPPORTED(FieldPath::ParseServerFormat(\"\"), \"\");","path":"Firestore/core/test/firebase/firestore/model/field_path_test.cc","position":224,"original_position":224,"commit_id":"ad7582b210b2dcaf93a0eb2a77fefecfb8c7c81a","original_commit_id":"ad7582b210b2dcaf93a0eb2a77fefecfb8c7c81a","user":{"login":"var-const","id":8216808,"avatar_url":"https://avatars1.githubusercontent.com/u/8216808?v=4","gravatar_id":"","url":"https://api.github.com/users/var-const","html_url":"https://github.com/var-const","followers_url":"https://api.github.com/users/var-const/followers","following_url":"https://api.github.com/users/var-const/following{/other_user}","gists_url":"https://api.github.com/users/var-const/gists{/gist_id}","starred_url":"https://api.github.com/users/var-const/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/var-const/subscriptions","organizations_url":"https://api.github.com/users/var-const/orgs","repos_url":"https://api.github.com/users/var-const/repos","events_url":"https://api.github.com/users/var-const/events{/privacy}","received_events_url":"https://api.github.com/users/var-const/received_events","type":"User","site_admin":false},"body":"These don't have equivalents in Objective C.","created_at":"2018-02-02T22:50:53Z","updated_at":"2018-02-02T22:52:25Z","html_url":"https://github.com/firebase/firebase-ios-sdk/pull/749#discussion_r165781124","pull_request_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/comments/165781124"},"html":{"href":"https://github.com/firebase/firebase-ios-sdk/pull/749#discussion_r165781124"},"pull_request":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749"}}},"pull_request":{"url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749","id":166918182,"html_url":"https://github.com/firebase/firebase-ios-sdk/pull/749","diff_url":"https://github.com/firebase/firebase-ios-sdk/pull/749.diff","patch_url":"https://github.com/firebase/firebase-ios-sdk/pull/749.patch","issue_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/749","number":749,"state":"open","locked":false,"title":"Port FSTFieldPath and FSTResourcePath to C++","user":{"login":"var-const","id":8216808,"avatar_url":"https://avatars1.githubusercontent.com/u/8216808?v=4","gravatar_id":"","url":"https://api.github.com/users/var-const","html_url":"https://github.com/var-const","followers_url":"https://api.github.com/users/var-const/followers","following_url":"https://api.github.com/users/var-const/following{/other_user}","gists_url":"https://api.github.com/users/var-const/gists{/gist_id}","starred_url":"https://api.github.com/users/var-const/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/var-const/subscriptions","organizations_url":"https://api.github.com/users/var-const/orgs","repos_url":"https://api.github.com/users/var-const/repos","events_url":"https://api.github.com/users/var-const/events{/privacy}","received_events_url":"https://api.github.com/users/var-const/received_events","type":"User","site_admin":false},"body":"FIRFieldPath is next.","created_at":"2018-02-02T22:27:24Z","updated_at":"2018-02-02T22:52:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2f7ed68d49478cc3a5da9ccf16f0f60cacf22c26","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749/commits","review_comments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749/comments","review_comment_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/comments{/number}","comments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/749/comments","statuses_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/statuses/ad7582b210b2dcaf93a0eb2a77fefecfb8c7c81a","head":{"label":"firebase:varconst-port-paths","ref":"varconst-port-paths","sha":"ad7582b210b2dcaf93a0eb2a77fefecfb8c7c81a","user":{"login":"firebase","id":1335026,"avatar_url":"https://avatars2.githubusercontent.com/u/1335026?v=4","gravatar_id":"","url":"https://api.github.com/users/firebase","html_url":"https://github.com/firebase","followers_url":"https://api.github.com/users/firebase/followers","following_url":"https://api.github.com/users/firebase/following{/other_user}","gists_url":"https://api.github.com/users/firebase/gists{/gist_id}","starred_url":"https://api.github.com/users/firebase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firebase/subscriptions","organizations_url":"https://api.github.com/users/firebase/orgs","repos_url":"https://api.github.com/users/firebase/repos","events_url":"https://api.github.com/users/firebase/events{/privacy}","received_events_url":"https://api.github.com/users/firebase/received_events","type":"Organization","site_admin":false},"repo":{"id":89033556,"name":"firebase-ios-sdk","full_name":"firebase/firebase-ios-sdk","owner":{"login":"firebase","id":1335026,"avatar_url":"https://avatars2.githubusercontent.com/u/1335026?v=4","gravatar_id":"","url":"https://api.github.com/users/firebase","html_url":"https://github.com/firebase","followers_url":"https://api.github.com/users/firebase/followers","following_url":"https://api.github.com/users/firebase/following{/other_user}","gists_url":"https://api.github.com/users/firebase/gists{/gist_id}","starred_url":"https://api.github.com/users/firebase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firebase/subscriptions","organizations_url":"https://api.github.com/users/firebase/orgs","repos_url":"https://api.github.com/users/firebase/repos","events_url":"https://api.github.com/users/firebase/events{/privacy}","received_events_url":"https://api.github.com/users/firebase/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/firebase/firebase-ios-sdk","description":"Firebase iOS SDK","fork":false,"url":"https://api.github.com/repos/firebase/firebase-ios-sdk","forks_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/forks","keys_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/teams","hooks_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/hooks","issue_events_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/events{/number}","events_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/events","assignees_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/assignees{/user}","branches_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/branches{/branch}","tags_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/tags","blobs_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/refs{/sha}","trees_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/statuses/{sha}","languages_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/languages","stargazers_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/stargazers","contributors_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/contributors","subscribers_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/subscribers","subscription_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/subscription","commits_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/commits{/sha}","git_commits_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/commits{/sha}","comments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/comments{/number}","issue_comment_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/comments{/number}","contents_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/contents/{+path}","compare_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/merges","archive_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/downloads","issues_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues{/number}","pulls_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls{/number}","milestones_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/milestones{/number}","notifications_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/labels{/name}","releases_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/releases{/id}","deployments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/deployments","created_at":"2017-04-22T00:26:50Z","updated_at":"2018-02-02T17:42:02Z","pushed_at":"2018-02-02T22:27:25Z","git_url":"git://github.com/firebase/firebase-ios-sdk.git","ssh_url":"git@github.com:firebase/firebase-ios-sdk.git","clone_url":"https://github.com/firebase/firebase-ios-sdk.git","svn_url":"https://github.com/firebase/firebase-ios-sdk","homepage":"https://firebase.google.com","size":4870,"stargazers_count":545,"watchers_count":545,"language":"Objective-C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":97,"mirror_url":null,"archived":false,"open_issues_count":59,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":97,"open_issues":59,"watchers":545,"default_branch":"master"}},"base":{"label":"firebase:master","ref":"master","sha":"32266c5d1cf700b37900911860888bb106088220","user":{"login":"firebase","id":1335026,"avatar_url":"https://avatars2.githubusercontent.com/u/1335026?v=4","gravatar_id":"","url":"https://api.github.com/users/firebase","html_url":"https://github.com/firebase","followers_url":"https://api.github.com/users/firebase/followers","following_url":"https://api.github.com/users/firebase/following{/other_user}","gists_url":"https://api.github.com/users/firebase/gists{/gist_id}","starred_url":"https://api.github.com/users/firebase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firebase/subscriptions","organizations_url":"https://api.github.com/users/firebase/orgs","repos_url":"https://api.github.com/users/firebase/repos","events_url":"https://api.github.com/users/firebase/events{/privacy}","received_events_url":"https://api.github.com/users/firebase/received_events","type":"Organization","site_admin":false},"repo":{"id":89033556,"name":"firebase-ios-sdk","full_name":"firebase/firebase-ios-sdk","owner":{"login":"firebase","id":1335026,"avatar_url":"https://avatars2.githubusercontent.com/u/1335026?v=4","gravatar_id":"","url":"https://api.github.com/users/firebase","html_url":"https://github.com/firebase","followers_url":"https://api.github.com/users/firebase/followers","following_url":"https://api.github.com/users/firebase/following{/other_user}","gists_url":"https://api.github.com/users/firebase/gists{/gist_id}","starred_url":"https://api.github.com/users/firebase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firebase/subscriptions","organizations_url":"https://api.github.com/users/firebase/orgs","repos_url":"https://api.github.com/users/firebase/repos","events_url":"https://api.github.com/users/firebase/events{/privacy}","received_events_url":"https://api.github.com/users/firebase/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/firebase/firebase-ios-sdk","description":"Firebase iOS SDK","fork":false,"url":"https://api.github.com/repos/firebase/firebase-ios-sdk","forks_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/forks","keys_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/keys{/key_id}","collaborators_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/teams","hooks_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/hooks","issue_events_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/events{/number}","events_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/events","assignees_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/assignees{/user}","branches_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/branches{/branch}","tags_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/tags","blobs_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/refs{/sha}","trees_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/trees{/sha}","statuses_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/statuses/{sha}","languages_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/languages","stargazers_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/stargazers","contributors_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/contributors","subscribers_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/subscribers","subscription_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/subscription","commits_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/commits{/sha}","git_commits_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/git/commits{/sha}","comments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/comments{/number}","issue_comment_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/comments{/number}","contents_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/contents/{+path}","compare_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/compare/{base}...{head}","merges_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/merges","archive_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/downloads","issues_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues{/number}","pulls_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls{/number}","milestones_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/milestones{/number}","notifications_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/labels{/name}","releases_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/releases{/id}","deployments_url":"https://api.github.com/repos/firebase/firebase-ios-sdk/deployments","created_at":"2017-04-22T00:26:50Z","updated_at":"2018-02-02T17:42:02Z","pushed_at":"2018-02-02T22:27:25Z","git_url":"git://github.com/firebase/firebase-ios-sdk.git","ssh_url":"git@github.com:firebase/firebase-ios-sdk.git","clone_url":"https://github.com/firebase/firebase-ios-sdk.git","svn_url":"https://github.com/firebase/firebase-ios-sdk","homepage":"https://firebase.google.com","size":4870,"stargazers_count":545,"watchers_count":545,"language":"Objective-C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":97,"mirror_url":null,"archived":false,"open_issues_count":59,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":97,"open_issues":59,"watchers":545,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749"},"html":{"href":"https://github.com/firebase/firebase-ios-sdk/pull/749"},"issue":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/749"},"comments":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/issues/749/comments"},"review_comments":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749/comments"},"review_comment":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/pulls/749/commits"},"statuses":{"href":"https://api.github.com/repos/firebase/firebase-ios-sdk/statuses/ad7582b210b2dcaf93a0eb2a77fefecfb8c7c81a"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"var-const"}}