{"action":"created","comment":{"url":"https://api.github.com/repos/dgraph-io/dgraph/pulls/comments/75070575","id":75070575,"diff_hunk":"@@ -0,0 +1,357 @@\n+package rdf\n+\n+import (\n+\t\"errors\"\n+\t\"fmt\"\n+\t\"strings\"\n+\t\"unicode\"\n+\n+\tp \"github.com/dgraph-io/dgraph/parsing\"\n+)\n+\n+type subject string\n+\n+func (me *subject) Parse(s p.Stream) p.Stream {\n+\tvar (\n+\t\tiriRef  iriRef\n+\t\tbnLabel bnLabel\n+\t)\n+\ts, i := p.OneOf(s, &iriRef, &bnLabel)\n+\tswitch i {\n+\tcase 0:\n+\t\t*me = subject(iriRef)\n+\tcase 1:\n+\t\t*me = subject(bnLabel)\n+\t}\n+\treturn s\n+}\n+\n+type object struct {\n+\tId      string\n+\tLiteral literal\n+}\n+\n+func (me *object) Parse(s p.Stream) p.Stream {\n+\tvar (\n+\t\tiriRef  iriRef\n+\t\tbnLabel bnLabel\n+\t)\n+\ts, i := p.OneOf(s, &iriRef, &bnLabel, &me.Literal)\n+\tswitch i {\n+\tcase 0:\n+\t\tme.Id = string(iriRef)\n+\tcase 1:\n+\t\tme.Id = string(bnLabel)\n+\t}\n+\treturn s\n+}\n+\n+func pByte(s p.Stream, b byte) p.Stream {\n+\tif !s.Good() {\n+\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{Err: s.Err()}))\n+\t}\n+\t_b := s.Token().(byte)\n+\tif _b != b {\n+\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\tErr:    fmt.Errorf(\"wanted %q\", b),\n+\t\t\tStream: s,\n+\t\t}))\n+\t}\n+\treturn s.Next()\n+}\n+\n+type eChar byte\n+\n+func (me *eChar) Parse(s p.Stream) p.Stream {\n+\ts = pByte(s, '\\\\')\n+\tif !s.Good() {\n+\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\tStream: s,\n+\t\t\tErr:    s.Err(),\n+\t\t}))\n+\t}\n+\tb := s.Token().(byte)\n+\t// ECHAR ::= '\\' [tbnrf\"'\\]\n+\tswitch b {\n+\tcase 't':\n+\t\t*me = '\\t'\n+\tcase 'b':\n+\t\t*me = '\\b'\n+\tcase 'n':\n+\t\t*me = '\\n'\n+\tcase 'r':\n+\t\t*me = '\\r'\n+\tcase 'f':\n+\t\t*me = '\\f'\n+\tcase '\"':\n+\t\t*me = '\"'\n+\tcase '\\'':\n+\t\t*me = '\\''\n+\tdefault:\n+\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\tStream: s,\n+\t\t\tErr:    fmt.Errorf(\"can't escape %q\", b),\n+\t\t}))\n+\t}\n+\treturn s.Next()\n+}\n+\n+type quotedStringLiteral string\n+\n+func (me *quotedStringLiteral) Parse(s p.Stream) p.Stream {\n+\ts = pByte(s, '\"')\n+\tvar bs []byte\n+\tfor s.Good() {\n+\t\tb := s.Token().(byte)\n+\t\tswitch b {\n+\t\tcase '\"':\n+\t\t\t*me = quotedStringLiteral(string(bs))\n+\t\t\treturn s.Next()\n+\t\tcase '\\\\':\n+\t\t\tvar e eChar\n+\t\t\ts = p.Parse(s, &e)\n+\t\t\tbs = append(bs, byte(e))\n+\t\tdefault:\n+\t\t\tbs = append(bs, b)\n+\t\t\ts = s.Next()\n+\t\t}\n+\t}\n+\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\tStream: s,\n+\t\tErr:    s.Err(),\n+\t}))\n+}\n+\n+type literal struct {\n+\tValue   string\n+\tLangTag string\n+}\n+\n+func (l *literal) Parse(s p.Stream) p.Stream {\n+\tvar qsl quotedStringLiteral\n+\ts = p.Parse(s, &qsl)\n+\tl.Value = string(qsl)\n+\tvar (\n+\t\tlangTag langTag\n+\t\tiriRef  iriRef\n+\t)\n+\ts = p.Maybe(s, p.ParseFunc(func(s p.Stream) p.Stream {\n+\t\ts, i := p.OneOf(s,\n+\t\t\t&langTag,\n+\t\t\tp.ParseFunc(func(s p.Stream) p.Stream {\n+\t\t\t\ts = pBytes(s, \"^^\")\n+\t\t\t\treturn p.Parse(s, &iriRef)\n+\t\t\t}),\n+\t\t)\n+\t\tswitch i {\n+\t\tcase 0:\n+\t\t\tl.LangTag = string(langTag)\n+\t\tcase 1:\n+\t\t\tl.Value += \"@@\" + string(iriRef)\n+\t\t}\n+\t\treturn s\n+\t}))\n+\treturn s\n+}\n+\n+type bytesWhile struct {\n+\tb    []byte\n+\tpred func(byte) bool\n+}\n+\n+func (me *bytesWhile) Parse(s p.Stream) p.Stream {\n+\tfor s.Good() {\n+\t\tb := s.Token().(byte)\n+\t\tif !me.pred(b) {\n+\t\t\tbreak\n+\t\t}\n+\t\tme.b = append(me.b, b)\n+\t\ts = s.Next()\n+\t}\n+\treturn s\n+}\n+\n+type untilByte struct {\n+\tb  byte\n+\tbs []byte\n+}\n+\n+func (me *untilByte) Parse(s p.Stream) p.Stream {\n+\tfor s.Good() {\n+\t\tb := s.Token().(byte)\n+\t\ts = s.Next()\n+\t\tif b == me.b {\n+\t\t\treturn s\n+\t\t}\n+\t\tme.bs = append(me.bs, b)\n+\t}\n+\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\tStream: s,\n+\t\tErr:    s.Err(),\n+\t}))\n+}\n+\n+type langTag string\n+\n+func (me *langTag) Parse(s p.Stream) p.Stream {\n+\ts = pByte(s, '@')\n+\tbw := bytesWhile{\n+\t\tpred: func(b byte) bool { return unicode.IsLetter(rune(b)) },\n+\t}\n+\ts = p.Parse(s, &bw)\n+\tif len(bw.b) < 1 {\n+\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\tStream: s,\n+\t\t\tErr:    errors.New(\"require at least one letter\"),\n+\t\t}))\n+\t}\n+\tbw.pred = func(b byte) bool {\n+\t\treturn b == '-' || unicode.IsLetter(rune(b)) || unicode.IsNumber(rune(b))\n+\t}\n+\ts = p.Parse(s, &bw)\n+\t*me = langTag(bw.b)\n+\treturn s\n+}\n+\n+type iriRef string\n+\n+func (me *iriRef) Parse(s p.Stream) p.Stream {\n+\ts = pByte(s, '<')\n+\tbw := bytesWhile{\n+\t\tpred: func(b byte) bool {\n+\t\t\treturn b > 0x20 && !strings.ContainsRune(\"<>\\\"{}|^`\\\\\", rune(b))\n+\t\t},\n+\t}\n+\ts = p.Parse(s, &bw)\n+\ts = pByte(s, '>')\n+\t*me = iriRef(bw.b)\n+\treturn s\n+}\n+\n+type bnLabel string\n+\n+func (me *bnLabel) Parse(s p.Stream) p.Stream {\n+\ts = pByte(s, '_')\n+\tbeforeColon := bytesWhile{\n+\t\tpred: func(b byte) bool {\n+\t\t\treturn b != ':' && !unicode.IsSpace(rune(b))\n+\t\t},\n+\t}\n+\ts = beforeColon.Parse(s)\n+\ts = pByte(s, ':')\n+\trest := bytesWhile{\n+\t\tpred: func(b byte) bool {\n+\t\t\treturn !unicode.IsSpace(rune(b))\n+\t\t},\n+\t}\n+\ts = rest.Parse(s)\n+\t*me = bnLabel(fmt.Sprintf(\"_%s:%s\", beforeColon.b, rest.b))\n+\treturn s\n+}\n+\n+type predicate struct {\n+\tiriRef\n+}\n+\n+func pBytes(s p.Stream, bs string) p.Stream {\n+\tfor _, b := range []byte(bs) {\n+\t\tif !s.Good() {\n+\t\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\t\tStream: s,\n+\t\t\t\tErr:    fmt.Errorf(\"expected %q but got %s\", b, s.Err()),\n+\t\t\t}))\n+\t\t}\n+\t\t_b := s.Token().(byte)\n+\t\tif _b != b {\n+\t\t\tpanic(p.NewSyntaxError(p.SyntaxErrorContext{\n+\t\t\t\tStream: s,\n+\t\t\t\tErr:    fmt.Errorf(\"expected %q but got %q\", b, _b),\n+\t\t\t}))\n+\t\t}\n+\t\ts = s.Next()\n+\t}\n+\treturn s\n+}\n+\n+type label struct {\n+\tsubject\n+}\n+\n+type nQuadParser NQuad\n+\n+func (me *nQuadParser) Parse(s p.Stream) p.Stream {\n+\tvar (\n+\t\tsub   subject\n+\t\tpred  predicate\n+\t\tobj   object\n+\t\tlabel label\n+\t)\n+\ts = p.Parse(s, &sub)\n+\tme.Subject = string(sub)\n+\tbetweenNQuadFields(&s)\n+\ts = p.Parse(s, &pred)\n+\tme.Predicate = string(pred.iriRef)\n+\tbetweenNQuadFields(&s)\n+\ts = p.Parse(s, &obj)\n+\tme.ObjectId = obj.Id\n+\tif obj.Literal.Value != \"\" {\n+\t\tme.ObjectValue = []byte(obj.Literal.Value)\n+\t}\n+\tif obj.Literal.LangTag != \"\" {\n+\t\tme.Predicate += \".\" + obj.Literal.LangTag\n+\t}\n+\tbetweenNQuadFields(&s)\n+\ts = p.Maybe(s, p.ParseFunc(func(s p.Stream) p.Stream {\n+\t\ts = p.Parse(s, &label)\n+\t\tme.Label = string(label.subject)\n+\t\tbetweenNQuadFields(&s)\n+\t\treturn s\n+\t}))\n+\ts = pByte(s, '.')\n+\treturn s\n+}\n+\n+func discardWhitespace(s *p.Stream) {\n+\tdiscardWhilePred(s, func(b byte) bool {\n+\t\treturn unicode.IsSpace(rune(b))\n+\t})\n+}\n+\n+func betweenNQuadFields(s *p.Stream) {\n+\tdiscardWhilePred(s, func(b byte) bool {\n+\t\treturn unicode.IsSpace(rune(b)) && b != '\\n'\n+\t})\n+}\n+\n+func discardWhilePred(s *p.Stream, pred func(byte) bool) {\n+\t_s := *s\n+\tfor _s.Good() {\n+\t\tb := _s.Token().(byte)\n+\t\tif !pred(b) {\n+\t\t\tbreak\n+\t\t}\n+\t\t_s = _s.Next()\n+\t}\n+\t*s = _s\n+}\n+\n+type nQuadsDoc []NQuad\n+\n+func (me *nQuadsDoc) Parse(s p.Stream) p.Stream {","path":"rdf/parsers.go","position":340,"original_position":340,"commit_id":"52ceb6d73b9f0b2b27347616e98cd2bbcdef44ca","original_commit_id":"52ceb6d73b9f0b2b27347616e98cd2bbcdef44ca","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":"receiver name should be a reflection of its identity; don't use generic names such as \"me\", \"this\", or \"self\"","created_at":"2016-08-17T06:53:43Z","updated_at":"2016-08-17T06:53:43Z","html_url":"https://github.com/dgraph-io/dgraph/pull/168#discussion_r75070575","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/75070575"},"html":{"href":"https://github.com/dgraph-io/dgraph/pull/168#discussion_r75070575"},"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-17T06:53:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b61a6cbf2e8540ae038b76d1fae152b1ff32899","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/52ceb6d73b9f0b2b27347616e98cd2bbcdef44ca","head":{"label":"dgraph-io:matt-parser","ref":"matt-parser","sha":"52ceb6d73b9f0b2b27347616e98cd2bbcdef44ca","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-17T06:53:41Z","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-17T06:53:41Z","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/52ceb6d73b9f0b2b27347616e98cd2bbcdef44ca"}}}}
{"actor":{"display_login":"houndci-bot"}}