{"action":"created","comment":{"url":"https://api.github.com/repos/cozy/cozy-drive/pulls/comments/197418018","pull_request_review_id":131156145,"id":197418018,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NzQxODAxOA==","diff_hunk":"@@ -148,101 +169,112 @@ class Stack {\n }\n \n class PouchDB {\n-  constructor({ folders, recent, sort }) {\n-    this.folderIndex = folders\n-    this.recentIndex = recent\n-    this.sortIndexes = sort\n+  constructor({ byName, byUpdatedAt, bySize, recentFiles }) {\n+    this.indexes = {\n+      name: byName,\n+      updated_at: byUpdatedAt,\n+      size: bySize,\n+      recentFiles: recentFiles\n+    }\n   }\n \n-  getFolder = async folderId => {\n+  normalizeFileFromPouchDB = f => ({\n+    ...f,\n+    id: f._id,\n+    _type: 'io.cozy.files'\n+  })\n+\n+  getFolder = async (folderId, specialFolders = []) => {\n     const db = cozy.client.offline.getDatabase('io.cozy.files')\n     const folder = await db.get(folderId)\n     const parent = !!folder.dir_id && (await db.get(folder.dir_id))\n-    const files = await this.getFolderContents(folderId)\n+    const recentsFirst =\n+      !!parent &&\n+      shouldShowRecentsFirst(folder.path, parent.path, specialFolders)\n+\n+    const files = recentsFirst\n+      ? await this.getSortedFolder(folderId, 'updated_at', 'desc')\n+      : await this.getSortedFolder(folderId, 'name', 'asc')\n+\n     return {\n-      ...normalizeFileFromPouchDB(folder),\n+      ...this.normalizeFileFromPouchDB(folder),\n       contents: {\n         data: files,\n         meta: {}\n       },\n-      parent: !!parent && normalizeFileFromPouchDB(parent)\n+      parent: !!parent && this.normalizeFileFromPouchDB(parent)\n     }\n   }\n \n-  getFolderContents = async (folderId, skip = 0, limit = FILES_FETCH_LIMIT) => {\n-    const db = cozy.client.offline.getDatabase('io.cozy.files')\n-    const resp = await db.find({\n-      selector: {\n-        dir_id: folderId,\n-        name: { $gte: null },\n-        type: { $gte: null }\n-      },\n-      use_index: this.folderIndex,\n-      sort: ['dir_id', { type: 'desc' }, { name: 'desc' }],\n-      limit,\n-      skip\n-    })\n-    const files = resp.docs\n-      .filter(f => f._id !== TRASH_DIR_ID)\n-      .map(f => normalizeFileFromPouchDB(f))\n-    return files\n-  }\n+  getFolderContents = (folderId, skip = 0, limit = FILES_FETCH_LIMIT) =>\n+    this.getSortedFolder(folderId, 'name', 'asc', skip, limit)\n \n   getSortedFolder = async (\n     folderId,\n     sortAttribute,\n     sortOrder = 'asc',\n     skip = 0,\n-    limit = FILES_FETCH_LIMIT,\n-    loadedFoldersCount = 0,\n-    loadedFilesCount = 0\n+    limit = FILES_FETCH_LIMIT\n   ) => {\n-    const shouldSeparateFilesAndFolders = sortAttribute === 'name'\n-    const index = this.sortIndexes[sortAttribute]\n-    if (!index) {\n-      throw new Error(`Can't sort on ${sortAttribute}`)\n-    }\n-    const db = cozy.client.offline.getDatabase('io.cozy.files')\n-    const query = (selector = {}, skipRows = skip) =>\n-      db\n-        .find({\n-          selector: {\n-            ...selector,\n-            ...{\n-              dir_id: folderId,\n-              _id: { $ne: TRASH_DIR_ID },\n-              [sortAttribute]: { $gte: null }\n-            }\n-          },\n-          use_index: index,\n-          sort: [{ [sortAttribute]: sortOrder }],\n-          skip: skipRows,\n-          limit\n-        })\n-        .then(resp => resp.docs.map(f => normalizeFileFromPouchDB(f)))\n-\n-    if (shouldSeparateFilesAndFolders) {\n-      const folders = await query({\n-        type: 'directory'\n+    const isFirstLoad = skip === 0","path":"src/drive/actions/async.js","position":249,"original_position":249,"commit_id":"b2f9178ecd1583b9ce5e4ede44e6735d5356c404","original_commit_id":"b2f9178ecd1583b9ce5e4ede44e6735d5356c404","user":{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false},"body":"You'll notice that the content of `getSortedFolder` is literally the same between the StackAdapter and the PouchAdapter — only the underlying `query` method changes.\r\n\r\nI'd like to avoid that duplication, but not sure how. They are both definitely class methods, but having one adapter `extend` the other doesn't seem right  either, as literally everything else changes. And having both `extend` a base class is maybe a bit overkill?","created_at":"2018-06-22T11:25:09Z","updated_at":"2018-06-22T11:29:35Z","html_url":"https://github.com/cozy/cozy-drive/pull/1002#discussion_r197418018","pull_request_url":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/comments/197418018"},"html":{"href":"https://github.com/cozy/cozy-drive/pull/1002#discussion_r197418018"},"pull_request":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002"}}},"pull_request":{"url":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002","id":196672774,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2NjcyNzc0","html_url":"https://github.com/cozy/cozy-drive/pull/1002","diff_url":"https://github.com/cozy/cozy-drive/pull/1002.diff","patch_url":"https://github.com/cozy/cozy-drive/pull/1002.patch","issue_url":"https://api.github.com/repos/cozy/cozy-drive/issues/1002","number":1002,"state":"open","locked":false,"title":"WIP Optimizing filtering performances","user":{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false},"body":"Making pouchdb faster. Not ready for review yet, I'll add more comments later.","created_at":"2018-06-22T08:39:34Z","updated_at":"2018-06-22T11:29:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false},"assignees":[{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":562974377,"node_id":"MDU6TGFiZWw1NjI5NzQzNzc=","url":"https://api.github.com/repos/cozy/cozy-drive/labels/work%20in%20progress","name":"work in progress","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002/commits","review_comments_url":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002/comments","review_comment_url":"https://api.github.com/repos/cozy/cozy-drive/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cozy/cozy-drive/issues/1002/comments","statuses_url":"https://api.github.com/repos/cozy/cozy-drive/statuses/b2f9178ecd1583b9ce5e4ede44e6735d5356c404","head":{"label":"y-lohse:filter-optim","ref":"filter-optim","sha":"b2f9178ecd1583b9ce5e4ede44e6735d5356c404","user":{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false},"repo":{"id":80420066,"node_id":"MDEwOlJlcG9zaXRvcnk4MDQyMDA2Ng==","name":"cozy-drive","full_name":"y-lohse/cozy-drive","owner":{"login":"y-lohse","id":2261445,"node_id":"MDQ6VXNlcjIyNjE0NDU=","avatar_url":"https://avatars2.githubusercontent.com/u/2261445?v=4","gravatar_id":"","url":"https://api.github.com/users/y-lohse","html_url":"https://github.com/y-lohse","followers_url":"https://api.github.com/users/y-lohse/followers","following_url":"https://api.github.com/users/y-lohse/following{/other_user}","gists_url":"https://api.github.com/users/y-lohse/gists{/gist_id}","starred_url":"https://api.github.com/users/y-lohse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/y-lohse/subscriptions","organizations_url":"https://api.github.com/users/y-lohse/orgs","repos_url":"https://api.github.com/users/y-lohse/repos","events_url":"https://api.github.com/users/y-lohse/events{/privacy}","received_events_url":"https://api.github.com/users/y-lohse/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/y-lohse/cozy-drive","description":"Cozy Files app for Cozy Cloud","fork":true,"url":"https://api.github.com/repos/y-lohse/cozy-drive","forks_url":"https://api.github.com/repos/y-lohse/cozy-drive/forks","keys_url":"https://api.github.com/repos/y-lohse/cozy-drive/keys{/key_id}","collaborators_url":"https://api.github.com/repos/y-lohse/cozy-drive/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/y-lohse/cozy-drive/teams","hooks_url":"https://api.github.com/repos/y-lohse/cozy-drive/hooks","issue_events_url":"https://api.github.com/repos/y-lohse/cozy-drive/issues/events{/number}","events_url":"https://api.github.com/repos/y-lohse/cozy-drive/events","assignees_url":"https://api.github.com/repos/y-lohse/cozy-drive/assignees{/user}","branches_url":"https://api.github.com/repos/y-lohse/cozy-drive/branches{/branch}","tags_url":"https://api.github.com/repos/y-lohse/cozy-drive/tags","blobs_url":"https://api.github.com/repos/y-lohse/cozy-drive/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/y-lohse/cozy-drive/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/y-lohse/cozy-drive/git/refs{/sha}","trees_url":"https://api.github.com/repos/y-lohse/cozy-drive/git/trees{/sha}","statuses_url":"https://api.github.com/repos/y-lohse/cozy-drive/statuses/{sha}","languages_url":"https://api.github.com/repos/y-lohse/cozy-drive/languages","stargazers_url":"https://api.github.com/repos/y-lohse/cozy-drive/stargazers","contributors_url":"https://api.github.com/repos/y-lohse/cozy-drive/contributors","subscribers_url":"https://api.github.com/repos/y-lohse/cozy-drive/subscribers","subscription_url":"https://api.github.com/repos/y-lohse/cozy-drive/subscription","commits_url":"https://api.github.com/repos/y-lohse/cozy-drive/commits{/sha}","git_commits_url":"https://api.github.com/repos/y-lohse/cozy-drive/git/commits{/sha}","comments_url":"https://api.github.com/repos/y-lohse/cozy-drive/comments{/number}","issue_comment_url":"https://api.github.com/repos/y-lohse/cozy-drive/issues/comments{/number}","contents_url":"https://api.github.com/repos/y-lohse/cozy-drive/contents/{+path}","compare_url":"https://api.github.com/repos/y-lohse/cozy-drive/compare/{base}...{head}","merges_url":"https://api.github.com/repos/y-lohse/cozy-drive/merges","archive_url":"https://api.github.com/repos/y-lohse/cozy-drive/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/y-lohse/cozy-drive/downloads","issues_url":"https://api.github.com/repos/y-lohse/cozy-drive/issues{/number}","pulls_url":"https://api.github.com/repos/y-lohse/cozy-drive/pulls{/number}","milestones_url":"https://api.github.com/repos/y-lohse/cozy-drive/milestones{/number}","notifications_url":"https://api.github.com/repos/y-lohse/cozy-drive/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/y-lohse/cozy-drive/labels{/name}","releases_url":"https://api.github.com/repos/y-lohse/cozy-drive/releases{/id}","deployments_url":"https://api.github.com/repos/y-lohse/cozy-drive/deployments","created_at":"2017-01-30T12:36:16Z","updated_at":"2018-06-19T10:17:47Z","pushed_at":"2018-06-22T11:20:49Z","git_url":"git://github.com/y-lohse/cozy-drive.git","ssh_url":"git@github.com:y-lohse/cozy-drive.git","clone_url":"https://github.com/y-lohse/cozy-drive.git","svn_url":"https://github.com/y-lohse/cozy-drive","homepage":null,"size":68263,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"cozy:master","ref":"master","sha":"4c0b3280a1400ee0020cc8f05d6155fb5707c0f9","user":{"login":"cozy","id":7690525,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc2OTA1MjU=","avatar_url":"https://avatars0.githubusercontent.com/u/7690525?v=4","gravatar_id":"","url":"https://api.github.com/users/cozy","html_url":"https://github.com/cozy","followers_url":"https://api.github.com/users/cozy/followers","following_url":"https://api.github.com/users/cozy/following{/other_user}","gists_url":"https://api.github.com/users/cozy/gists{/gist_id}","starred_url":"https://api.github.com/users/cozy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cozy/subscriptions","organizations_url":"https://api.github.com/users/cozy/orgs","repos_url":"https://api.github.com/users/cozy/repos","events_url":"https://api.github.com/users/cozy/events{/privacy}","received_events_url":"https://api.github.com/users/cozy/received_events","type":"Organization","site_admin":false},"repo":{"id":76205055,"node_id":"MDEwOlJlcG9zaXRvcnk3NjIwNTA1NQ==","name":"cozy-drive","full_name":"cozy/cozy-drive","owner":{"login":"cozy","id":7690525,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc2OTA1MjU=","avatar_url":"https://avatars0.githubusercontent.com/u/7690525?v=4","gravatar_id":"","url":"https://api.github.com/users/cozy","html_url":"https://github.com/cozy","followers_url":"https://api.github.com/users/cozy/followers","following_url":"https://api.github.com/users/cozy/following{/other_user}","gists_url":"https://api.github.com/users/cozy/gists{/gist_id}","starred_url":"https://api.github.com/users/cozy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cozy/subscriptions","organizations_url":"https://api.github.com/users/cozy/orgs","repos_url":"https://api.github.com/users/cozy/repos","events_url":"https://api.github.com/users/cozy/events{/privacy}","received_events_url":"https://api.github.com/users/cozy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cozy/cozy-drive","description":"Cozy Drive app for Cozy Cloud","fork":false,"url":"https://api.github.com/repos/cozy/cozy-drive","forks_url":"https://api.github.com/repos/cozy/cozy-drive/forks","keys_url":"https://api.github.com/repos/cozy/cozy-drive/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cozy/cozy-drive/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cozy/cozy-drive/teams","hooks_url":"https://api.github.com/repos/cozy/cozy-drive/hooks","issue_events_url":"https://api.github.com/repos/cozy/cozy-drive/issues/events{/number}","events_url":"https://api.github.com/repos/cozy/cozy-drive/events","assignees_url":"https://api.github.com/repos/cozy/cozy-drive/assignees{/user}","branches_url":"https://api.github.com/repos/cozy/cozy-drive/branches{/branch}","tags_url":"https://api.github.com/repos/cozy/cozy-drive/tags","blobs_url":"https://api.github.com/repos/cozy/cozy-drive/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cozy/cozy-drive/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cozy/cozy-drive/git/refs{/sha}","trees_url":"https://api.github.com/repos/cozy/cozy-drive/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cozy/cozy-drive/statuses/{sha}","languages_url":"https://api.github.com/repos/cozy/cozy-drive/languages","stargazers_url":"https://api.github.com/repos/cozy/cozy-drive/stargazers","contributors_url":"https://api.github.com/repos/cozy/cozy-drive/contributors","subscribers_url":"https://api.github.com/repos/cozy/cozy-drive/subscribers","subscription_url":"https://api.github.com/repos/cozy/cozy-drive/subscription","commits_url":"https://api.github.com/repos/cozy/cozy-drive/commits{/sha}","git_commits_url":"https://api.github.com/repos/cozy/cozy-drive/git/commits{/sha}","comments_url":"https://api.github.com/repos/cozy/cozy-drive/comments{/number}","issue_comment_url":"https://api.github.com/repos/cozy/cozy-drive/issues/comments{/number}","contents_url":"https://api.github.com/repos/cozy/cozy-drive/contents/{+path}","compare_url":"https://api.github.com/repos/cozy/cozy-drive/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cozy/cozy-drive/merges","archive_url":"https://api.github.com/repos/cozy/cozy-drive/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cozy/cozy-drive/downloads","issues_url":"https://api.github.com/repos/cozy/cozy-drive/issues{/number}","pulls_url":"https://api.github.com/repos/cozy/cozy-drive/pulls{/number}","milestones_url":"https://api.github.com/repos/cozy/cozy-drive/milestones{/number}","notifications_url":"https://api.github.com/repos/cozy/cozy-drive/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cozy/cozy-drive/labels{/name}","releases_url":"https://api.github.com/repos/cozy/cozy-drive/releases{/id}","deployments_url":"https://api.github.com/repos/cozy/cozy-drive/deployments","created_at":"2016-12-11T22:51:29Z","updated_at":"2018-06-21T00:35:24Z","pushed_at":"2018-06-22T11:20:51Z","git_url":"git://github.com/cozy/cozy-drive.git","ssh_url":"git@github.com:cozy/cozy-drive.git","clone_url":"https://github.com/cozy/cozy-drive.git","svn_url":"https://github.com/cozy/cozy-drive","homepage":"","size":259880,"stargazers_count":23,"watchers_count":23,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":38,"mirror_url":null,"archived":false,"open_issues_count":37,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":38,"open_issues":37,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002"},"html":{"href":"https://github.com/cozy/cozy-drive/pull/1002"},"issue":{"href":"https://api.github.com/repos/cozy/cozy-drive/issues/1002"},"comments":{"href":"https://api.github.com/repos/cozy/cozy-drive/issues/1002/comments"},"review_comments":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002/comments"},"review_comment":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cozy/cozy-drive/pulls/1002/commits"},"statuses":{"href":"https://api.github.com/repos/cozy/cozy-drive/statuses/b2f9178ecd1583b9ce5e4ede44e6735d5356c404"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"y-lohse"}}