{"action":"opened","number":196,"pull_request":{"url":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196","id":47376930,"html_url":"https://github.com/insomnia-lab/libreant/pull/196","diff_url":"https://github.com/insomnia-lab/libreant/pull/196.diff","patch_url":"https://github.com/insomnia-lab/libreant/pull/196.patch","issue_url":"https://api.github.com/repos/insomnia-lab/libreant/issues/196","number":196,"state":"open","locked":false,"title":"Users managment api","user":{"login":"ael-code","id":4229536,"avatar_url":"https://avatars.githubusercontent.com/u/4229536?v=3","gravatar_id":"","url":"https://api.github.com/users/ael-code","html_url":"https://github.com/ael-code","followers_url":"https://api.github.com/users/ael-code/followers","following_url":"https://api.github.com/users/ael-code/following{/other_user}","gists_url":"https://api.github.com/users/ael-code/gists{/gist_id}","starred_url":"https://api.github.com/users/ael-code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ael-code/subscriptions","organizations_url":"https://api.github.com/users/ael-code/orgs","repos_url":"https://api.github.com/users/ael-code/repos","events_url":"https://api.github.com/users/ael-code/events{/privacy}","received_events_url":"https://api.github.com/users/ael-code/received_events","type":"User","site_admin":false},"body":"Here we are expanding REST API providing endpoint for users/groups/capabilities management.\r\n\r\nThis is very long and boring stuff but since I love you I've written tests that cover 100% of the new code ;)\r\n\r\nI've decided to build an upper layer upon peewee: `users.api`. This layer expose higher api for managing users/groups/capabilities without requiring any knowledge of the database and peewee syntax.  \r\n.  \r\n:warning: This PR has #195 as HEAD so please merge that one first","created_at":"2015-10-11T22:22:14Z","updated_at":"2015-10-11T22:22:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"432b95ac5e1143e7604474873b3210ccbb03fa4f","assignee":null,"milestone":{"url":"https://api.github.com/repos/insomnia-lab/libreant/milestones/4","html_url":"https://github.com/insomnia-lab/libreant/milestones/0.3","labels_url":"https://api.github.com/repos/insomnia-lab/libreant/milestones/4/labels","id":1174862,"number":4,"title":"0.3","description":" - authentication and authorization\r\n - admin web dashboard","creator":{"login":"ael-code","id":4229536,"avatar_url":"https://avatars.githubusercontent.com/u/4229536?v=3","gravatar_id":"","url":"https://api.github.com/users/ael-code","html_url":"https://github.com/ael-code","followers_url":"https://api.github.com/users/ael-code/followers","following_url":"https://api.github.com/users/ael-code/following{/other_user}","gists_url":"https://api.github.com/users/ael-code/gists{/gist_id}","starred_url":"https://api.github.com/users/ael-code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ael-code/subscriptions","organizations_url":"https://api.github.com/users/ael-code/orgs","repos_url":"https://api.github.com/users/ael-code/repos","events_url":"https://api.github.com/users/ael-code/events{/privacy}","received_events_url":"https://api.github.com/users/ael-code/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":2,"state":"open","created_at":"2015-06-22T10:34:13Z","updated_at":"2015-10-11T22:22:14Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196/commits","review_comments_url":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196/comments","review_comment_url":"https://api.github.com/repos/insomnia-lab/libreant/pulls/comments{/number}","comments_url":"https://api.github.com/repos/insomnia-lab/libreant/issues/196/comments","statuses_url":"https://api.github.com/repos/insomnia-lab/libreant/statuses/afe70f5dc9fa925c8fd81ba0c3804ec74998d8c4","head":{"label":"ael-code:users_api","ref":"users_api","sha":"afe70f5dc9fa925c8fd81ba0c3804ec74998d8c4","user":{"login":"ael-code","id":4229536,"avatar_url":"https://avatars.githubusercontent.com/u/4229536?v=3","gravatar_id":"","url":"https://api.github.com/users/ael-code","html_url":"https://github.com/ael-code","followers_url":"https://api.github.com/users/ael-code/followers","following_url":"https://api.github.com/users/ael-code/following{/other_user}","gists_url":"https://api.github.com/users/ael-code/gists{/gist_id}","starred_url":"https://api.github.com/users/ael-code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ael-code/subscriptions","organizations_url":"https://api.github.com/users/ael-code/orgs","repos_url":"https://api.github.com/users/ael-code/repos","events_url":"https://api.github.com/users/ael-code/events{/privacy}","received_events_url":"https://api.github.com/users/ael-code/received_events","type":"User","site_admin":false},"repo":{"id":27180709,"name":"libreant","full_name":"ael-code/libreant","owner":{"login":"ael-code","id":4229536,"avatar_url":"https://avatars.githubusercontent.com/u/4229536?v=3","gravatar_id":"","url":"https://api.github.com/users/ael-code","html_url":"https://github.com/ael-code","followers_url":"https://api.github.com/users/ael-code/followers","following_url":"https://api.github.com/users/ael-code/following{/other_user}","gists_url":"https://api.github.com/users/ael-code/gists{/gist_id}","starred_url":"https://api.github.com/users/ael-code/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ael-code/subscriptions","organizations_url":"https://api.github.com/users/ael-code/orgs","repos_url":"https://api.github.com/users/ael-code/repos","events_url":"https://api.github.com/users/ael-code/events{/privacy}","received_events_url":"https://api.github.com/users/ael-code/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ael-code/libreant","description":"{,e}Book archive, focused on small grassroot archives, distributed search, support to different kind of objects","fork":true,"url":"https://api.github.com/repos/ael-code/libreant","forks_url":"https://api.github.com/repos/ael-code/libreant/forks","keys_url":"https://api.github.com/repos/ael-code/libreant/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ael-code/libreant/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ael-code/libreant/teams","hooks_url":"https://api.github.com/repos/ael-code/libreant/hooks","issue_events_url":"https://api.github.com/repos/ael-code/libreant/issues/events{/number}","events_url":"https://api.github.com/repos/ael-code/libreant/events","assignees_url":"https://api.github.com/repos/ael-code/libreant/assignees{/user}","branches_url":"https://api.github.com/repos/ael-code/libreant/branches{/branch}","tags_url":"https://api.github.com/repos/ael-code/libreant/tags","blobs_url":"https://api.github.com/repos/ael-code/libreant/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ael-code/libreant/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ael-code/libreant/git/refs{/sha}","trees_url":"https://api.github.com/repos/ael-code/libreant/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ael-code/libreant/statuses/{sha}","languages_url":"https://api.github.com/repos/ael-code/libreant/languages","stargazers_url":"https://api.github.com/repos/ael-code/libreant/stargazers","contributors_url":"https://api.github.com/repos/ael-code/libreant/contributors","subscribers_url":"https://api.github.com/repos/ael-code/libreant/subscribers","subscription_url":"https://api.github.com/repos/ael-code/libreant/subscription","commits_url":"https://api.github.com/repos/ael-code/libreant/commits{/sha}","git_commits_url":"https://api.github.com/repos/ael-code/libreant/git/commits{/sha}","comments_url":"https://api.github.com/repos/ael-code/libreant/comments{/number}","issue_comment_url":"https://api.github.com/repos/ael-code/libreant/issues/comments{/number}","contents_url":"https://api.github.com/repos/ael-code/libreant/contents/{+path}","compare_url":"https://api.github.com/repos/ael-code/libreant/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ael-code/libreant/merges","archive_url":"https://api.github.com/repos/ael-code/libreant/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ael-code/libreant/downloads","issues_url":"https://api.github.com/repos/ael-code/libreant/issues{/number}","pulls_url":"https://api.github.com/repos/ael-code/libreant/pulls{/number}","milestones_url":"https://api.github.com/repos/ael-code/libreant/milestones{/number}","notifications_url":"https://api.github.com/repos/ael-code/libreant/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ael-code/libreant/labels{/name}","releases_url":"https://api.github.com/repos/ael-code/libreant/releases{/id}","created_at":"2014-11-26T14:34:15Z","updated_at":"2015-05-16T13:56:30Z","pushed_at":"2015-10-11T22:03:43Z","git_url":"git://github.com/ael-code/libreant.git","ssh_url":"git@github.com:ael-code/libreant.git","clone_url":"https://github.com/ael-code/libreant.git","svn_url":"https://github.com/ael-code/libreant","homepage":null,"size":1991,"stargazers_count":2,"watchers_count":2,"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":2,"default_branch":"master"}},"base":{"label":"insomnia-lab:master","ref":"master","sha":"e2623edb46d814a8762fad9aefcb5448651d5f58","user":{"login":"insomnia-lab","id":7016964,"avatar_url":"https://avatars.githubusercontent.com/u/7016964?v=3","gravatar_id":"","url":"https://api.github.com/users/insomnia-lab","html_url":"https://github.com/insomnia-lab","followers_url":"https://api.github.com/users/insomnia-lab/followers","following_url":"https://api.github.com/users/insomnia-lab/following{/other_user}","gists_url":"https://api.github.com/users/insomnia-lab/gists{/gist_id}","starred_url":"https://api.github.com/users/insomnia-lab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/insomnia-lab/subscriptions","organizations_url":"https://api.github.com/users/insomnia-lab/orgs","repos_url":"https://api.github.com/users/insomnia-lab/repos","events_url":"https://api.github.com/users/insomnia-lab/events{/privacy}","received_events_url":"https://api.github.com/users/insomnia-lab/received_events","type":"Organization","site_admin":false},"repo":{"id":27069249,"name":"libreant","full_name":"insomnia-lab/libreant","owner":{"login":"insomnia-lab","id":7016964,"avatar_url":"https://avatars.githubusercontent.com/u/7016964?v=3","gravatar_id":"","url":"https://api.github.com/users/insomnia-lab","html_url":"https://github.com/insomnia-lab","followers_url":"https://api.github.com/users/insomnia-lab/followers","following_url":"https://api.github.com/users/insomnia-lab/following{/other_user}","gists_url":"https://api.github.com/users/insomnia-lab/gists{/gist_id}","starred_url":"https://api.github.com/users/insomnia-lab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/insomnia-lab/subscriptions","organizations_url":"https://api.github.com/users/insomnia-lab/orgs","repos_url":"https://api.github.com/users/insomnia-lab/repos","events_url":"https://api.github.com/users/insomnia-lab/events{/privacy}","received_events_url":"https://api.github.com/users/insomnia-lab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/insomnia-lab/libreant","description":"{,e}Book archive, focused on small grassroot archives, distributed search, support to different kind of objects","fork":false,"url":"https://api.github.com/repos/insomnia-lab/libreant","forks_url":"https://api.github.com/repos/insomnia-lab/libreant/forks","keys_url":"https://api.github.com/repos/insomnia-lab/libreant/keys{/key_id}","collaborators_url":"https://api.github.com/repos/insomnia-lab/libreant/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/insomnia-lab/libreant/teams","hooks_url":"https://api.github.com/repos/insomnia-lab/libreant/hooks","issue_events_url":"https://api.github.com/repos/insomnia-lab/libreant/issues/events{/number}","events_url":"https://api.github.com/repos/insomnia-lab/libreant/events","assignees_url":"https://api.github.com/repos/insomnia-lab/libreant/assignees{/user}","branches_url":"https://api.github.com/repos/insomnia-lab/libreant/branches{/branch}","tags_url":"https://api.github.com/repos/insomnia-lab/libreant/tags","blobs_url":"https://api.github.com/repos/insomnia-lab/libreant/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/insomnia-lab/libreant/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/insomnia-lab/libreant/git/refs{/sha}","trees_url":"https://api.github.com/repos/insomnia-lab/libreant/git/trees{/sha}","statuses_url":"https://api.github.com/repos/insomnia-lab/libreant/statuses/{sha}","languages_url":"https://api.github.com/repos/insomnia-lab/libreant/languages","stargazers_url":"https://api.github.com/repos/insomnia-lab/libreant/stargazers","contributors_url":"https://api.github.com/repos/insomnia-lab/libreant/contributors","subscribers_url":"https://api.github.com/repos/insomnia-lab/libreant/subscribers","subscription_url":"https://api.github.com/repos/insomnia-lab/libreant/subscription","commits_url":"https://api.github.com/repos/insomnia-lab/libreant/commits{/sha}","git_commits_url":"https://api.github.com/repos/insomnia-lab/libreant/git/commits{/sha}","comments_url":"https://api.github.com/repos/insomnia-lab/libreant/comments{/number}","issue_comment_url":"https://api.github.com/repos/insomnia-lab/libreant/issues/comments{/number}","contents_url":"https://api.github.com/repos/insomnia-lab/libreant/contents/{+path}","compare_url":"https://api.github.com/repos/insomnia-lab/libreant/compare/{base}...{head}","merges_url":"https://api.github.com/repos/insomnia-lab/libreant/merges","archive_url":"https://api.github.com/repos/insomnia-lab/libreant/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/insomnia-lab/libreant/downloads","issues_url":"https://api.github.com/repos/insomnia-lab/libreant/issues{/number}","pulls_url":"https://api.github.com/repos/insomnia-lab/libreant/pulls{/number}","milestones_url":"https://api.github.com/repos/insomnia-lab/libreant/milestones{/number}","notifications_url":"https://api.github.com/repos/insomnia-lab/libreant/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/insomnia-lab/libreant/labels{/name}","releases_url":"https://api.github.com/repos/insomnia-lab/libreant/releases{/id}","created_at":"2014-11-24T09:31:52Z","updated_at":"2015-05-26T16:28:36Z","pushed_at":"2015-10-11T22:22:14Z","git_url":"git://github.com/insomnia-lab/libreant.git","ssh_url":"git@github.com:insomnia-lab/libreant.git","clone_url":"https://github.com/insomnia-lab/libreant.git","svn_url":"https://github.com/insomnia-lab/libreant","homepage":null,"size":1302,"stargazers_count":8,"watchers_count":8,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":44,"forks":8,"open_issues":44,"watchers":8,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196"},"html":{"href":"https://github.com/insomnia-lab/libreant/pull/196"},"issue":{"href":"https://api.github.com/repos/insomnia-lab/libreant/issues/196"},"comments":{"href":"https://api.github.com/repos/insomnia-lab/libreant/issues/196/comments"},"review_comments":{"href":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196/comments"},"review_comment":{"href":"https://api.github.com/repos/insomnia-lab/libreant/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/insomnia-lab/libreant/pulls/196/commits"},"statuses":{"href":"https://api.github.com/repos/insomnia-lab/libreant/statuses/afe70f5dc9fa925c8fd81ba0c3804ec74998d8c4"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"commits":8,"additions":898,"deletions":42,"changed_files":12}}