{"action":"created","comment":{"url":"https://api.github.com/repos/Kinto/kinto/pulls/comments/89593303","pull_request_review_id":10137949,"id":89593303,"diff_hunk":"@@ -43,3 +45,88 @@ def _extract_filters(self, queryparams=None):\n             filters_str_id.append(filt)\n \n         return filters_str_id\n+\n+\n+class Revert(resource.UserResource):\n+\n+    def __init__(self, request):\n+        self.request = request\n+        self.bucket_id = request.matchdict['bucket_id']\n+        if 'since' not in request.params:\n+            raise_invalid(self.request, 'params', 'since', 'since request parameter must be provided')\n+        self.since = int(request.params['since'])\n+        filters = super(Revert, self)._extract_filters(request.params)","path":"kinto/plugins/history/views.py","position":30,"original_position":30,"commit_id":"3998bebe5dae0dc52dc797d43e8740c5ac9d388d","original_commit_id":"3998bebe5dae0dc52dc797d43e8740c5ac9d388d","user":{"login":"leplatrem","id":546692,"avatar_url":"https://avatars.githubusercontent.com/u/546692?v=3","gravatar_id":"","url":"https://api.github.com/users/leplatrem","html_url":"https://github.com/leplatrem","followers_url":"https://api.github.com/users/leplatrem/followers","following_url":"https://api.github.com/users/leplatrem/following{/other_user}","gists_url":"https://api.github.com/users/leplatrem/gists{/gist_id}","starred_url":"https://api.github.com/users/leplatrem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leplatrem/subscriptions","organizations_url":"https://api.github.com/users/leplatrem/orgs","repos_url":"https://api.github.com/users/leplatrem/repos","events_url":"https://api.github.com/users/leplatrem/events{/privacy}","received_events_url":"https://api.github.com/users/leplatrem/received_events","type":"User","site_admin":false},"body":"If you inherit from `UserResource` just to access that private method, then we should refactor that. We could have a `extract_filters` function in `kinto.core.resource` instead, that both places would call","created_at":"2016-11-25T10:14:59Z","updated_at":"2016-11-25T10:14:59Z","html_url":"https://github.com/Kinto/kinto/pull/862#discussion_r89593303","pull_request_url":"https://api.github.com/repos/Kinto/kinto/pulls/862","_links":{"self":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/comments/89593303"},"html":{"href":"https://github.com/Kinto/kinto/pull/862#discussion_r89593303"},"pull_request":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/862"}}},"pull_request":{"url":"https://api.github.com/repos/Kinto/kinto/pulls/862","id":89509500,"html_url":"https://github.com/Kinto/kinto/pull/862","diff_url":"https://github.com/Kinto/kinto/pull/862.diff","patch_url":"https://github.com/Kinto/kinto/pull/862.patch","issue_url":"https://api.github.com/repos/Kinto/kinto/issues/862","number":862,"state":"open","locked":false,"title":"implementing a revert operation ","user":{"login":"oronsan","id":19194059,"avatar_url":"https://avatars.githubusercontent.com/u/19194059?v=3","gravatar_id":"","url":"https://api.github.com/users/oronsan","html_url":"https://github.com/oronsan","followers_url":"https://api.github.com/users/oronsan/followers","following_url":"https://api.github.com/users/oronsan/following{/other_user}","gists_url":"https://api.github.com/users/oronsan/gists{/gist_id}","starred_url":"https://api.github.com/users/oronsan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oronsan/subscriptions","organizations_url":"https://api.github.com/users/oronsan/orgs","repos_url":"https://api.github.com/users/oronsan/repos","events_url":"https://api.github.com/users/oronsan/events{/privacy}","received_events_url":"https://api.github.com/users/oronsan/received_events","type":"User","site_admin":false},"body":"Fixes #826 \n- [ ] Add documentation.\n- [ ] Add tests.\n- [ ] Add a changelog entry.\n- [ ] Add your name in the contributors file.\n- [ ] If you changed the HTTP API, update the [API_VERSION](https://github.com/Kinto/kinto/blob/master/kinto/__init__.py#L15) constant and add an API changelog entry [in the docs](https://github.com/Kinto/kinto/blob/master/docs/api/index.rst)\n\nr? @\n","created_at":"2016-10-15T23:02:39Z","updated_at":"2016-11-25T10:31:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"29af843da2220b14374a6a3e2eb8d3a71517aca7","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Kinto/kinto/pulls/862/commits","review_comments_url":"https://api.github.com/repos/Kinto/kinto/pulls/862/comments","review_comment_url":"https://api.github.com/repos/Kinto/kinto/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Kinto/kinto/issues/862/comments","statuses_url":"https://api.github.com/repos/Kinto/kinto/statuses/3998bebe5dae0dc52dc797d43e8740c5ac9d388d","head":{"label":"oronsan:revert","ref":"revert","sha":"3998bebe5dae0dc52dc797d43e8740c5ac9d388d","user":{"login":"oronsan","id":19194059,"avatar_url":"https://avatars.githubusercontent.com/u/19194059?v=3","gravatar_id":"","url":"https://api.github.com/users/oronsan","html_url":"https://github.com/oronsan","followers_url":"https://api.github.com/users/oronsan/followers","following_url":"https://api.github.com/users/oronsan/following{/other_user}","gists_url":"https://api.github.com/users/oronsan/gists{/gist_id}","starred_url":"https://api.github.com/users/oronsan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oronsan/subscriptions","organizations_url":"https://api.github.com/users/oronsan/orgs","repos_url":"https://api.github.com/users/oronsan/repos","events_url":"https://api.github.com/users/oronsan/events{/privacy}","received_events_url":"https://api.github.com/users/oronsan/received_events","type":"User","site_admin":false},"repo":{"id":70564634,"name":"kinto","full_name":"oronsan/kinto","owner":{"login":"oronsan","id":19194059,"avatar_url":"https://avatars.githubusercontent.com/u/19194059?v=3","gravatar_id":"","url":"https://api.github.com/users/oronsan","html_url":"https://github.com/oronsan","followers_url":"https://api.github.com/users/oronsan/followers","following_url":"https://api.github.com/users/oronsan/following{/other_user}","gists_url":"https://api.github.com/users/oronsan/gists{/gist_id}","starred_url":"https://api.github.com/users/oronsan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oronsan/subscriptions","organizations_url":"https://api.github.com/users/oronsan/orgs","repos_url":"https://api.github.com/users/oronsan/repos","events_url":"https://api.github.com/users/oronsan/events{/privacy}","received_events_url":"https://api.github.com/users/oronsan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/oronsan/kinto","description":"A minimalist JSON storage service with synchronisation and sharing abilities.","fork":true,"url":"https://api.github.com/repos/oronsan/kinto","forks_url":"https://api.github.com/repos/oronsan/kinto/forks","keys_url":"https://api.github.com/repos/oronsan/kinto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/oronsan/kinto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/oronsan/kinto/teams","hooks_url":"https://api.github.com/repos/oronsan/kinto/hooks","issue_events_url":"https://api.github.com/repos/oronsan/kinto/issues/events{/number}","events_url":"https://api.github.com/repos/oronsan/kinto/events","assignees_url":"https://api.github.com/repos/oronsan/kinto/assignees{/user}","branches_url":"https://api.github.com/repos/oronsan/kinto/branches{/branch}","tags_url":"https://api.github.com/repos/oronsan/kinto/tags","blobs_url":"https://api.github.com/repos/oronsan/kinto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/oronsan/kinto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/oronsan/kinto/git/refs{/sha}","trees_url":"https://api.github.com/repos/oronsan/kinto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/oronsan/kinto/statuses/{sha}","languages_url":"https://api.github.com/repos/oronsan/kinto/languages","stargazers_url":"https://api.github.com/repos/oronsan/kinto/stargazers","contributors_url":"https://api.github.com/repos/oronsan/kinto/contributors","subscribers_url":"https://api.github.com/repos/oronsan/kinto/subscribers","subscription_url":"https://api.github.com/repos/oronsan/kinto/subscription","commits_url":"https://api.github.com/repos/oronsan/kinto/commits{/sha}","git_commits_url":"https://api.github.com/repos/oronsan/kinto/git/commits{/sha}","comments_url":"https://api.github.com/repos/oronsan/kinto/comments{/number}","issue_comment_url":"https://api.github.com/repos/oronsan/kinto/issues/comments{/number}","contents_url":"https://api.github.com/repos/oronsan/kinto/contents/{+path}","compare_url":"https://api.github.com/repos/oronsan/kinto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/oronsan/kinto/merges","archive_url":"https://api.github.com/repos/oronsan/kinto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/oronsan/kinto/downloads","issues_url":"https://api.github.com/repos/oronsan/kinto/issues{/number}","pulls_url":"https://api.github.com/repos/oronsan/kinto/pulls{/number}","milestones_url":"https://api.github.com/repos/oronsan/kinto/milestones{/number}","notifications_url":"https://api.github.com/repos/oronsan/kinto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/oronsan/kinto/labels{/name}","releases_url":"https://api.github.com/repos/oronsan/kinto/releases{/id}","deployments_url":"https://api.github.com/repos/oronsan/kinto/deployments","created_at":"2016-10-11T06:49:48Z","updated_at":"2016-10-11T06:49:50Z","pushed_at":"2016-11-05T06:21:28Z","git_url":"git://github.com/oronsan/kinto.git","ssh_url":"git@github.com:oronsan/kinto.git","clone_url":"https://github.com/oronsan/kinto.git","svn_url":"https://github.com/oronsan/kinto","homepage":"https://kinto.readthedocs.io","size":9919,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"Kinto:master","ref":"master","sha":"e97142af2b1436ac4dcff98e6471ed49728faddc","user":{"login":"Kinto","id":13413813,"avatar_url":"https://avatars.githubusercontent.com/u/13413813?v=3","gravatar_id":"","url":"https://api.github.com/users/Kinto","html_url":"https://github.com/Kinto","followers_url":"https://api.github.com/users/Kinto/followers","following_url":"https://api.github.com/users/Kinto/following{/other_user}","gists_url":"https://api.github.com/users/Kinto/gists{/gist_id}","starred_url":"https://api.github.com/users/Kinto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kinto/subscriptions","organizations_url":"https://api.github.com/users/Kinto/orgs","repos_url":"https://api.github.com/users/Kinto/repos","events_url":"https://api.github.com/users/Kinto/events{/privacy}","received_events_url":"https://api.github.com/users/Kinto/received_events","type":"Organization","site_admin":false},"repo":{"id":31315021,"name":"kinto","full_name":"Kinto/kinto","owner":{"login":"Kinto","id":13413813,"avatar_url":"https://avatars.githubusercontent.com/u/13413813?v=3","gravatar_id":"","url":"https://api.github.com/users/Kinto","html_url":"https://github.com/Kinto","followers_url":"https://api.github.com/users/Kinto/followers","following_url":"https://api.github.com/users/Kinto/following{/other_user}","gists_url":"https://api.github.com/users/Kinto/gists{/gist_id}","starred_url":"https://api.github.com/users/Kinto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kinto/subscriptions","organizations_url":"https://api.github.com/users/Kinto/orgs","repos_url":"https://api.github.com/users/Kinto/repos","events_url":"https://api.github.com/users/Kinto/events{/privacy}","received_events_url":"https://api.github.com/users/Kinto/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Kinto/kinto","description":"A minimalist JSON storage service with synchronisation and sharing abilities.","fork":false,"url":"https://api.github.com/repos/Kinto/kinto","forks_url":"https://api.github.com/repos/Kinto/kinto/forks","keys_url":"https://api.github.com/repos/Kinto/kinto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Kinto/kinto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Kinto/kinto/teams","hooks_url":"https://api.github.com/repos/Kinto/kinto/hooks","issue_events_url":"https://api.github.com/repos/Kinto/kinto/issues/events{/number}","events_url":"https://api.github.com/repos/Kinto/kinto/events","assignees_url":"https://api.github.com/repos/Kinto/kinto/assignees{/user}","branches_url":"https://api.github.com/repos/Kinto/kinto/branches{/branch}","tags_url":"https://api.github.com/repos/Kinto/kinto/tags","blobs_url":"https://api.github.com/repos/Kinto/kinto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Kinto/kinto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Kinto/kinto/git/refs{/sha}","trees_url":"https://api.github.com/repos/Kinto/kinto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Kinto/kinto/statuses/{sha}","languages_url":"https://api.github.com/repos/Kinto/kinto/languages","stargazers_url":"https://api.github.com/repos/Kinto/kinto/stargazers","contributors_url":"https://api.github.com/repos/Kinto/kinto/contributors","subscribers_url":"https://api.github.com/repos/Kinto/kinto/subscribers","subscription_url":"https://api.github.com/repos/Kinto/kinto/subscription","commits_url":"https://api.github.com/repos/Kinto/kinto/commits{/sha}","git_commits_url":"https://api.github.com/repos/Kinto/kinto/git/commits{/sha}","comments_url":"https://api.github.com/repos/Kinto/kinto/comments{/number}","issue_comment_url":"https://api.github.com/repos/Kinto/kinto/issues/comments{/number}","contents_url":"https://api.github.com/repos/Kinto/kinto/contents/{+path}","compare_url":"https://api.github.com/repos/Kinto/kinto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Kinto/kinto/merges","archive_url":"https://api.github.com/repos/Kinto/kinto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Kinto/kinto/downloads","issues_url":"https://api.github.com/repos/Kinto/kinto/issues{/number}","pulls_url":"https://api.github.com/repos/Kinto/kinto/pulls{/number}","milestones_url":"https://api.github.com/repos/Kinto/kinto/milestones{/number}","notifications_url":"https://api.github.com/repos/Kinto/kinto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Kinto/kinto/labels{/name}","releases_url":"https://api.github.com/repos/Kinto/kinto/releases{/id}","deployments_url":"https://api.github.com/repos/Kinto/kinto/deployments","created_at":"2015-02-25T13:34:23Z","updated_at":"2016-11-23T12:33:27Z","pushed_at":"2016-11-25T09:51:07Z","git_url":"git://github.com/Kinto/kinto.git","ssh_url":"git@github.com:Kinto/kinto.git","clone_url":"https://github.com/Kinto/kinto.git","svn_url":"https://github.com/Kinto/kinto","homepage":"https://kinto.readthedocs.io","size":29221,"stargazers_count":2934,"watchers_count":2934,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":185,"mirror_url":null,"open_issues_count":75,"forks":185,"open_issues":75,"watchers":2934,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/862"},"html":{"href":"https://github.com/Kinto/kinto/pull/862"},"issue":{"href":"https://api.github.com/repos/Kinto/kinto/issues/862"},"comments":{"href":"https://api.github.com/repos/Kinto/kinto/issues/862/comments"},"review_comments":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/862/comments"},"review_comment":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Kinto/kinto/pulls/862/commits"},"statuses":{"href":"https://api.github.com/repos/Kinto/kinto/statuses/3998bebe5dae0dc52dc797d43e8740c5ac9d388d"}}}}
{"actor":{"display_login":"leplatrem"}}