{"action":"closed","number":240,"pull_request":{"url":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240","id":34734276,"html_url":"https://github.com/webSPELL/webSPELL/pull/240","diff_url":"https://github.com/webSPELL/webSPELL/pull/240.diff","patch_url":"https://github.com/webSPELL/webSPELL/pull/240.patch","issue_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/240","number":240,"state":"closed","locked":false,"title":"fix(login): be safe against timing attacks, closes #237","user":{"login":"Phhere","id":1415280,"avatar_url":"https://avatars.githubusercontent.com/u/1415280?v=3","gravatar_id":"","url":"https://api.github.com/users/Phhere","html_url":"https://github.com/Phhere","followers_url":"https://api.github.com/users/Phhere/followers","following_url":"https://api.github.com/users/Phhere/following{/other_user}","gists_url":"https://api.github.com/users/Phhere/gists{/gist_id}","starred_url":"https://api.github.com/users/Phhere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Phhere/subscriptions","organizations_url":"https://api.github.com/users/Phhere/orgs","repos_url":"https://api.github.com/users/Phhere/repos","events_url":"https://api.github.com/users/Phhere/events{/privacy}","received_events_url":"https://api.github.com/users/Phhere/received_events","type":"User","site_admin":false},"body":"<a href='#crh-start'></a><a href='#crh-data-%7B%22approved%22%3A%20%7B%22https%3A//github.com/Pascalmh%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/498197%3Fv%3D3%22%7D%7D%2C%20%22comments%22%3A%20%7B%22General%20Comment%22%3A%20%7B%22html_url%22%3A%20%22https%3A//github.com/webSPELL/webSPELL/pull/240%23issuecomment-99356116%22%2C%20%22comments%22%3A%20%5B%7B%22body%22%3A%20%22%3Ashipit%3A%22%2C%20%22created_at%22%3A%20%222015-05-06T07%3A38%3A48Z%22%2C%20%22user%22%3A%20%7B%22avatar_url%22%3A%20%22https%3A//avatars.githubusercontent.com/u/498197%3Fv%3D3%22%2C%20%22html_url%22%3A%20%22https%3A//github.com/Pascalmh%22%7D%7D%5D%2C%20%22title%22%3A%20%22General%20Comment%22%7D%7D%2C%20%22processed%22%3A%20%5B%22https%3A//github.com/webSPELL/webSPELL/pull/240%23issuecomment-99356116%22%5D%7D'></a>\r\n<a href='https://www.codereviewhub.com/'><img src='http://www.codereviewhub.com/site/github-bar.png' height=40></a>\r\n\r\n<img src='http://www.codereviewhub.com/site/github-approved-avatar.png'><a href='https://github.com/Pascalmh'><img src='https://avatars.githubusercontent.com/u/498197?v=3' width=34 height=34></a>\r\n\r\n<a href='https://www.codereviewhub.com/webSPELL/webSPELL/pull/240?approve=1'><img src='http://www.codereviewhub.com/site/github-approve.png' height=26></a>&nbsp;<a href='https://www.codereviewhub.com/webSPELL/webSPELL/pull/240?approve=0'><img src='http://www.codereviewhub.com/site/github-undo-approve.png' height=26></a>&nbsp;<a href='https://github.com/webSPELL/webSPELL/pull/240'><img src='http://www.codereviewhub.com/site/github-refresh.png' height=26></a>\r\n<a href='#crh-end'></a>\r\n\r\nref #239 ","created_at":"2015-05-05T15:12:59Z","updated_at":"2015-05-06T12:18:10Z","closed_at":"2015-05-06T12:18:10Z","merged_at":"2015-05-06T12:18:10Z","merge_commit_sha":"5428fdae2ba314b27b37992a5fba35a1b328d366","assignee":null,"milestone":{"url":"https://api.github.com/repos/webSPELL/webSPELL/milestones/1","html_url":"https://github.com/webSPELL/webSPELL/milestones/webSPELL%204.3","labels_url":"https://api.github.com/repos/webSPELL/webSPELL/milestones/1/labels","id":519019,"number":1,"title":"webSPELL 4.3","description":"","creator":{"login":"Phhere","id":1415280,"avatar_url":"https://avatars.githubusercontent.com/u/1415280?v=3","gravatar_id":"","url":"https://api.github.com/users/Phhere","html_url":"https://github.com/Phhere","followers_url":"https://api.github.com/users/Phhere/followers","following_url":"https://api.github.com/users/Phhere/following{/other_user}","gists_url":"https://api.github.com/users/Phhere/gists{/gist_id}","starred_url":"https://api.github.com/users/Phhere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Phhere/subscriptions","organizations_url":"https://api.github.com/users/Phhere/orgs","repos_url":"https://api.github.com/users/Phhere/repos","events_url":"https://api.github.com/users/Phhere/events{/privacy}","received_events_url":"https://api.github.com/users/Phhere/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":94,"state":"open","created_at":"2013-12-21T12:57:46Z","updated_at":"2015-05-06T12:18:10Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240/commits","review_comments_url":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240/comments","review_comment_url":"https://api.github.com/repos/webSPELL/webSPELL/pulls/comments{/number}","comments_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/240/comments","statuses_url":"https://api.github.com/repos/webSPELL/webSPELL/statuses/f4513dec8e41aeae04ce25f21bb605bb7af947cd","head":{"label":"webSPELL:password_compare","ref":"password_compare","sha":"f4513dec8e41aeae04ce25f21bb605bb7af947cd","user":{"login":"webSPELL","id":1416829,"avatar_url":"https://avatars.githubusercontent.com/u/1416829?v=3","gravatar_id":"","url":"https://api.github.com/users/webSPELL","html_url":"https://github.com/webSPELL","followers_url":"https://api.github.com/users/webSPELL/followers","following_url":"https://api.github.com/users/webSPELL/following{/other_user}","gists_url":"https://api.github.com/users/webSPELL/gists{/gist_id}","starred_url":"https://api.github.com/users/webSPELL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webSPELL/subscriptions","organizations_url":"https://api.github.com/users/webSPELL/orgs","repos_url":"https://api.github.com/users/webSPELL/repos","events_url":"https://api.github.com/users/webSPELL/events{/privacy}","received_events_url":"https://api.github.com/users/webSPELL/received_events","type":"Organization","site_admin":false},"repo":{"id":3387889,"name":"webSPELL","full_name":"webSPELL/webSPELL","owner":{"login":"webSPELL","id":1416829,"avatar_url":"https://avatars.githubusercontent.com/u/1416829?v=3","gravatar_id":"","url":"https://api.github.com/users/webSPELL","html_url":"https://github.com/webSPELL","followers_url":"https://api.github.com/users/webSPELL/followers","following_url":"https://api.github.com/users/webSPELL/following{/other_user}","gists_url":"https://api.github.com/users/webSPELL/gists{/gist_id}","starred_url":"https://api.github.com/users/webSPELL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webSPELL/subscriptions","organizations_url":"https://api.github.com/users/webSPELL/orgs","repos_url":"https://api.github.com/users/webSPELL/repos","events_url":"https://api.github.com/users/webSPELL/events{/privacy}","received_events_url":"https://api.github.com/users/webSPELL/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/webSPELL/webSPELL","description":"webSPELL is a free Content Management System which was especially developed for the needs of esport related communities.","fork":false,"url":"https://api.github.com/repos/webSPELL/webSPELL","forks_url":"https://api.github.com/repos/webSPELL/webSPELL/forks","keys_url":"https://api.github.com/repos/webSPELL/webSPELL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/webSPELL/webSPELL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/webSPELL/webSPELL/teams","hooks_url":"https://api.github.com/repos/webSPELL/webSPELL/hooks","issue_events_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/events{/number}","events_url":"https://api.github.com/repos/webSPELL/webSPELL/events","assignees_url":"https://api.github.com/repos/webSPELL/webSPELL/assignees{/user}","branches_url":"https://api.github.com/repos/webSPELL/webSPELL/branches{/branch}","tags_url":"https://api.github.com/repos/webSPELL/webSPELL/tags","blobs_url":"https://api.github.com/repos/webSPELL/webSPELL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/webSPELL/webSPELL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/webSPELL/webSPELL/git/refs{/sha}","trees_url":"https://api.github.com/repos/webSPELL/webSPELL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/webSPELL/webSPELL/statuses/{sha}","languages_url":"https://api.github.com/repos/webSPELL/webSPELL/languages","stargazers_url":"https://api.github.com/repos/webSPELL/webSPELL/stargazers","contributors_url":"https://api.github.com/repos/webSPELL/webSPELL/contributors","subscribers_url":"https://api.github.com/repos/webSPELL/webSPELL/subscribers","subscription_url":"https://api.github.com/repos/webSPELL/webSPELL/subscription","commits_url":"https://api.github.com/repos/webSPELL/webSPELL/commits{/sha}","git_commits_url":"https://api.github.com/repos/webSPELL/webSPELL/git/commits{/sha}","comments_url":"https://api.github.com/repos/webSPELL/webSPELL/comments{/number}","issue_comment_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/comments{/number}","contents_url":"https://api.github.com/repos/webSPELL/webSPELL/contents/{+path}","compare_url":"https://api.github.com/repos/webSPELL/webSPELL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/webSPELL/webSPELL/merges","archive_url":"https://api.github.com/repos/webSPELL/webSPELL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/webSPELL/webSPELL/downloads","issues_url":"https://api.github.com/repos/webSPELL/webSPELL/issues{/number}","pulls_url":"https://api.github.com/repos/webSPELL/webSPELL/pulls{/number}","milestones_url":"https://api.github.com/repos/webSPELL/webSPELL/milestones{/number}","notifications_url":"https://api.github.com/repos/webSPELL/webSPELL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/webSPELL/webSPELL/labels{/name}","releases_url":"https://api.github.com/repos/webSPELL/webSPELL/releases{/id}","created_at":"2012-02-08T14:26:43Z","updated_at":"2015-05-05T17:55:45Z","pushed_at":"2015-05-06T12:18:10Z","git_url":"git://github.com/webSPELL/webSPELL.git","ssh_url":"git@github.com:webSPELL/webSPELL.git","clone_url":"https://github.com/webSPELL/webSPELL.git","svn_url":"https://github.com/webSPELL/webSPELL","homepage":"http://www.webspell.org","size":65126,"stargazers_count":18,"watchers_count":18,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":28,"mirror_url":null,"open_issues_count":24,"forks":28,"open_issues":24,"watchers":18,"default_branch":"dev"}},"base":{"label":"webSPELL:dev","ref":"dev","sha":"7c349e57f77a21546b4cdd01ceb4e2a2da2ca03f","user":{"login":"webSPELL","id":1416829,"avatar_url":"https://avatars.githubusercontent.com/u/1416829?v=3","gravatar_id":"","url":"https://api.github.com/users/webSPELL","html_url":"https://github.com/webSPELL","followers_url":"https://api.github.com/users/webSPELL/followers","following_url":"https://api.github.com/users/webSPELL/following{/other_user}","gists_url":"https://api.github.com/users/webSPELL/gists{/gist_id}","starred_url":"https://api.github.com/users/webSPELL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webSPELL/subscriptions","organizations_url":"https://api.github.com/users/webSPELL/orgs","repos_url":"https://api.github.com/users/webSPELL/repos","events_url":"https://api.github.com/users/webSPELL/events{/privacy}","received_events_url":"https://api.github.com/users/webSPELL/received_events","type":"Organization","site_admin":false},"repo":{"id":3387889,"name":"webSPELL","full_name":"webSPELL/webSPELL","owner":{"login":"webSPELL","id":1416829,"avatar_url":"https://avatars.githubusercontent.com/u/1416829?v=3","gravatar_id":"","url":"https://api.github.com/users/webSPELL","html_url":"https://github.com/webSPELL","followers_url":"https://api.github.com/users/webSPELL/followers","following_url":"https://api.github.com/users/webSPELL/following{/other_user}","gists_url":"https://api.github.com/users/webSPELL/gists{/gist_id}","starred_url":"https://api.github.com/users/webSPELL/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webSPELL/subscriptions","organizations_url":"https://api.github.com/users/webSPELL/orgs","repos_url":"https://api.github.com/users/webSPELL/repos","events_url":"https://api.github.com/users/webSPELL/events{/privacy}","received_events_url":"https://api.github.com/users/webSPELL/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/webSPELL/webSPELL","description":"webSPELL is a free Content Management System which was especially developed for the needs of esport related communities.","fork":false,"url":"https://api.github.com/repos/webSPELL/webSPELL","forks_url":"https://api.github.com/repos/webSPELL/webSPELL/forks","keys_url":"https://api.github.com/repos/webSPELL/webSPELL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/webSPELL/webSPELL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/webSPELL/webSPELL/teams","hooks_url":"https://api.github.com/repos/webSPELL/webSPELL/hooks","issue_events_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/events{/number}","events_url":"https://api.github.com/repos/webSPELL/webSPELL/events","assignees_url":"https://api.github.com/repos/webSPELL/webSPELL/assignees{/user}","branches_url":"https://api.github.com/repos/webSPELL/webSPELL/branches{/branch}","tags_url":"https://api.github.com/repos/webSPELL/webSPELL/tags","blobs_url":"https://api.github.com/repos/webSPELL/webSPELL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/webSPELL/webSPELL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/webSPELL/webSPELL/git/refs{/sha}","trees_url":"https://api.github.com/repos/webSPELL/webSPELL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/webSPELL/webSPELL/statuses/{sha}","languages_url":"https://api.github.com/repos/webSPELL/webSPELL/languages","stargazers_url":"https://api.github.com/repos/webSPELL/webSPELL/stargazers","contributors_url":"https://api.github.com/repos/webSPELL/webSPELL/contributors","subscribers_url":"https://api.github.com/repos/webSPELL/webSPELL/subscribers","subscription_url":"https://api.github.com/repos/webSPELL/webSPELL/subscription","commits_url":"https://api.github.com/repos/webSPELL/webSPELL/commits{/sha}","git_commits_url":"https://api.github.com/repos/webSPELL/webSPELL/git/commits{/sha}","comments_url":"https://api.github.com/repos/webSPELL/webSPELL/comments{/number}","issue_comment_url":"https://api.github.com/repos/webSPELL/webSPELL/issues/comments{/number}","contents_url":"https://api.github.com/repos/webSPELL/webSPELL/contents/{+path}","compare_url":"https://api.github.com/repos/webSPELL/webSPELL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/webSPELL/webSPELL/merges","archive_url":"https://api.github.com/repos/webSPELL/webSPELL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/webSPELL/webSPELL/downloads","issues_url":"https://api.github.com/repos/webSPELL/webSPELL/issues{/number}","pulls_url":"https://api.github.com/repos/webSPELL/webSPELL/pulls{/number}","milestones_url":"https://api.github.com/repos/webSPELL/webSPELL/milestones{/number}","notifications_url":"https://api.github.com/repos/webSPELL/webSPELL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/webSPELL/webSPELL/labels{/name}","releases_url":"https://api.github.com/repos/webSPELL/webSPELL/releases{/id}","created_at":"2012-02-08T14:26:43Z","updated_at":"2015-05-05T17:55:45Z","pushed_at":"2015-05-06T12:18:10Z","git_url":"git://github.com/webSPELL/webSPELL.git","ssh_url":"git@github.com:webSPELL/webSPELL.git","clone_url":"https://github.com/webSPELL/webSPELL.git","svn_url":"https://github.com/webSPELL/webSPELL","homepage":"http://www.webspell.org","size":65126,"stargazers_count":18,"watchers_count":18,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":28,"mirror_url":null,"open_issues_count":24,"forks":28,"open_issues":24,"watchers":18,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240"},"html":{"href":"https://github.com/webSPELL/webSPELL/pull/240"},"issue":{"href":"https://api.github.com/repos/webSPELL/webSPELL/issues/240"},"comments":{"href":"https://api.github.com/repos/webSPELL/webSPELL/issues/240/comments"},"review_comments":{"href":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240/comments"},"review_comment":{"href":"https://api.github.com/repos/webSPELL/webSPELL/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/webSPELL/webSPELL/pulls/240/commits"},"statuses":{"href":"https://api.github.com/repos/webSPELL/webSPELL/statuses/f4513dec8e41aeae04ce25f21bb605bb7af947cd"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"Pascalmh","id":498197,"avatar_url":"https://avatars.githubusercontent.com/u/498197?v=3","gravatar_id":"","url":"https://api.github.com/users/Pascalmh","html_url":"https://github.com/Pascalmh","followers_url":"https://api.github.com/users/Pascalmh/followers","following_url":"https://api.github.com/users/Pascalmh/following{/other_user}","gists_url":"https://api.github.com/users/Pascalmh/gists{/gist_id}","starred_url":"https://api.github.com/users/Pascalmh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pascalmh/subscriptions","organizations_url":"https://api.github.com/users/Pascalmh/orgs","repos_url":"https://api.github.com/users/Pascalmh/repos","events_url":"https://api.github.com/users/Pascalmh/events{/privacy}","received_events_url":"https://api.github.com/users/Pascalmh/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":1,"additions":27,"deletions":3,"changed_files":3}}