{"action":"created","comment":{"url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/comments/78003055","id":78003055,"diff_hunk":"@@ -0,0 +1,227 @@\n+// Copyright (c) Jupyter Development Team.\n+// Distributed under the terms of the Modified BSD License.\n+\n+var semver = require('semver');\n+\n+/**\n+ * The registered module cache.\n+ */\n+var registered = {};\n+\n+/**\n+ * The installed module cache.\n+ */\n+var installedModules = {};\n+\n+/**\n+ * The module name lookup cache.\n+ */\n+var lookupCache = {};\n+\n+/**\n+ * A cache of objects for parsed version-mangled module names.\n+ */\n+var nameCache = {};\n+\n+/**\n+ * Object to store loaded and loading bundles.\n+ * \"0\" means \"already loaded\".\n+ * Array means \"loading\", array contains callbacks.\n+ */\n+var installedBundles = {};\n+\n+\n+/**\n+ * Define a module that can be synchronously required.\n+ *\n+ * @param name - The version-mangled fully qualified name of the module.\n+ *   For example, \"foo@1.0.1/lib/bar/baz.js\".\n+ *\n+ * @param callback - The callback function for invoking the module.\n+ */\n+function defineModule(name, callback) {\n+  if (!(name in registered)) {\n+    registered[name] = callback;\n+  }\n+}\n+\n+\n+/**\n+ * Synchronously require a module that has already been loaded.\n+ *\n+ * @param name - The semver-mangled fully qualified name of the module.\n+ *   For example, \"foo@^1.1.0/lib/bar/baz.js\".\n+ *\n+ * @returns The exports of the requested module, if registered.  The module\n+ *   selected is the registered module that maximally satisfies the semver\n+ *   range of the request.\n+ */\n+function requireModule(name) {\n+  // Check if module is in cache.\n+  var moduleId = findModuleId(name);\n+  if(installedModules[moduleId]) {\n+    return installedModules[moduleId].exports;\n+  }\n+\n+  // Create a new module (and put it into the cache).\n+  var module = installedModules[moduleId] = {\n+    exports: {},\n+    id: moduleId,\n+    loaded: false\n+  };\n+\n+  // Execute the module function.\n+  registered[moduleId].call(module.exports, module, module.exports, requireModule);\n+\n+  // Flag the module as loaded.\n+  module.loaded = true;\n+\n+  // Return the exports of the module.\n+  return module.exports;\n+}\n+\n+\n+/**\n+ * Ensure a bundle is loaded on a page.\n+ *\n+ * @param path - The public path of the bundle (e.g. \"lab/jupyter.bundle.js\").\n+ *\n+ * @param callback - The callback invoked when the bundle has loaded.\n+ */\n+function ensureBundle(path, callback) {\n+  // \"0\" is the signal for \"already loaded\"\n+  if (installedBundles[path] === 0) {\n+    return callback.call(null, requireModule);\n+  }\n+\n+  // An array means \"currently loading\".\n+  if (Array.isArray(installedBundles[path])) {\n+    installedBundles[path].push(callback);\n+    return;\n+  }\n+\n+  // Start bundle loading.\n+  installedBundles[path] = [callback];\n+  var head = document.getElementsByTagName('head')[0];\n+  var script = document.createElement('script');\n+  script.type = 'text/javascript';\n+  script.charset = 'utf-8';\n+  script.async = true;\n+  script.onload = function() {\n+    var callbacks = installedBundles[path];\n+    while(callbacks.length)\n+      callbacks.shift().call(null, requireModule);\n+    installedBundles[path] = 0;\n+  }\n+  head.appendChild(script);\n+  script.src = path;\n+}\n+\n+\n+/**\n+ * Ensure a list of bundles are loaded on the page.\n+ *\n+ * @param paths - The public paths of the bundles. (e.g. \"lab/foo.bundle.js\").\n+ *\n+ * @returns A promise that resolves with the require function when all the\n+ *   bundles have loaded.\n+ */\n+function requireBundles(paths) {\n+  var promises = paths.map(function(path) {\n+    return new Promise(function (resolve, reject) {\n+      ensureBundle(path, resolve);\n+    });\n+  });\n+  return Promise.all(promises).then(function () {\n+    return requireModule;\n+  });\n+}","path":"jupyterlab/loader.js","position":138,"original_position":138,"commit_id":"9062bd5f91071513954b6251b0d979d1a4d18f5b","original_commit_id":"9062bd5f91071513954b6251b0d979d1a4d18f5b","user":{"login":"jasongrout","id":192614,"avatar_url":"https://avatars.githubusercontent.com/u/192614?v=3","gravatar_id":"","url":"https://api.github.com/users/jasongrout","html_url":"https://github.com/jasongrout","followers_url":"https://api.github.com/users/jasongrout/followers","following_url":"https://api.github.com/users/jasongrout/following{/other_user}","gists_url":"https://api.github.com/users/jasongrout/gists{/gist_id}","starred_url":"https://api.github.com/users/jasongrout/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasongrout/subscriptions","organizations_url":"https://api.github.com/users/jasongrout/orgs","repos_url":"https://api.github.com/users/jasongrout/repos","events_url":"https://api.github.com/users/jasongrout/events{/privacy}","received_events_url":"https://api.github.com/users/jasongrout/received_events","type":"User","site_admin":false},"body":"Since the ensureBundle function doesn't handle errors, we can't ever have this promise be chained with a `.catch` - instead it just hangs. I think it would be better to figure out a way to get an error.","created_at":"2016-09-08T13:18:23Z","updated_at":"2016-09-08T13:18:23Z","html_url":"https://github.com/jupyter/jupyterlab/pull/814#discussion_r78003055","pull_request_url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814","_links":{"self":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/comments/78003055"},"html":{"href":"https://github.com/jupyter/jupyterlab/pull/814#discussion_r78003055"},"pull_request":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814"}}},"pull_request":{"url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814","id":83327908,"html_url":"https://github.com/jupyter/jupyterlab/pull/814","diff_url":"https://github.com/jupyter/jupyterlab/pull/814.diff","patch_url":"https://github.com/jupyter/jupyterlab/pull/814.patch","issue_url":"https://api.github.com/repos/jupyter/jupyterlab/issues/814","number":814,"state":"open","locked":false,"title":"Custom WebPack plugin enabling Third Party Extensions","user":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"body":"cf #728 \r\n\r\nI used this [example](https://github.com/webpack/docs/wiki/how-to-write-a-plugin#exploring-assets-chunks-modules-and-dependencies) from WebPack as a starting point.\r\n\r\nExample output:\r\n\r\n```javascript\r\n/** START DEFINE BLOCK for jupyterlab-extension@0.1.0/index.js **/\r\njupyter.define(\"jupyterlab-extension@0.1.0/index.js\", function (module, exports, __jupyter_require__) {\r\n    // Copyright (c) Jupyter Development Team.\r\n\t// Distributed under the terms of the Modified BSD License.\r\n\t\r\n\tvar JupyterLab = __jupyter_require__(\"jupyterlab@~0.2.0/lib/application/index.js\").JupyterLab;\r\n    ...\r\n    lab.start();\r\n\t\r\n})\r\n/** END DEFINE BLOCK for jupyterlab-extension@0.1.0/index.js **/\r\n","created_at":"2016-08-30T19:02:46Z","updated_at":"2016-09-08T13:18:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bb21218f1c684dc4ccb85a5d8544f3548f7b9b79","assignee":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"assignees":[{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/jupyter/jupyterlab/milestones/1","html_url":"https://github.com/jupyter/jupyterlab/milestones/0.90","labels_url":"https://api.github.com/repos/jupyter/jupyterlab/milestones/1/labels","id":1866462,"number":1,"title":"0.90","description":"A version of JupyterLab that is reasonably feature-complete and stable enough to be usable for day-to-day work. Targeted to early adopters and advanced users who are willing to put up with some rough edges and a few missing features and small regressions.\r\n\r\nThis is a marker for us to hit first; we'll then push out a series of 0.91, 0.92, ..., 0.9X releases until we've satisfied the [Milestone 1.0](https://github.com/jupyter/jupyterlab/milestones/2) criteria.","creator":{"login":"fperez","id":57394,"avatar_url":"https://avatars.githubusercontent.com/u/57394?v=3","gravatar_id":"","url":"https://api.github.com/users/fperez","html_url":"https://github.com/fperez","followers_url":"https://api.github.com/users/fperez/followers","following_url":"https://api.github.com/users/fperez/following{/other_user}","gists_url":"https://api.github.com/users/fperez/gists{/gist_id}","starred_url":"https://api.github.com/users/fperez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fperez/subscriptions","organizations_url":"https://api.github.com/users/fperez/orgs","repos_url":"https://api.github.com/users/fperez/repos","events_url":"https://api.github.com/users/fperez/events{/privacy}","received_events_url":"https://api.github.com/users/fperez/received_events","type":"User","site_admin":false},"open_issues":45,"closed_issues":141,"state":"open","created_at":"2016-07-06T00:50:01Z","updated_at":"2016-09-08T12:29:12Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814/commits","review_comments_url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814/comments","review_comment_url":"https://api.github.com/repos/jupyter/jupyterlab/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jupyter/jupyterlab/issues/814/comments","statuses_url":"https://api.github.com/repos/jupyter/jupyterlab/statuses/9062bd5f91071513954b6251b0d979d1a4d18f5b","head":{"label":"blink1073:custom-webpack-plugin","ref":"custom-webpack-plugin","sha":"9062bd5f91071513954b6251b0d979d1a4d18f5b","user":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"repo":{"id":60405847,"name":"jupyterlab","full_name":"blink1073/jupyterlab","owner":{"login":"blink1073","id":2096628,"avatar_url":"https://avatars.githubusercontent.com/u/2096628?v=3","gravatar_id":"","url":"https://api.github.com/users/blink1073","html_url":"https://github.com/blink1073","followers_url":"https://api.github.com/users/blink1073/followers","following_url":"https://api.github.com/users/blink1073/following{/other_user}","gists_url":"https://api.github.com/users/blink1073/gists{/gist_id}","starred_url":"https://api.github.com/users/blink1073/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blink1073/subscriptions","organizations_url":"https://api.github.com/users/blink1073/orgs","repos_url":"https://api.github.com/users/blink1073/repos","events_url":"https://api.github.com/users/blink1073/events{/privacy}","received_events_url":"https://api.github.com/users/blink1073/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/blink1073/jupyterlab","description":"JupyterLab computational environment","fork":true,"url":"https://api.github.com/repos/blink1073/jupyterlab","forks_url":"https://api.github.com/repos/blink1073/jupyterlab/forks","keys_url":"https://api.github.com/repos/blink1073/jupyterlab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/blink1073/jupyterlab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/blink1073/jupyterlab/teams","hooks_url":"https://api.github.com/repos/blink1073/jupyterlab/hooks","issue_events_url":"https://api.github.com/repos/blink1073/jupyterlab/issues/events{/number}","events_url":"https://api.github.com/repos/blink1073/jupyterlab/events","assignees_url":"https://api.github.com/repos/blink1073/jupyterlab/assignees{/user}","branches_url":"https://api.github.com/repos/blink1073/jupyterlab/branches{/branch}","tags_url":"https://api.github.com/repos/blink1073/jupyterlab/tags","blobs_url":"https://api.github.com/repos/blink1073/jupyterlab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/blink1073/jupyterlab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/blink1073/jupyterlab/git/refs{/sha}","trees_url":"https://api.github.com/repos/blink1073/jupyterlab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/blink1073/jupyterlab/statuses/{sha}","languages_url":"https://api.github.com/repos/blink1073/jupyterlab/languages","stargazers_url":"https://api.github.com/repos/blink1073/jupyterlab/stargazers","contributors_url":"https://api.github.com/repos/blink1073/jupyterlab/contributors","subscribers_url":"https://api.github.com/repos/blink1073/jupyterlab/subscribers","subscription_url":"https://api.github.com/repos/blink1073/jupyterlab/subscription","commits_url":"https://api.github.com/repos/blink1073/jupyterlab/commits{/sha}","git_commits_url":"https://api.github.com/repos/blink1073/jupyterlab/git/commits{/sha}","comments_url":"https://api.github.com/repos/blink1073/jupyterlab/comments{/number}","issue_comment_url":"https://api.github.com/repos/blink1073/jupyterlab/issues/comments{/number}","contents_url":"https://api.github.com/repos/blink1073/jupyterlab/contents/{+path}","compare_url":"https://api.github.com/repos/blink1073/jupyterlab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/blink1073/jupyterlab/merges","archive_url":"https://api.github.com/repos/blink1073/jupyterlab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/blink1073/jupyterlab/downloads","issues_url":"https://api.github.com/repos/blink1073/jupyterlab/issues{/number}","pulls_url":"https://api.github.com/repos/blink1073/jupyterlab/pulls{/number}","milestones_url":"https://api.github.com/repos/blink1073/jupyterlab/milestones{/number}","notifications_url":"https://api.github.com/repos/blink1073/jupyterlab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/blink1073/jupyterlab/labels{/name}","releases_url":"https://api.github.com/repos/blink1073/jupyterlab/releases{/id}","deployments_url":"https://api.github.com/repos/blink1073/jupyterlab/deployments","created_at":"2016-06-04T10:50:30Z","updated_at":"2016-06-04T10:50:33Z","pushed_at":"2016-09-08T12:05:31Z","git_url":"git://github.com/blink1073/jupyterlab.git","ssh_url":"git@github.com:blink1073/jupyterlab.git","clone_url":"https://github.com/blink1073/jupyterlab.git","svn_url":"https://github.com/blink1073/jupyterlab","homepage":null,"size":40572,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"jupyter:master","ref":"master","sha":"a7840a8221feb407cc1669c4c1248fec6fdb78fe","user":{"login":"jupyter","id":7388996,"avatar_url":"https://avatars.githubusercontent.com/u/7388996?v=3","gravatar_id":"","url":"https://api.github.com/users/jupyter","html_url":"https://github.com/jupyter","followers_url":"https://api.github.com/users/jupyter/followers","following_url":"https://api.github.com/users/jupyter/following{/other_user}","gists_url":"https://api.github.com/users/jupyter/gists{/gist_id}","starred_url":"https://api.github.com/users/jupyter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jupyter/subscriptions","organizations_url":"https://api.github.com/users/jupyter/orgs","repos_url":"https://api.github.com/users/jupyter/repos","events_url":"https://api.github.com/users/jupyter/events{/privacy}","received_events_url":"https://api.github.com/users/jupyter/received_events","type":"Organization","site_admin":false},"repo":{"id":60374819,"name":"jupyterlab","full_name":"jupyter/jupyterlab","owner":{"login":"jupyter","id":7388996,"avatar_url":"https://avatars.githubusercontent.com/u/7388996?v=3","gravatar_id":"","url":"https://api.github.com/users/jupyter","html_url":"https://github.com/jupyter","followers_url":"https://api.github.com/users/jupyter/followers","following_url":"https://api.github.com/users/jupyter/following{/other_user}","gists_url":"https://api.github.com/users/jupyter/gists{/gist_id}","starred_url":"https://api.github.com/users/jupyter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jupyter/subscriptions","organizations_url":"https://api.github.com/users/jupyter/orgs","repos_url":"https://api.github.com/users/jupyter/repos","events_url":"https://api.github.com/users/jupyter/events{/privacy}","received_events_url":"https://api.github.com/users/jupyter/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jupyter/jupyterlab","description":"JupyterLab computational environment. This is a very early preview, and is not suitable for general usage yet.","fork":false,"url":"https://api.github.com/repos/jupyter/jupyterlab","forks_url":"https://api.github.com/repos/jupyter/jupyterlab/forks","keys_url":"https://api.github.com/repos/jupyter/jupyterlab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jupyter/jupyterlab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jupyter/jupyterlab/teams","hooks_url":"https://api.github.com/repos/jupyter/jupyterlab/hooks","issue_events_url":"https://api.github.com/repos/jupyter/jupyterlab/issues/events{/number}","events_url":"https://api.github.com/repos/jupyter/jupyterlab/events","assignees_url":"https://api.github.com/repos/jupyter/jupyterlab/assignees{/user}","branches_url":"https://api.github.com/repos/jupyter/jupyterlab/branches{/branch}","tags_url":"https://api.github.com/repos/jupyter/jupyterlab/tags","blobs_url":"https://api.github.com/repos/jupyter/jupyterlab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jupyter/jupyterlab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jupyter/jupyterlab/git/refs{/sha}","trees_url":"https://api.github.com/repos/jupyter/jupyterlab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jupyter/jupyterlab/statuses/{sha}","languages_url":"https://api.github.com/repos/jupyter/jupyterlab/languages","stargazers_url":"https://api.github.com/repos/jupyter/jupyterlab/stargazers","contributors_url":"https://api.github.com/repos/jupyter/jupyterlab/contributors","subscribers_url":"https://api.github.com/repos/jupyter/jupyterlab/subscribers","subscription_url":"https://api.github.com/repos/jupyter/jupyterlab/subscription","commits_url":"https://api.github.com/repos/jupyter/jupyterlab/commits{/sha}","git_commits_url":"https://api.github.com/repos/jupyter/jupyterlab/git/commits{/sha}","comments_url":"https://api.github.com/repos/jupyter/jupyterlab/comments{/number}","issue_comment_url":"https://api.github.com/repos/jupyter/jupyterlab/issues/comments{/number}","contents_url":"https://api.github.com/repos/jupyter/jupyterlab/contents/{+path}","compare_url":"https://api.github.com/repos/jupyter/jupyterlab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jupyter/jupyterlab/merges","archive_url":"https://api.github.com/repos/jupyter/jupyterlab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jupyter/jupyterlab/downloads","issues_url":"https://api.github.com/repos/jupyter/jupyterlab/issues{/number}","pulls_url":"https://api.github.com/repos/jupyter/jupyterlab/pulls{/number}","milestones_url":"https://api.github.com/repos/jupyter/jupyterlab/milestones{/number}","notifications_url":"https://api.github.com/repos/jupyter/jupyterlab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jupyter/jupyterlab/labels{/name}","releases_url":"https://api.github.com/repos/jupyter/jupyterlab/releases{/id}","deployments_url":"https://api.github.com/repos/jupyter/jupyterlab/deployments","created_at":"2016-06-03T20:09:17Z","updated_at":"2016-09-08T09:26:26Z","pushed_at":"2016-09-08T13:07:18Z","git_url":"git://github.com/jupyter/jupyterlab.git","ssh_url":"git@github.com:jupyter/jupyterlab.git","clone_url":"https://github.com/jupyter/jupyterlab.git","svn_url":"https://github.com/jupyter/jupyterlab","homepage":"","size":36026,"stargazers_count":1083,"watchers_count":1083,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":151,"mirror_url":null,"open_issues_count":170,"forks":151,"open_issues":170,"watchers":1083,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814"},"html":{"href":"https://github.com/jupyter/jupyterlab/pull/814"},"issue":{"href":"https://api.github.com/repos/jupyter/jupyterlab/issues/814"},"comments":{"href":"https://api.github.com/repos/jupyter/jupyterlab/issues/814/comments"},"review_comments":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814/comments"},"review_comment":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jupyter/jupyterlab/pulls/814/commits"},"statuses":{"href":"https://api.github.com/repos/jupyter/jupyterlab/statuses/9062bd5f91071513954b6251b0d979d1a4d18f5b"}}}}
{"actor":{"display_login":"jasongrout"}}