{"action":"created","comment":{"url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/comments/110187747","pull_request_review_id":31341882,"id":110187747,"diff_hunk":"@@ -209,51 +229,87 @@\n     execution-context\n     (apply-selection execution-context selection)))\n \n+(defn ^:private included-fragment-selector\n+  [resolved-value callback]\n+  (callback resolved-value))\n+\n (defn ^:private resolve-and-select\n   \"Recursive resolution of a field within a containing field's resolved value.\n \n   Returns a ResolverResult of the selected value.\n+\n   Accumulates errors in the execution context as a side-effect.\"\n   [execution-context selection]\n-  (cond-let\n-    :let [resolved-tuple (resolve-value execution-context selection)\n-          resolved-value (resolve/resolved-value resolved-tuple)\n-          sub-selections (:selections selection)]\n-\n-    ;; When the value is nil, or there are no sub-selections of the object to\n-    ;; evaluate, then it's an early, easy finish.\n-    (or (nil? resolved-value)\n-        (empty? sub-selections))\n-    resolved-tuple\n-\n-    :let [selected-value-builder\n-          ;; This function takes the resolved value (or, a value from the sequence,\n-          ;; for a multiple field) and builds out the sub-structure for it, a recursive\n-          ;; process at the heart of GraphQL.\n-          ;; It returns the selected value, and adds errors to the execution-errors\n-          ;; atom as a side-effect.\n-          (fn [resolved-value]\n-\n-            (let [selected-base (with-meta (ordered-map) (meta resolved-value))\n-\n-                  execution-context (reduce maybe-apply-selection\n-                                            (assoc execution-context\n-                                                   :value selected-base\n-                                                   :resolved-value resolved-value)\n-                                            sub-selections)]\n-              (:value execution-context)))]\n-\n-    ;; If a field, and the field's type is multiple, then it is a sequence of resolved values\n-    ;; that must each be selected to form proper results.\n-    (-> selection :field-definition :multiple?)\n-    (let [selected-values (mapv selected-value-builder resolved-value)]\n-      (resolve-as selected-values))\n-\n-    ;; Otherwise, it is just a map but must still have selections applied, to form the selected value.\n-    :else\n-    (-> resolved-value\n-        selected-value-builder\n-        resolve-as)))\n+  (let\n+    [resolved-value (resolve-value execution-context selection)\n+     sub-selections (:selections selection)\n+\n+     selected-value-builder\n+     ;; This function takes the resolved value (or, a value from the list,\n+     ;; for a list field) and builds out the sub-structure for it, a recursive\n+     ;; process at the heart of GraphQL.\n+     ;; It returns the selected value, ready to be attached to the result tree,\n+     (fn [resolved-value]\n+       (cond\n+\n+         (= ::schema/empty-list resolved-value)\n+         []\n+\n+         (and (some? resolved-value)\n+              (seq sub-selections))\n+         (let [execution-context (reduce maybe-apply-selection\n+                                         (assoc execution-context\n+                                                :value (ordered-map)\n+                                                :resolved-value resolved-value)\n+                                         sub-selections)]\n+           (:value execution-context))\n+\n+         :else\n+         resolved-value))\n+\n+     ;; The callback is a wrapper around the builder, that handles the optional\n+     ;; errors.\n+     selector-callback\n+     (fn\n+       ([resolved-value]\n+        (selected-value-builder resolved-value))\n+       ([resolved-value errors]\n+        (let [errors' (if (map? errors)\n+                        [errors]\n+                        errors)]\n+          (swap! (:errors execution-context)\n+                 into\n+                 (enhance-errors selection errors')))\n+        (selected-value-builder resolved-value)))\n+     ;; In a concrete type, we know the selector from the field definition\n+     ;; (a field definition on a concrete object type).  Otherwise, we need\n+     ;; to use the type of the parent node's resolved value, just\n+     ;; as we do to get a resolver.\n+     selector (if (-> selection :selection-type (not= :field))\n+                included-fragment-selector\n+                (or (-> selection :field-definition :selector)\n+                    (let [concrete-type-name (-> execution-context\n+                                                 :resolved-value\n+                                                 schema/type-tag)\n+                          field-name (:field selection)]\n+                      (-> execution-context\n+                          :context\n+                          (get constants/schema-key)\n+                          (get concrete-type-name)\n+                          :fields\n+                          (get field-name)\n+                          :selector\n+                          (or (throw (ex-info \"Sanity check: no selector.\"","path":"src/com/walmartlabs/lacinia/executor.clj","position":253,"original_position":253,"commit_id":"ceeebac558ea910acccab850f9a24b1798881ab5","original_commit_id":"ceeebac558ea910acccab850f9a24b1798881ab5","user":{"login":"hlship","id":52660,"avatar_url":"https://avatars0.githubusercontent.com/u/52660?v=3","gravatar_id":"","url":"https://api.github.com/users/hlship","html_url":"https://github.com/hlship","followers_url":"https://api.github.com/users/hlship/followers","following_url":"https://api.github.com/users/hlship/following{/other_user}","gists_url":"https://api.github.com/users/hlship/gists{/gist_id}","starred_url":"https://api.github.com/users/hlship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlship/subscriptions","organizations_url":"https://api.github.com/users/hlship/orgs","repos_url":"https://api.github.com/users/hlship/repos","events_url":"https://api.github.com/users/hlship/events{/privacy}","received_events_url":"https://api.github.com/users/hlship/received_events","type":"User","site_admin":false},"body":"It did while I was debugging, and I've left sanity checks in place before.","created_at":"2017-04-06T15:10:10Z","updated_at":"2017-04-06T15:10:10Z","html_url":"https://github.com/walmartlabs/lacinia/pull/31#discussion_r110187747","pull_request_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31","_links":{"self":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/comments/110187747"},"html":{"href":"https://github.com/walmartlabs/lacinia/pull/31#discussion_r110187747"},"pull_request":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31"}}},"pull_request":{"url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31","id":114448401,"html_url":"https://github.com/walmartlabs/lacinia/pull/31","diff_url":"https://github.com/walmartlabs/lacinia/pull/31.diff","patch_url":"https://github.com/walmartlabs/lacinia/pull/31.patch","issue_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/31","number":31,"state":"closed","locked":false,"title":"Fill gaps in type support","user":{"login":"hlship","id":52660,"avatar_url":"https://avatars0.githubusercontent.com/u/52660?v=3","gravatar_id":"","url":"https://api.github.com/users/hlship","html_url":"https://github.com/hlship","followers_url":"https://api.github.com/users/hlship/followers","following_url":"https://api.github.com/users/hlship/following{/other_user}","gists_url":"https://api.github.com/users/hlship/gists{/gist_id}","starred_url":"https://api.github.com/users/hlship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlship/subscriptions","organizations_url":"https://api.github.com/users/hlship/orgs","repos_url":"https://api.github.com/users/hlship/repos","events_url":"https://api.github.com/users/hlship/events{/privacy}","received_events_url":"https://api.github.com/users/hlship/received_events","type":"User","site_admin":false},"body":"This fills the gaps in type support, allowing `(not-null (list (not-null Person)))` or `(list (list String))` or even more convoluted changes.\r\n\r\nThe role of the field resolver has simplified: previously, a field resolver would return a value and the library would wrap the field resolver to apply a number of validations.\r\n\r\nNow the wrapping is minor and a new concept, a selector function, is responsible for validations, simple transformations (applying a tag automatically for concrete types, for example), and dealing with lists (the `mapv` has moved into the selector code).\r\n\r\nTypes are now structured more like they are in the introspection schema; a field definition will have a :type key whose values is a type map. The type map contains a :kind that can be :list, :non-null, or :root, and a nested :type.  For :list and :non-null, the nested type is another type map.  For :root it is a schema element name.\r\n\r\nPreviously, the type map was flat and just had keys :multiple? and :non-nullable?.\r\n\r\nThere's been some ripple effect changes into supporting arguments and variables and defaults on arguments and variables.\r\n\r\nThe changes to the introspection tests reflect that the proper wrapper types are being reported; previous test expectations were incorrect.\r\n\r\nBenchmarking saw a small uptick on parse time, partially offset by a decrease in execution time.","created_at":"2017-04-05T18:57:03Z","updated_at":"2017-04-06T15:10:10Z","closed_at":"2017-04-06T14:48:01Z","merged_at":null,"merge_commit_sha":"16c7d5ba721d1c89d10ae1b92efc6ea16ba90565","assignee":{"login":"hlship","id":52660,"avatar_url":"https://avatars0.githubusercontent.com/u/52660?v=3","gravatar_id":"","url":"https://api.github.com/users/hlship","html_url":"https://github.com/hlship","followers_url":"https://api.github.com/users/hlship/followers","following_url":"https://api.github.com/users/hlship/following{/other_user}","gists_url":"https://api.github.com/users/hlship/gists{/gist_id}","starred_url":"https://api.github.com/users/hlship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlship/subscriptions","organizations_url":"https://api.github.com/users/hlship/orgs","repos_url":"https://api.github.com/users/hlship/repos","events_url":"https://api.github.com/users/hlship/events{/privacy}","received_events_url":"https://api.github.com/users/hlship/received_events","type":"User","site_admin":false},"assignees":[{"login":"hlship","id":52660,"avatar_url":"https://avatars0.githubusercontent.com/u/52660?v=3","gravatar_id":"","url":"https://api.github.com/users/hlship","html_url":"https://github.com/hlship","followers_url":"https://api.github.com/users/hlship/followers","following_url":"https://api.github.com/users/hlship/following{/other_user}","gists_url":"https://api.github.com/users/hlship/gists{/gist_id}","starred_url":"https://api.github.com/users/hlship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlship/subscriptions","organizations_url":"https://api.github.com/users/hlship/orgs","repos_url":"https://api.github.com/users/hlship/repos","events_url":"https://api.github.com/users/hlship/events{/privacy}","received_events_url":"https://api.github.com/users/hlship/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/walmartlabs/lacinia/milestones/2","html_url":"https://github.com/walmartlabs/lacinia/milestone/2","labels_url":"https://api.github.com/repos/walmartlabs/lacinia/milestones/2/labels","id":2438039,"number":2,"title":"0.1.15","description":"","creator":{"login":"hlship","id":52660,"avatar_url":"https://avatars0.githubusercontent.com/u/52660?v=3","gravatar_id":"","url":"https://api.github.com/users/hlship","html_url":"https://github.com/hlship","followers_url":"https://api.github.com/users/hlship/followers","following_url":"https://api.github.com/users/hlship/following{/other_user}","gists_url":"https://api.github.com/users/hlship/gists{/gist_id}","starred_url":"https://api.github.com/users/hlship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlship/subscriptions","organizations_url":"https://api.github.com/users/hlship/orgs","repos_url":"https://api.github.com/users/hlship/repos","events_url":"https://api.github.com/users/hlship/events{/privacy}","received_events_url":"https://api.github.com/users/hlship/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":2,"state":"open","created_at":"2017-04-05T22:22:13Z","updated_at":"2017-04-06T14:48:01Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31/commits","review_comments_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31/comments","review_comment_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/31/comments","statuses_url":"https://api.github.com/repos/walmartlabs/lacinia/statuses/ceeebac558ea910acccab850f9a24b1798881ab5","head":{"label":"walmartlabs:20170329-full-type-support","ref":"20170329-full-type-support","sha":"ceeebac558ea910acccab850f9a24b1798881ab5","user":{"login":"walmartlabs","id":768298,"avatar_url":"https://avatars2.githubusercontent.com/u/768298?v=3","gravatar_id":"","url":"https://api.github.com/users/walmartlabs","html_url":"https://github.com/walmartlabs","followers_url":"https://api.github.com/users/walmartlabs/followers","following_url":"https://api.github.com/users/walmartlabs/following{/other_user}","gists_url":"https://api.github.com/users/walmartlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/walmartlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/walmartlabs/subscriptions","organizations_url":"https://api.github.com/users/walmartlabs/orgs","repos_url":"https://api.github.com/users/walmartlabs/repos","events_url":"https://api.github.com/users/walmartlabs/events{/privacy}","received_events_url":"https://api.github.com/users/walmartlabs/received_events","type":"Organization","site_admin":false},"repo":{"id":85124920,"name":"lacinia","full_name":"walmartlabs/lacinia","owner":{"login":"walmartlabs","id":768298,"avatar_url":"https://avatars2.githubusercontent.com/u/768298?v=3","gravatar_id":"","url":"https://api.github.com/users/walmartlabs","html_url":"https://github.com/walmartlabs","followers_url":"https://api.github.com/users/walmartlabs/followers","following_url":"https://api.github.com/users/walmartlabs/following{/other_user}","gists_url":"https://api.github.com/users/walmartlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/walmartlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/walmartlabs/subscriptions","organizations_url":"https://api.github.com/users/walmartlabs/orgs","repos_url":"https://api.github.com/users/walmartlabs/repos","events_url":"https://api.github.com/users/walmartlabs/events{/privacy}","received_events_url":"https://api.github.com/users/walmartlabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/walmartlabs/lacinia","description":"GraphQL implementation in pure Clojure","fork":false,"url":"https://api.github.com/repos/walmartlabs/lacinia","forks_url":"https://api.github.com/repos/walmartlabs/lacinia/forks","keys_url":"https://api.github.com/repos/walmartlabs/lacinia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/walmartlabs/lacinia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/walmartlabs/lacinia/teams","hooks_url":"https://api.github.com/repos/walmartlabs/lacinia/hooks","issue_events_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/events{/number}","events_url":"https://api.github.com/repos/walmartlabs/lacinia/events","assignees_url":"https://api.github.com/repos/walmartlabs/lacinia/assignees{/user}","branches_url":"https://api.github.com/repos/walmartlabs/lacinia/branches{/branch}","tags_url":"https://api.github.com/repos/walmartlabs/lacinia/tags","blobs_url":"https://api.github.com/repos/walmartlabs/lacinia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/walmartlabs/lacinia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/walmartlabs/lacinia/git/refs{/sha}","trees_url":"https://api.github.com/repos/walmartlabs/lacinia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/walmartlabs/lacinia/statuses/{sha}","languages_url":"https://api.github.com/repos/walmartlabs/lacinia/languages","stargazers_url":"https://api.github.com/repos/walmartlabs/lacinia/stargazers","contributors_url":"https://api.github.com/repos/walmartlabs/lacinia/contributors","subscribers_url":"https://api.github.com/repos/walmartlabs/lacinia/subscribers","subscription_url":"https://api.github.com/repos/walmartlabs/lacinia/subscription","commits_url":"https://api.github.com/repos/walmartlabs/lacinia/commits{/sha}","git_commits_url":"https://api.github.com/repos/walmartlabs/lacinia/git/commits{/sha}","comments_url":"https://api.github.com/repos/walmartlabs/lacinia/comments{/number}","issue_comment_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/comments{/number}","contents_url":"https://api.github.com/repos/walmartlabs/lacinia/contents/{+path}","compare_url":"https://api.github.com/repos/walmartlabs/lacinia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/walmartlabs/lacinia/merges","archive_url":"https://api.github.com/repos/walmartlabs/lacinia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/walmartlabs/lacinia/downloads","issues_url":"https://api.github.com/repos/walmartlabs/lacinia/issues{/number}","pulls_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls{/number}","milestones_url":"https://api.github.com/repos/walmartlabs/lacinia/milestones{/number}","notifications_url":"https://api.github.com/repos/walmartlabs/lacinia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/walmartlabs/lacinia/labels{/name}","releases_url":"https://api.github.com/repos/walmartlabs/lacinia/releases{/id}","deployments_url":"https://api.github.com/repos/walmartlabs/lacinia/deployments","created_at":"2017-03-15T21:59:45Z","updated_at":"2017-04-06T13:15:49Z","pushed_at":"2017-04-06T14:44:46Z","git_url":"git://github.com/walmartlabs/lacinia.git","ssh_url":"git@github.com:walmartlabs/lacinia.git","clone_url":"https://github.com/walmartlabs/lacinia.git","svn_url":"https://github.com/walmartlabs/lacinia","homepage":"http://lacinia.readthedocs.io/en/latest/","size":194,"stargazers_count":365,"watchers_count":365,"language":"Clojure","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":15,"forks":9,"open_issues":15,"watchers":365,"default_branch":"master"}},"base":{"label":"walmartlabs:master","ref":"master","sha":"3ed6cf88e3634e3c6fac007dd384a0e527677b43","user":{"login":"walmartlabs","id":768298,"avatar_url":"https://avatars2.githubusercontent.com/u/768298?v=3","gravatar_id":"","url":"https://api.github.com/users/walmartlabs","html_url":"https://github.com/walmartlabs","followers_url":"https://api.github.com/users/walmartlabs/followers","following_url":"https://api.github.com/users/walmartlabs/following{/other_user}","gists_url":"https://api.github.com/users/walmartlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/walmartlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/walmartlabs/subscriptions","organizations_url":"https://api.github.com/users/walmartlabs/orgs","repos_url":"https://api.github.com/users/walmartlabs/repos","events_url":"https://api.github.com/users/walmartlabs/events{/privacy}","received_events_url":"https://api.github.com/users/walmartlabs/received_events","type":"Organization","site_admin":false},"repo":{"id":85124920,"name":"lacinia","full_name":"walmartlabs/lacinia","owner":{"login":"walmartlabs","id":768298,"avatar_url":"https://avatars2.githubusercontent.com/u/768298?v=3","gravatar_id":"","url":"https://api.github.com/users/walmartlabs","html_url":"https://github.com/walmartlabs","followers_url":"https://api.github.com/users/walmartlabs/followers","following_url":"https://api.github.com/users/walmartlabs/following{/other_user}","gists_url":"https://api.github.com/users/walmartlabs/gists{/gist_id}","starred_url":"https://api.github.com/users/walmartlabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/walmartlabs/subscriptions","organizations_url":"https://api.github.com/users/walmartlabs/orgs","repos_url":"https://api.github.com/users/walmartlabs/repos","events_url":"https://api.github.com/users/walmartlabs/events{/privacy}","received_events_url":"https://api.github.com/users/walmartlabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/walmartlabs/lacinia","description":"GraphQL implementation in pure Clojure","fork":false,"url":"https://api.github.com/repos/walmartlabs/lacinia","forks_url":"https://api.github.com/repos/walmartlabs/lacinia/forks","keys_url":"https://api.github.com/repos/walmartlabs/lacinia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/walmartlabs/lacinia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/walmartlabs/lacinia/teams","hooks_url":"https://api.github.com/repos/walmartlabs/lacinia/hooks","issue_events_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/events{/number}","events_url":"https://api.github.com/repos/walmartlabs/lacinia/events","assignees_url":"https://api.github.com/repos/walmartlabs/lacinia/assignees{/user}","branches_url":"https://api.github.com/repos/walmartlabs/lacinia/branches{/branch}","tags_url":"https://api.github.com/repos/walmartlabs/lacinia/tags","blobs_url":"https://api.github.com/repos/walmartlabs/lacinia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/walmartlabs/lacinia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/walmartlabs/lacinia/git/refs{/sha}","trees_url":"https://api.github.com/repos/walmartlabs/lacinia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/walmartlabs/lacinia/statuses/{sha}","languages_url":"https://api.github.com/repos/walmartlabs/lacinia/languages","stargazers_url":"https://api.github.com/repos/walmartlabs/lacinia/stargazers","contributors_url":"https://api.github.com/repos/walmartlabs/lacinia/contributors","subscribers_url":"https://api.github.com/repos/walmartlabs/lacinia/subscribers","subscription_url":"https://api.github.com/repos/walmartlabs/lacinia/subscription","commits_url":"https://api.github.com/repos/walmartlabs/lacinia/commits{/sha}","git_commits_url":"https://api.github.com/repos/walmartlabs/lacinia/git/commits{/sha}","comments_url":"https://api.github.com/repos/walmartlabs/lacinia/comments{/number}","issue_comment_url":"https://api.github.com/repos/walmartlabs/lacinia/issues/comments{/number}","contents_url":"https://api.github.com/repos/walmartlabs/lacinia/contents/{+path}","compare_url":"https://api.github.com/repos/walmartlabs/lacinia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/walmartlabs/lacinia/merges","archive_url":"https://api.github.com/repos/walmartlabs/lacinia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/walmartlabs/lacinia/downloads","issues_url":"https://api.github.com/repos/walmartlabs/lacinia/issues{/number}","pulls_url":"https://api.github.com/repos/walmartlabs/lacinia/pulls{/number}","milestones_url":"https://api.github.com/repos/walmartlabs/lacinia/milestones{/number}","notifications_url":"https://api.github.com/repos/walmartlabs/lacinia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/walmartlabs/lacinia/labels{/name}","releases_url":"https://api.github.com/repos/walmartlabs/lacinia/releases{/id}","deployments_url":"https://api.github.com/repos/walmartlabs/lacinia/deployments","created_at":"2017-03-15T21:59:45Z","updated_at":"2017-04-06T13:15:49Z","pushed_at":"2017-04-06T14:44:46Z","git_url":"git://github.com/walmartlabs/lacinia.git","ssh_url":"git@github.com:walmartlabs/lacinia.git","clone_url":"https://github.com/walmartlabs/lacinia.git","svn_url":"https://github.com/walmartlabs/lacinia","homepage":"http://lacinia.readthedocs.io/en/latest/","size":194,"stargazers_count":365,"watchers_count":365,"language":"Clojure","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":15,"forks":9,"open_issues":15,"watchers":365,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31"},"html":{"href":"https://github.com/walmartlabs/lacinia/pull/31"},"issue":{"href":"https://api.github.com/repos/walmartlabs/lacinia/issues/31"},"comments":{"href":"https://api.github.com/repos/walmartlabs/lacinia/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/walmartlabs/lacinia/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/walmartlabs/lacinia/statuses/ceeebac558ea910acccab850f9a24b1798881ab5"}}}}
{"actor":{"display_login":"hlship"}}