{"action":"created","comment":{"url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/comments/75072576","id":75072576,"diff_hunk":"@@ -1,182 +1,23 @@\n-/*\n- * Copyright 2015 DGraph Labs, Inc.\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- * \t\thttp://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 package rdf\n \n import (\n-\t\"fmt\"\n-\t\"log\"\n-\t\"strconv\"\n-\t\"strings\"\n-\t\"time\"\n+\t\"bytes\"\n \n-\t\"github.com/dgraph-io/dgraph/lex\"\n-\t\"github.com/dgraph-io/dgraph/uid\"\n-\t\"github.com/dgraph-io/dgraph/x\"\n+\tp \"github.com/dgraph-io/dgraph/parsing\"\n )\n \n-// NQuad is the data structure used for storing rdf N-Quads.\n-type NQuad struct {\n-\tSubject     string\n-\tPredicate   string\n-\tObjectId    string\n-\tObjectValue []byte\n-\tLabel       string\n-}\n-\n-// Gets the uid corresponding to an xid from the posting list which stores the\n-// mapping.\n-func getUid(xid string) (uint64, error) {\n-\t// If string represents a UID, convert to uint64 and return.\n-\tif strings.HasPrefix(xid, \"_uid_:\") {\n-\t\treturn strconv.ParseUint(xid[6:], 0, 64)\n-\t}\n-\t// Get uid from posting list in UidStore.\n-\treturn uid.Get(xid)\n-}\n-\n-// ToEdge is useful when you want to find the UID corresponding to XID for\n-// just one edge. The method doesn't automatically generate a UID for an XID.\n-func (nq NQuad) ToEdge() (result x.DirectedEdge, rerr error) {\n-\tsid, err := getUid(nq.Subject)\n-\tif err != nil {\n-\t\treturn result, err\n-\t}\n-\n-\tresult.Entity = sid\n-\t// An edge can have an id or a value.\n-\tif len(nq.ObjectId) > 0 {\n-\t\toid, err := getUid(nq.ObjectId)\n-\t\tif err != nil {\n-\t\t\treturn result, err\n-\t\t}\n-\t\tresult.ValueId = oid\n-\t} else {\n-\t\tresult.Value = nq.ObjectValue\n-\t}\n-\tresult.Attribute = nq.Predicate\n-\tresult.Source = nq.Label\n-\tresult.Timestamp = time.Now()\n-\treturn result, nil\n-}\n-\n-func toUid(xid string, xidToUID map[string]uint64) (uid uint64, rerr error) {\n-\tif id, present := xidToUID[xid]; present {\n-\t\treturn id, nil\n-\t}\n-\n-\tif !strings.HasPrefix(xid, \"_uid_:\") {\n-\t\treturn 0, fmt.Errorf(\"Unable to find xid: %v\", xid)\n-\t}\n-\treturn strconv.ParseUint(xid[6:], 0, 64)\n-}\n-\n-// ToEdgeUsing determines the UIDs for the provided XIDs and populates the\n-// xidToUid map.\n-func (nq NQuad) ToEdgeUsing(\n-\txidToUID map[string]uint64) (result x.DirectedEdge, rerr error) {\n-\tuid, err := toUid(nq.Subject, xidToUID)\n-\tif err != nil {\n-\t\treturn result, err\n-\t}\n-\tresult.Entity = uid\n-\n-\tif len(nq.ObjectId) == 0 {\n-\t\tresult.Value = nq.ObjectValue\n-\t} else {\n-\t\tuid, err = toUid(nq.ObjectId, xidToUID)\n-\t\tif err != nil {\n-\t\t\treturn result, err\n-\t\t}\n-\t\tresult.ValueId = uid\n-\t}\n-\tresult.Attribute = nq.Predicate\n-\tresult.Source = nq.Label\n-\tresult.Timestamp = time.Now()\n-\treturn result, nil\n-}\n-\n-// This function is used to extract an IRI from an IRIREF.\n-func stripBracketsIfPresent(val string) string {\n-\tif val[0] != '<' && val[len(val)-1] != '>' {\n-\t\treturn val\n-\t}\n-\treturn val[1 : len(val)-1]\n-}\n-\n-// Parse parses a mutation string and returns the NQuad representation for it.\n-func Parse(line string) (rnq NQuad, rerr error) {\n-\tl := &lex.Lexer{}\n-\tl.Init(line)\n-\n-\tgo run(l)\n-\tvar oval string\n-\tvar vend bool\n-\t// We read items from the l.Items channel to which the lexer sends items.\n-\tfor item := range l.Items {\n-\t\tif item.Typ == itemSubject {\n-\t\t\trnq.Subject = stripBracketsIfPresent(item.Val)\n-\t\t}\n-\t\tif item.Typ == itemPredicate {\n-\t\t\trnq.Predicate = stripBracketsIfPresent(item.Val)\n-\t\t}\n-\t\tif item.Typ == itemObject {\n-\t\t\trnq.ObjectId = stripBracketsIfPresent(item.Val)\n-\t\t}\n-\t\tif item.Typ == itemLiteral {\n-\t\t\toval = item.Val\n-\t\t}\n-\t\tif item.Typ == itemLanguage {\n-\t\t\trnq.Predicate += \".\" + item.Val\n-\t\t}\n-\t\tif item.Typ == itemObjectType {\n-\t\t\t// TODO: Strictly parse common types like integers, floats etc.\n-\t\t\tif len(oval) == 0 {\n-\t\t\t\tlog.Fatalf(\n-\t\t\t\t\t\"itemObject should be emitted before itemObjectType. Input: [%s]\",\n-\t\t\t\t\tline)\n-\t\t\t}\n-\t\t\toval += \"@@\" + stripBracketsIfPresent(item.Val)\n-\t\t}\n-\t\tif item.Typ == lex.ItemError {\n-\t\t\treturn rnq, fmt.Errorf(item.Val)\n-\t\t}\n-\t\tif item.Typ == itemValidEnd {\n-\t\t\tvend = true\n-\t\t}\n-\t\tif item.Typ == itemLabel {\n-\t\t\trnq.Label = stripBracketsIfPresent(item.Val)\n-\t\t}\n-\t}\n-\tif !vend {\n-\t\treturn rnq, fmt.Errorf(\"Invalid end of input. Input: [%s]\", line)\n-\t}\n-\tif len(oval) > 0 {\n-\t\trnq.ObjectValue = []byte(oval)\n-\t}\n-\tif len(rnq.Subject) == 0 || len(rnq.Predicate) == 0 {\n-\t\treturn rnq, fmt.Errorf(\"Empty required fields in NQuad. Input: [%s]\", line)\n-\t}\n-\tif len(rnq.ObjectId) == 0 && rnq.ObjectValue == nil {\n-\t\treturn rnq, fmt.Errorf(\"No Object in NQuad. Input: [%s]\", line)\n-\t}\n-\n-\treturn rnq, nil\n+func Parse(line string) (rnq NQuad, err error) {\n+\ts := p.NewByteStream(bytes.NewBufferString(line))\n+\tvar nqp nQuadParser\n+\ts, err = p.ParseErr(s, &nqp)\n+\trnq = NQuad(nqp)\n+\treturn\n }\n \n-func isNewline(r rune) bool {\n-\treturn r == '\\n' || r == '\\r'\n+func ParseDoc(doc string) (ret []NQuad, err error) {","path":"rdf/parse.go","position":190,"original_position":190,"commit_id":"7fb46c21b09412e7863bdf8eddbb5891ec6f5f44","original_commit_id":"7fb46c21b09412e7863bdf8eddbb5891ec6f5f44","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars.githubusercontent.com/u/6697940?v=3","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"exported function ParseDoc should have comment or be unexported","created_at":"2016-08-17T07:14:18Z","updated_at":"2016-08-17T07:14:18Z","html_url":"https://github.com/dgraph-io/dgraph/pull/168#discussion_r75072576","pull_request_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168","_links":{"self":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/comments/75072576"},"html":{"href":"https://github.com/dgraph-io/dgraph/pull/168#discussion_r75072576"},"pull_request":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168"}}},"pull_request":{"url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168","id":81592285,"html_url":"https://github.com/dgraph-io/dgraph/pull/168","diff_url":"https://github.com/dgraph-io/dgraph/pull/168.diff","patch_url":"https://github.com/dgraph-io/dgraph/pull/168.patch","issue_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/168","number":168,"state":"open","locked":false,"title":"Improved parsing and various","user":{"login":"anacrolix","id":988750,"avatar_url":"https://avatars.githubusercontent.com/u/988750?v=3","gravatar_id":"","url":"https://api.github.com/users/anacrolix","html_url":"https://github.com/anacrolix","followers_url":"https://api.github.com/users/anacrolix/followers","following_url":"https://api.github.com/users/anacrolix/following{/other_user}","gists_url":"https://api.github.com/users/anacrolix/gists{/gist_id}","starred_url":"https://api.github.com/users/anacrolix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anacrolix/subscriptions","organizations_url":"https://api.github.com/users/anacrolix/orgs","repos_url":"https://api.github.com/users/anacrolix/repos","events_url":"https://api.github.com/users/anacrolix/events{/privacy}","received_events_url":"https://api.github.com/users/anacrolix/received_events","type":"User","site_admin":false},"body":"Makes it much easier to modify rules and diagnose syntax errors. Much of the smarts are moved into ./parsing, which can be used for gql and other parsing purposes. Lots of tests. Included are corrected IRIREF tests. JSON query responses are always terminated with \\n for improved command-line usage.\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/dgraph-io/dgraph/168)\n<!-- Reviewable:end -->\n","created_at":"2016-08-17T06:53:35Z","updated_at":"2016-08-17T07:14:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"476f49d9883c85cc99118b30ab4bc985888f23fb","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168/commits","review_comments_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168/comments","review_comment_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/168/comments","statuses_url":"https://api.github.com/repos/dgraph-io/dgraph/statuses/7fb46c21b09412e7863bdf8eddbb5891ec6f5f44","head":{"label":"dgraph-io:matt-parser","ref":"matt-parser","sha":"7fb46c21b09412e7863bdf8eddbb5891ec6f5f44","user":{"login":"dgraph-io","id":13958706,"avatar_url":"https://avatars.githubusercontent.com/u/13958706?v=3","gravatar_id":"","url":"https://api.github.com/users/dgraph-io","html_url":"https://github.com/dgraph-io","followers_url":"https://api.github.com/users/dgraph-io/followers","following_url":"https://api.github.com/users/dgraph-io/following{/other_user}","gists_url":"https://api.github.com/users/dgraph-io/gists{/gist_id}","starred_url":"https://api.github.com/users/dgraph-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgraph-io/subscriptions","organizations_url":"https://api.github.com/users/dgraph-io/orgs","repos_url":"https://api.github.com/users/dgraph-io/repos","events_url":"https://api.github.com/users/dgraph-io/events{/privacy}","received_events_url":"https://api.github.com/users/dgraph-io/received_events","type":"Organization","site_admin":false},"repo":{"id":41349039,"name":"dgraph","full_name":"dgraph-io/dgraph","owner":{"login":"dgraph-io","id":13958706,"avatar_url":"https://avatars.githubusercontent.com/u/13958706?v=3","gravatar_id":"","url":"https://api.github.com/users/dgraph-io","html_url":"https://github.com/dgraph-io","followers_url":"https://api.github.com/users/dgraph-io/followers","following_url":"https://api.github.com/users/dgraph-io/following{/other_user}","gists_url":"https://api.github.com/users/dgraph-io/gists{/gist_id}","starred_url":"https://api.github.com/users/dgraph-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgraph-io/subscriptions","organizations_url":"https://api.github.com/users/dgraph-io/orgs","repos_url":"https://api.github.com/users/dgraph-io/repos","events_url":"https://api.github.com/users/dgraph-io/events{/privacy}","received_events_url":"https://api.github.com/users/dgraph-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dgraph-io/dgraph","description":"Scalable, Distributed, Low Latency Graph Database","fork":false,"url":"https://api.github.com/repos/dgraph-io/dgraph","forks_url":"https://api.github.com/repos/dgraph-io/dgraph/forks","keys_url":"https://api.github.com/repos/dgraph-io/dgraph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dgraph-io/dgraph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dgraph-io/dgraph/teams","hooks_url":"https://api.github.com/repos/dgraph-io/dgraph/hooks","issue_events_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/events{/number}","events_url":"https://api.github.com/repos/dgraph-io/dgraph/events","assignees_url":"https://api.github.com/repos/dgraph-io/dgraph/assignees{/user}","branches_url":"https://api.github.com/repos/dgraph-io/dgraph/branches{/branch}","tags_url":"https://api.github.com/repos/dgraph-io/dgraph/tags","blobs_url":"https://api.github.com/repos/dgraph-io/dgraph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dgraph-io/dgraph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dgraph-io/dgraph/git/refs{/sha}","trees_url":"https://api.github.com/repos/dgraph-io/dgraph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dgraph-io/dgraph/statuses/{sha}","languages_url":"https://api.github.com/repos/dgraph-io/dgraph/languages","stargazers_url":"https://api.github.com/repos/dgraph-io/dgraph/stargazers","contributors_url":"https://api.github.com/repos/dgraph-io/dgraph/contributors","subscribers_url":"https://api.github.com/repos/dgraph-io/dgraph/subscribers","subscription_url":"https://api.github.com/repos/dgraph-io/dgraph/subscription","commits_url":"https://api.github.com/repos/dgraph-io/dgraph/commits{/sha}","git_commits_url":"https://api.github.com/repos/dgraph-io/dgraph/git/commits{/sha}","comments_url":"https://api.github.com/repos/dgraph-io/dgraph/comments{/number}","issue_comment_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/comments{/number}","contents_url":"https://api.github.com/repos/dgraph-io/dgraph/contents/{+path}","compare_url":"https://api.github.com/repos/dgraph-io/dgraph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dgraph-io/dgraph/merges","archive_url":"https://api.github.com/repos/dgraph-io/dgraph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dgraph-io/dgraph/downloads","issues_url":"https://api.github.com/repos/dgraph-io/dgraph/issues{/number}","pulls_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls{/number}","milestones_url":"https://api.github.com/repos/dgraph-io/dgraph/milestones{/number}","notifications_url":"https://api.github.com/repos/dgraph-io/dgraph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dgraph-io/dgraph/labels{/name}","releases_url":"https://api.github.com/repos/dgraph-io/dgraph/releases{/id}","deployments_url":"https://api.github.com/repos/dgraph-io/dgraph/deployments","created_at":"2015-08-25T07:15:56Z","updated_at":"2016-08-17T00:16:01Z","pushed_at":"2016-08-17T07:14:15Z","git_url":"git://github.com/dgraph-io/dgraph.git","ssh_url":"git@github.com:dgraph-io/dgraph.git","clone_url":"https://github.com/dgraph-io/dgraph.git","svn_url":"https://github.com/dgraph-io/dgraph","homepage":"","size":32549,"stargazers_count":1688,"watchers_count":1688,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":75,"mirror_url":null,"open_issues_count":19,"forks":75,"open_issues":19,"watchers":1688,"default_branch":"master"}},"base":{"label":"dgraph-io:master","ref":"master","sha":"0a5208becbd77e51b908076141284db819cc5e5e","user":{"login":"dgraph-io","id":13958706,"avatar_url":"https://avatars.githubusercontent.com/u/13958706?v=3","gravatar_id":"","url":"https://api.github.com/users/dgraph-io","html_url":"https://github.com/dgraph-io","followers_url":"https://api.github.com/users/dgraph-io/followers","following_url":"https://api.github.com/users/dgraph-io/following{/other_user}","gists_url":"https://api.github.com/users/dgraph-io/gists{/gist_id}","starred_url":"https://api.github.com/users/dgraph-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgraph-io/subscriptions","organizations_url":"https://api.github.com/users/dgraph-io/orgs","repos_url":"https://api.github.com/users/dgraph-io/repos","events_url":"https://api.github.com/users/dgraph-io/events{/privacy}","received_events_url":"https://api.github.com/users/dgraph-io/received_events","type":"Organization","site_admin":false},"repo":{"id":41349039,"name":"dgraph","full_name":"dgraph-io/dgraph","owner":{"login":"dgraph-io","id":13958706,"avatar_url":"https://avatars.githubusercontent.com/u/13958706?v=3","gravatar_id":"","url":"https://api.github.com/users/dgraph-io","html_url":"https://github.com/dgraph-io","followers_url":"https://api.github.com/users/dgraph-io/followers","following_url":"https://api.github.com/users/dgraph-io/following{/other_user}","gists_url":"https://api.github.com/users/dgraph-io/gists{/gist_id}","starred_url":"https://api.github.com/users/dgraph-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgraph-io/subscriptions","organizations_url":"https://api.github.com/users/dgraph-io/orgs","repos_url":"https://api.github.com/users/dgraph-io/repos","events_url":"https://api.github.com/users/dgraph-io/events{/privacy}","received_events_url":"https://api.github.com/users/dgraph-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dgraph-io/dgraph","description":"Scalable, Distributed, Low Latency Graph Database","fork":false,"url":"https://api.github.com/repos/dgraph-io/dgraph","forks_url":"https://api.github.com/repos/dgraph-io/dgraph/forks","keys_url":"https://api.github.com/repos/dgraph-io/dgraph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dgraph-io/dgraph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dgraph-io/dgraph/teams","hooks_url":"https://api.github.com/repos/dgraph-io/dgraph/hooks","issue_events_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/events{/number}","events_url":"https://api.github.com/repos/dgraph-io/dgraph/events","assignees_url":"https://api.github.com/repos/dgraph-io/dgraph/assignees{/user}","branches_url":"https://api.github.com/repos/dgraph-io/dgraph/branches{/branch}","tags_url":"https://api.github.com/repos/dgraph-io/dgraph/tags","blobs_url":"https://api.github.com/repos/dgraph-io/dgraph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dgraph-io/dgraph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dgraph-io/dgraph/git/refs{/sha}","trees_url":"https://api.github.com/repos/dgraph-io/dgraph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dgraph-io/dgraph/statuses/{sha}","languages_url":"https://api.github.com/repos/dgraph-io/dgraph/languages","stargazers_url":"https://api.github.com/repos/dgraph-io/dgraph/stargazers","contributors_url":"https://api.github.com/repos/dgraph-io/dgraph/contributors","subscribers_url":"https://api.github.com/repos/dgraph-io/dgraph/subscribers","subscription_url":"https://api.github.com/repos/dgraph-io/dgraph/subscription","commits_url":"https://api.github.com/repos/dgraph-io/dgraph/commits{/sha}","git_commits_url":"https://api.github.com/repos/dgraph-io/dgraph/git/commits{/sha}","comments_url":"https://api.github.com/repos/dgraph-io/dgraph/comments{/number}","issue_comment_url":"https://api.github.com/repos/dgraph-io/dgraph/issues/comments{/number}","contents_url":"https://api.github.com/repos/dgraph-io/dgraph/contents/{+path}","compare_url":"https://api.github.com/repos/dgraph-io/dgraph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dgraph-io/dgraph/merges","archive_url":"https://api.github.com/repos/dgraph-io/dgraph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dgraph-io/dgraph/downloads","issues_url":"https://api.github.com/repos/dgraph-io/dgraph/issues{/number}","pulls_url":"https://api.github.com/repos/dgraph-io/dgraph/pulls{/number}","milestones_url":"https://api.github.com/repos/dgraph-io/dgraph/milestones{/number}","notifications_url":"https://api.github.com/repos/dgraph-io/dgraph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dgraph-io/dgraph/labels{/name}","releases_url":"https://api.github.com/repos/dgraph-io/dgraph/releases{/id}","deployments_url":"https://api.github.com/repos/dgraph-io/dgraph/deployments","created_at":"2015-08-25T07:15:56Z","updated_at":"2016-08-17T00:16:01Z","pushed_at":"2016-08-17T07:14:15Z","git_url":"git://github.com/dgraph-io/dgraph.git","ssh_url":"git@github.com:dgraph-io/dgraph.git","clone_url":"https://github.com/dgraph-io/dgraph.git","svn_url":"https://github.com/dgraph-io/dgraph","homepage":"","size":32549,"stargazers_count":1688,"watchers_count":1688,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":75,"mirror_url":null,"open_issues_count":19,"forks":75,"open_issues":19,"watchers":1688,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168"},"html":{"href":"https://github.com/dgraph-io/dgraph/pull/168"},"issue":{"href":"https://api.github.com/repos/dgraph-io/dgraph/issues/168"},"comments":{"href":"https://api.github.com/repos/dgraph-io/dgraph/issues/168/comments"},"review_comments":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168/comments"},"review_comment":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dgraph-io/dgraph/pulls/168/commits"},"statuses":{"href":"https://api.github.com/repos/dgraph-io/dgraph/statuses/7fb46c21b09412e7863bdf8eddbb5891ec6f5f44"}}}}
{"actor":{"display_login":"houndci-bot"}}