{"action":"created","comment":{"url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/comments/89754467","pull_request_review_id":10289843,"id":89754467,"diff_hunk":"@@ -1,202 +1,33 @@\n 'use strict'\n \n-const Swarm = require('libp2p-swarm')\n const TCP = require('libp2p-tcp')\n // const UTP = require('libp2p-utp')\n const WS = require('libp2p-websockets')\n const spdy = require('libp2p-spdy')\n const secio = require('libp2p-secio')\n-const PeerId = require('peer-id')\n-const PeerInfo = require('peer-info')\n-const PeerBook = require('peer-book')\n-const multiaddr = require('multiaddr')\n-const mafmt = require('mafmt')\n-const EE = require('events').EventEmitter\n-\n-exports = module.exports\n-\n-const OFFLINE_ERROR_MESSAGE = 'The libp2p node is not started yet'\n-const IPFS_CODE = 421\n-\n-exports.Node = function Node (pInfo, pBook) {\n-  if (!(this instanceof Node)) {\n-    return new Node(pInfo, pBook)\n-  }\n-\n-  if (!pInfo) {\n-    throw new Error('missing peer info')\n-  }\n-\n-  if (!pBook) {\n-    pBook = new PeerBook()\n-  }\n-\n-  this.peerInfo = pInfo\n-  this.peerBook = pBook\n-\n-  // Swarm\n-  this.swarm = new Swarm(pInfo)\n-  this.swarm.connection.addStreamMuxer(spdy)\n-  this.swarm.connection.reuse()\n-\n-  this.swarm.connection.crypto(secio.tag, secio.encrypt)\n-\n-  this.swarm.on('peer-mux-established', (peerInfo) => {\n-    this.peerBook.put(peerInfo)\n-  })\n-\n-  this.swarm.on('peer-mux-closed', (peerInfo) => {\n-    this.peerBook.removeByB58String(peerInfo.id.toB58String())\n-  })\n-\n-  let isOnline = false\n-\n-  this.start = (callback) => {\n-    const ws = new WS()\n-    const tcp = new TCP()\n-\n-    // Do not activate the dialer if no listener is going to be present\n-    if (ws.filter(this.peerInfo.multiaddrs).length > 0) {\n-      this.swarm.transport.add('ws', new WS())\n-    }\n-    if (tcp.filter(this.peerInfo.multiaddrs).length > 0) {\n-      this.swarm.transport.add('tcp', new TCP())\n-    }\n-\n-    this.swarm.listen((err) => {\n-      if (err) {\n-        return callback(err)\n-      }\n-\n-      isOnline = true\n-      callback()\n-    })\n-  }\n-\n-  this.stop = (callback) => {\n-    isOnline = false\n-    this.swarm.close(callback)\n-  }\n-\n-  this.dialById = (id, protocol, callback) => {\n-    if (typeof protocol === 'function') {\n-      callback = protocol\n-      protocol = undefined\n-    }\n-\n-    if (!isOnline) {\n-      return callback(new Error(OFFLINE_ERROR_MESSAGE))\n-    }\n-    // NOTE, these dialById only works if a previous dial\n-    // was made until we have PeerRouting\n-    // TODO support PeerRouting when it is Ready\n-    callback(new Error('not implemented yet'))\n-  }\n-\n-  this.dialByMultiaddr = (maddr, protocol, callback) => {\n-    if (typeof protocol === 'function') {\n-      callback = protocol\n-      protocol = undefined\n-    }\n-\n-    if (!isOnline) {\n-      return callback(new Error(OFFLINE_ERROR_MESSAGE))\n-    }\n-\n-    if (typeof maddr === 'string') {\n-      maddr = multiaddr(maddr)\n-    }\n-\n-    if (!mafmt.IPFS.matches(maddr.toString())) {\n-      return callback(new Error('multiaddr not valid'))\n-    }\n-\n-    const ipfsIdB58String = maddr.stringTuples().filter((tuple) => {\n-      if (tuple[0] === IPFS_CODE) {\n-        return true\n-      }\n-    })[0][1]\n-\n-    let peer\n-    try {\n-      peer = this.peerBook.getByB58String(ipfsIdB58String)\n-    } catch (err) {\n-      peer = new PeerInfo(PeerId.createFromB58String(ipfsIdB58String))\n-    }\n-\n-    peer.multiaddr.add(maddr)\n-    this.dialByPeerInfo(peer, protocol, callback)\n-  }\n-\n-  this.dialByPeerInfo = (peer, protocol, callback) => {\n-    if (typeof protocol === 'function') {\n-      callback = protocol\n-      protocol = undefined\n-    }\n-    if (!isOnline) {\n-      return callback(new Error(OFFLINE_ERROR_MESSAGE))\n-    }\n-\n-    this.swarm.dial(peer, protocol, (err, conn) => {\n-      if (err) {\n-        return callback(err)\n-      }\n-      this.peerBook.put(peer)\n-      callback(null, conn)\n-    })\n-  }\n-\n-  this.hangUpById = (id, callback) => {\n-    callback(new Error('not implemented yet'))\n-    // TODO\n-  }\n-\n-  this.hangUpByMultiaddr = (maddr, callback) => {\n-    if (!isOnline) {\n-      return callback(new Error(OFFLINE_ERROR_MESSAGE))\n-    }\n-\n-    if (typeof maddr === 'string') {\n-      maddr = multiaddr(maddr)\n-    }\n-\n-    if (!mafmt.IPFS.matches(maddr.toString())) {\n-      return callback(new Error('multiaddr not valid'))\n-    }\n-\n-    const ipfsIdB58String = maddr.stringTuples().filter((tuple) => {\n-      if (tuple[0] === IPFS_CODE) {\n-        return true\n-      }\n-    })[0][1]\n-\n-    try {\n-      const pi = this.peerBook.getByB58String(ipfsIdB58String)\n-      this.hangUpByPeerInfo(pi, callback)\n-    } catch (err) {\n-      // already disconnected\n-      callback()\n-    }\n-  }\n-\n-  this.hangUpByPeerInfo = (peer, callback) => {\n-    if (!isOnline) {\n-      return callback(new Error(OFFLINE_ERROR_MESSAGE))\n-    }\n-\n-    this.peerBook.removeByB58String(peer.id.toB58String())\n-    this.swarm.hangUp(peer, callback)\n-  }\n-\n-  this.handle = (protocol, handlerFunc, matchFunc) => {\n-    return this.swarm.handle(protocol, handlerFunc, matchFunc)\n-  }\n-\n-  this.unhandle = (protocol) => {\n-    return this.swarm.unhandle(protocol)\n+const libp2p = require('libp2p')\n+\n+class Node extends libp2p.Node {\n+  constructor (peerInfo, peerBook) {\n+    const modules = {\n+      transport: [\n+        new TCP(),\n+        new WS()\n+      ],\n+      connection: {\n+        muxer: [\n+          spdy\n+        ],\n+        crypto: [\n+          secio\n+        ]\n+      },\n+      discovery: []\n+    }\n+    super(modules, peerInfo, peerBook)\n   }\n+}\n \n-  this.discovery = new EE()\n-  this.routing = null\n-  this.records = null\n+module.exports = {\n+  Node: Node","path":"src/index.js","position":224,"original_position":224,"commit_id":"d0dd7603747424e715128e89eb638ffa03cf56d9","original_commit_id":"d0dd7603747424e715128e89eb638ffa03cf56d9","user":{"login":"dignifiedquire","id":790842,"avatar_url":"https://avatars.githubusercontent.com/u/790842?v=3","gravatar_id":"","url":"https://api.github.com/users/dignifiedquire","html_url":"https://github.com/dignifiedquire","followers_url":"https://api.github.com/users/dignifiedquire/followers","following_url":"https://api.github.com/users/dignifiedquire/following{/other_user}","gists_url":"https://api.github.com/users/dignifiedquire/gists{/gist_id}","starred_url":"https://api.github.com/users/dignifiedquire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dignifiedquire/subscriptions","organizations_url":"https://api.github.com/users/dignifiedquire/orgs","repos_url":"https://api.github.com/users/dignifiedquire/repos","events_url":"https://api.github.com/users/dignifiedquire/events{/privacy}","received_events_url":"https://api.github.com/users/dignifiedquire/received_events","type":"User","site_admin":false},"body":"not really, I would just like to write \r\n\r\n```js\r\nconst Node = require('libp2p-ipfs')\r\n\r\nconst myNode = new Node()\r\n```","created_at":"2016-11-28T10:34:28Z","updated_at":"2016-11-28T10:34:28Z","html_url":"https://github.com/ipfs/js-libp2p-ipfs/pull/41#discussion_r89754467","pull_request_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41","_links":{"self":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/comments/89754467"},"html":{"href":"https://github.com/ipfs/js-libp2p-ipfs/pull/41#discussion_r89754467"},"pull_request":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41"}}},"pull_request":{"url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41","id":95358504,"html_url":"https://github.com/ipfs/js-libp2p-ipfs/pull/41","diff_url":"https://github.com/ipfs/js-libp2p-ipfs/pull/41.diff","patch_url":"https://github.com/ipfs/js-libp2p-ipfs/pull/41.patch","issue_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/41","number":41,"state":"open","locked":false,"title":"WIP: Use the base class","user":{"login":"diasdavid","id":1211152,"avatar_url":"https://avatars.githubusercontent.com/u/1211152?v=3","gravatar_id":"","url":"https://api.github.com/users/diasdavid","html_url":"https://github.com/diasdavid","followers_url":"https://api.github.com/users/diasdavid/followers","following_url":"https://api.github.com/users/diasdavid/following{/other_user}","gists_url":"https://api.github.com/users/diasdavid/gists{/gist_id}","starred_url":"https://api.github.com/users/diasdavid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diasdavid/subscriptions","organizations_url":"https://api.github.com/users/diasdavid/orgs","repos_url":"https://api.github.com/users/diasdavid/repos","events_url":"https://api.github.com/users/diasdavid/events{/privacy}","received_events_url":"https://api.github.com/users/diasdavid/received_events","type":"User","site_admin":false},"body":"> This makes libp2p bundles so simple!\r\n\r\nref: https://github.com/libp2p/js-libp2p/pull/43","created_at":"2016-11-26T02:29:54Z","updated_at":"2016-11-28T10:34:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0441f1244c6fe571468f945f31c631dbbf1efa97","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41/commits","review_comments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41/comments","review_comment_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/41/comments","statuses_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/statuses/d0dd7603747424e715128e89eb638ffa03cf56d9","head":{"label":"ipfs:feat/use-base-libp2p","ref":"feat/use-base-libp2p","sha":"d0dd7603747424e715128e89eb638ffa03cf56d9","user":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"repo":{"id":52080539,"name":"js-libp2p-ipfs","full_name":"ipfs/js-libp2p-ipfs","owner":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ipfs/js-libp2p-ipfs","description":"libp2p build (module) used in js-ipfs","fork":false,"url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs","forks_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/forks","keys_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/teams","hooks_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/hooks","issue_events_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/events{/number}","events_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/events","assignees_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/assignees{/user}","branches_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/branches{/branch}","tags_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/tags","blobs_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/statuses/{sha}","languages_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/languages","stargazers_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/stargazers","contributors_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/contributors","subscribers_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/subscribers","subscription_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/subscription","commits_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/contents/{+path}","compare_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/merges","archive_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/downloads","issues_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues{/number}","pulls_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls{/number}","milestones_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/milestones{/number}","notifications_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/labels{/name}","releases_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/releases{/id}","deployments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/deployments","created_at":"2016-02-19T10:28:32Z","updated_at":"2016-11-16T08:09:20Z","pushed_at":"2016-11-27T19:14:19Z","git_url":"git://github.com/ipfs/js-libp2p-ipfs.git","ssh_url":"git@github.com:ipfs/js-libp2p-ipfs.git","clone_url":"https://github.com/ipfs/js-libp2p-ipfs.git","svn_url":"https://github.com/ipfs/js-libp2p-ipfs","homepage":null,"size":288,"stargazers_count":7,"watchers_count":7,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":3,"forks":5,"open_issues":3,"watchers":7,"default_branch":"master"}},"base":{"label":"ipfs:master","ref":"master","sha":"9f83f2aee5da5f8f4ae0657b8a41e5e4ce20fb4b","user":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"repo":{"id":52080539,"name":"js-libp2p-ipfs","full_name":"ipfs/js-libp2p-ipfs","owner":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ipfs/js-libp2p-ipfs","description":"libp2p build (module) used in js-ipfs","fork":false,"url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs","forks_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/forks","keys_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/teams","hooks_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/hooks","issue_events_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/events{/number}","events_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/events","assignees_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/assignees{/user}","branches_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/branches{/branch}","tags_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/tags","blobs_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/statuses/{sha}","languages_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/languages","stargazers_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/stargazers","contributors_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/contributors","subscribers_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/subscribers","subscription_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/subscription","commits_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/contents/{+path}","compare_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/merges","archive_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/downloads","issues_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues{/number}","pulls_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls{/number}","milestones_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/milestones{/number}","notifications_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/labels{/name}","releases_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/releases{/id}","deployments_url":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/deployments","created_at":"2016-02-19T10:28:32Z","updated_at":"2016-11-16T08:09:20Z","pushed_at":"2016-11-27T19:14:19Z","git_url":"git://github.com/ipfs/js-libp2p-ipfs.git","ssh_url":"git@github.com:ipfs/js-libp2p-ipfs.git","clone_url":"https://github.com/ipfs/js-libp2p-ipfs.git","svn_url":"https://github.com/ipfs/js-libp2p-ipfs","homepage":null,"size":288,"stargazers_count":7,"watchers_count":7,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":3,"forks":5,"open_issues":3,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41"},"html":{"href":"https://github.com/ipfs/js-libp2p-ipfs/pull/41"},"issue":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/41"},"comments":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/issues/41/comments"},"review_comments":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41/comments"},"review_comment":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/pulls/41/commits"},"statuses":{"href":"https://api.github.com/repos/ipfs/js-libp2p-ipfs/statuses/d0dd7603747424e715128e89eb638ffa03cf56d9"}}}}
{"actor":{"display_login":"dignifiedquire"}}