{"action":"created","comment":{"url":"https://api.github.com/repos/Codeception/Codeception/pulls/comments/61061831","id":61061831,"diff_hunk":"@@ -0,0 +1,1304 @@\n+<?php\n+\n+namespace Codeception\\Lib\\Driver;\n+\n+use Redis;\n+use Exception;\n+use RedisException;\n+\n+/**\n+ * Credis_Client (a fork of Redisent)\n+ *\n+ * Most commands are compatible with phpredis library:\n+ *   - use \"pipeline()\" to start a pipeline of commands instead of multi(Redis::PIPELINE)\n+ *   - any arrays passed as arguments will be flattened automatically\n+ *   - setOption and getOption are not supported in standalone mode\n+ *   - order of arguments follows redis-cli instead of phpredis where they differ (lrem)\n+ *\n+ * - Uses phpredis library if extension is installed for better performance.\n+ * - Establishes connection lazily.\n+ * - Supports tcp and unix sockets.\n+ * - Reconnects automatically unless a watch or transaction is in progress.\n+ * - Can set automatic retry connection attempts for iffy Redis connections.\n+ *\n+ * @author Colin Mollenhour <colin@mollenhour.com>\n+ * @copyright 2011 Colin Mollenhour <colin@mollenhour.com>\n+ * @license http://www.opensource.org/licenses/mit-license.php The MIT License\n+ * @package Credis_Client\n+ */\n+\n+if( ! defined('CRLF')) define('CRLF', sprintf('%s%s', chr(13), chr(10)));\n+\n+/**\n+ * Credis-specific errors, wraps native Redis errors\n+ */\n+class CredisException extends Exception\n+{\n+\n+    const CODE_TIMED_OUT = 1;\n+    const CODE_DISCONNECTED = 2;\n+\n+    public function __construct($message, $code = 0, $exception = NULL)","path":"src/Codeception/Lib/Driver/Credis_Client.php","position":41,"original_position":41,"commit_id":"29c8eb9ddba4c5acd8a35cbf4a4a8e8a386cb0e4","original_commit_id":"29c8eb9ddba4c5acd8a35cbf4a4a8e8a386cb0e4","user":{"login":"Nitpick-CI","id":12626182,"avatar_url":"https://avatars.githubusercontent.com/u/12626182?v=3","gravatar_id":"","url":"https://api.github.com/users/Nitpick-CI","html_url":"https://github.com/Nitpick-CI","followers_url":"https://api.github.com/users/Nitpick-CI/followers","following_url":"https://api.github.com/users/Nitpick-CI/following{/other_user}","gists_url":"https://api.github.com/users/Nitpick-CI/gists{/gist_id}","starred_url":"https://api.github.com/users/Nitpick-CI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nitpick-CI/subscriptions","organizations_url":"https://api.github.com/users/Nitpick-CI/orgs","repos_url":"https://api.github.com/users/Nitpick-CI/repos","events_url":"https://api.github.com/users/Nitpick-CI/events{/privacy}","received_events_url":"https://api.github.com/users/Nitpick-CI/received_events","type":"User","site_admin":false},"body":"TRUE, FALSE and NULL must be lowercase; expected `null` but found `NULL`","created_at":"2016-04-26T10:17:34Z","updated_at":"2016-04-26T10:17:34Z","html_url":"https://github.com/Codeception/Codeception/pull/3027#discussion_r61061831","pull_request_url":"https://api.github.com/repos/Codeception/Codeception/pulls/3027","_links":{"self":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/comments/61061831"},"html":{"href":"https://github.com/Codeception/Codeception/pull/3027#discussion_r61061831"},"pull_request":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/3027"}}},"pull_request":{"url":"https://api.github.com/repos/Codeception/Codeception/pulls/3027","id":67860209,"html_url":"https://github.com/Codeception/Codeception/pull/3027","diff_url":"https://github.com/Codeception/Codeception/pull/3027.diff","patch_url":"https://github.com/Codeception/Codeception/pull/3027.patch","issue_url":"https://api.github.com/repos/Codeception/Codeception/issues/3027","number":3027,"state":"open","locked":false,"title":"Replace Redis Module","user":{"login":"marcverney","id":6585350,"avatar_url":"https://avatars.githubusercontent.com/u/6585350?v=3","gravatar_id":"","url":"https://api.github.com/users/marcverney","html_url":"https://github.com/marcverney","followers_url":"https://api.github.com/users/marcverney/followers","following_url":"https://api.github.com/users/marcverney/following{/other_user}","gists_url":"https://api.github.com/users/marcverney/gists{/gist_id}","starred_url":"https://api.github.com/users/marcverney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcverney/subscriptions","organizations_url":"https://api.github.com/users/marcverney/orgs","repos_url":"https://api.github.com/users/marcverney/repos","events_url":"https://api.github.com/users/marcverney/events{/privacy}","received_events_url":"https://api.github.com/users/marcverney/received_events","type":"User","site_admin":false},"body":"This new version of the Redis module fixes issue #3026 by:\r\n\r\n- adding Actor methods for the most common interactions with a Redis server\r\n- using the [Credis client class](https://github.com/colinmollenhour/credis) as a driver. This project is much more complete and active than the [current driver](https://github.com/sash/php-redis)\r\n\r\nThe module itself is tested (cf the `RedisTest` class)\r\n\r\n","created_at":"2016-04-26T10:17:26Z","updated_at":"2016-04-26T10:17:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c56a6da22163a2c3cc1866a5874e5d29ffce9d60","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Codeception/Codeception/pulls/3027/commits","review_comments_url":"https://api.github.com/repos/Codeception/Codeception/pulls/3027/comments","review_comment_url":"https://api.github.com/repos/Codeception/Codeception/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Codeception/Codeception/issues/3027/comments","statuses_url":"https://api.github.com/repos/Codeception/Codeception/statuses/29c8eb9ddba4c5acd8a35cbf4a4a8e8a386cb0e4","head":{"label":"marcverney:new-redis-module","ref":"new-redis-module","sha":"29c8eb9ddba4c5acd8a35cbf4a4a8e8a386cb0e4","user":{"login":"marcverney","id":6585350,"avatar_url":"https://avatars.githubusercontent.com/u/6585350?v=3","gravatar_id":"","url":"https://api.github.com/users/marcverney","html_url":"https://github.com/marcverney","followers_url":"https://api.github.com/users/marcverney/followers","following_url":"https://api.github.com/users/marcverney/following{/other_user}","gists_url":"https://api.github.com/users/marcverney/gists{/gist_id}","starred_url":"https://api.github.com/users/marcverney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcverney/subscriptions","organizations_url":"https://api.github.com/users/marcverney/orgs","repos_url":"https://api.github.com/users/marcverney/repos","events_url":"https://api.github.com/users/marcverney/events{/privacy}","received_events_url":"https://api.github.com/users/marcverney/received_events","type":"User","site_admin":false},"repo":{"id":47204114,"name":"Codeception","full_name":"marcverney/Codeception","owner":{"login":"marcverney","id":6585350,"avatar_url":"https://avatars.githubusercontent.com/u/6585350?v=3","gravatar_id":"","url":"https://api.github.com/users/marcverney","html_url":"https://github.com/marcverney","followers_url":"https://api.github.com/users/marcverney/followers","following_url":"https://api.github.com/users/marcverney/following{/other_user}","gists_url":"https://api.github.com/users/marcverney/gists{/gist_id}","starred_url":"https://api.github.com/users/marcverney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcverney/subscriptions","organizations_url":"https://api.github.com/users/marcverney/orgs","repos_url":"https://api.github.com/users/marcverney/repos","events_url":"https://api.github.com/users/marcverney/events{/privacy}","received_events_url":"https://api.github.com/users/marcverney/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/marcverney/Codeception","description":"Full-stack testing PHP framework","fork":true,"url":"https://api.github.com/repos/marcverney/Codeception","forks_url":"https://api.github.com/repos/marcverney/Codeception/forks","keys_url":"https://api.github.com/repos/marcverney/Codeception/keys{/key_id}","collaborators_url":"https://api.github.com/repos/marcverney/Codeception/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/marcverney/Codeception/teams","hooks_url":"https://api.github.com/repos/marcverney/Codeception/hooks","issue_events_url":"https://api.github.com/repos/marcverney/Codeception/issues/events{/number}","events_url":"https://api.github.com/repos/marcverney/Codeception/events","assignees_url":"https://api.github.com/repos/marcverney/Codeception/assignees{/user}","branches_url":"https://api.github.com/repos/marcverney/Codeception/branches{/branch}","tags_url":"https://api.github.com/repos/marcverney/Codeception/tags","blobs_url":"https://api.github.com/repos/marcverney/Codeception/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/marcverney/Codeception/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/marcverney/Codeception/git/refs{/sha}","trees_url":"https://api.github.com/repos/marcverney/Codeception/git/trees{/sha}","statuses_url":"https://api.github.com/repos/marcverney/Codeception/statuses/{sha}","languages_url":"https://api.github.com/repos/marcverney/Codeception/languages","stargazers_url":"https://api.github.com/repos/marcverney/Codeception/stargazers","contributors_url":"https://api.github.com/repos/marcverney/Codeception/contributors","subscribers_url":"https://api.github.com/repos/marcverney/Codeception/subscribers","subscription_url":"https://api.github.com/repos/marcverney/Codeception/subscription","commits_url":"https://api.github.com/repos/marcverney/Codeception/commits{/sha}","git_commits_url":"https://api.github.com/repos/marcverney/Codeception/git/commits{/sha}","comments_url":"https://api.github.com/repos/marcverney/Codeception/comments{/number}","issue_comment_url":"https://api.github.com/repos/marcverney/Codeception/issues/comments{/number}","contents_url":"https://api.github.com/repos/marcverney/Codeception/contents/{+path}","compare_url":"https://api.github.com/repos/marcverney/Codeception/compare/{base}...{head}","merges_url":"https://api.github.com/repos/marcverney/Codeception/merges","archive_url":"https://api.github.com/repos/marcverney/Codeception/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/marcverney/Codeception/downloads","issues_url":"https://api.github.com/repos/marcverney/Codeception/issues{/number}","pulls_url":"https://api.github.com/repos/marcverney/Codeception/pulls{/number}","milestones_url":"https://api.github.com/repos/marcverney/Codeception/milestones{/number}","notifications_url":"https://api.github.com/repos/marcverney/Codeception/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/marcverney/Codeception/labels{/name}","releases_url":"https://api.github.com/repos/marcverney/Codeception/releases{/id}","deployments_url":"https://api.github.com/repos/marcverney/Codeception/deployments","created_at":"2015-12-01T16:58:20Z","updated_at":"2015-12-01T16:58:25Z","pushed_at":"2016-04-26T09:55:07Z","git_url":"git://github.com/marcverney/Codeception.git","ssh_url":"git@github.com:marcverney/Codeception.git","clone_url":"https://github.com/marcverney/Codeception.git","svn_url":"https://github.com/marcverney/Codeception","homepage":"http://codeception.com","size":62717,"stargazers_count":0,"watchers_count":0,"language":"PHP","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":"2.1"}},"base":{"label":"Codeception:master","ref":"master","sha":"d4d5dcb3653d8ec343b8effa460f4a717e2bf5b7","user":{"login":"Codeception","id":1288753,"avatar_url":"https://avatars.githubusercontent.com/u/1288753?v=3","gravatar_id":"","url":"https://api.github.com/users/Codeception","html_url":"https://github.com/Codeception","followers_url":"https://api.github.com/users/Codeception/followers","following_url":"https://api.github.com/users/Codeception/following{/other_user}","gists_url":"https://api.github.com/users/Codeception/gists{/gist_id}","starred_url":"https://api.github.com/users/Codeception/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Codeception/subscriptions","organizations_url":"https://api.github.com/users/Codeception/orgs","repos_url":"https://api.github.com/users/Codeception/repos","events_url":"https://api.github.com/users/Codeception/events{/privacy}","received_events_url":"https://api.github.com/users/Codeception/received_events","type":"Organization","site_admin":false},"repo":{"id":2880469,"name":"Codeception","full_name":"Codeception/Codeception","owner":{"login":"Codeception","id":1288753,"avatar_url":"https://avatars.githubusercontent.com/u/1288753?v=3","gravatar_id":"","url":"https://api.github.com/users/Codeception","html_url":"https://github.com/Codeception","followers_url":"https://api.github.com/users/Codeception/followers","following_url":"https://api.github.com/users/Codeception/following{/other_user}","gists_url":"https://api.github.com/users/Codeception/gists{/gist_id}","starred_url":"https://api.github.com/users/Codeception/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Codeception/subscriptions","organizations_url":"https://api.github.com/users/Codeception/orgs","repos_url":"https://api.github.com/users/Codeception/repos","events_url":"https://api.github.com/users/Codeception/events{/privacy}","received_events_url":"https://api.github.com/users/Codeception/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Codeception/Codeception","description":"Full-stack testing PHP framework","fork":false,"url":"https://api.github.com/repos/Codeception/Codeception","forks_url":"https://api.github.com/repos/Codeception/Codeception/forks","keys_url":"https://api.github.com/repos/Codeception/Codeception/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Codeception/Codeception/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Codeception/Codeception/teams","hooks_url":"https://api.github.com/repos/Codeception/Codeception/hooks","issue_events_url":"https://api.github.com/repos/Codeception/Codeception/issues/events{/number}","events_url":"https://api.github.com/repos/Codeception/Codeception/events","assignees_url":"https://api.github.com/repos/Codeception/Codeception/assignees{/user}","branches_url":"https://api.github.com/repos/Codeception/Codeception/branches{/branch}","tags_url":"https://api.github.com/repos/Codeception/Codeception/tags","blobs_url":"https://api.github.com/repos/Codeception/Codeception/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Codeception/Codeception/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Codeception/Codeception/git/refs{/sha}","trees_url":"https://api.github.com/repos/Codeception/Codeception/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Codeception/Codeception/statuses/{sha}","languages_url":"https://api.github.com/repos/Codeception/Codeception/languages","stargazers_url":"https://api.github.com/repos/Codeception/Codeception/stargazers","contributors_url":"https://api.github.com/repos/Codeception/Codeception/contributors","subscribers_url":"https://api.github.com/repos/Codeception/Codeception/subscribers","subscription_url":"https://api.github.com/repos/Codeception/Codeception/subscription","commits_url":"https://api.github.com/repos/Codeception/Codeception/commits{/sha}","git_commits_url":"https://api.github.com/repos/Codeception/Codeception/git/commits{/sha}","comments_url":"https://api.github.com/repos/Codeception/Codeception/comments{/number}","issue_comment_url":"https://api.github.com/repos/Codeception/Codeception/issues/comments{/number}","contents_url":"https://api.github.com/repos/Codeception/Codeception/contents/{+path}","compare_url":"https://api.github.com/repos/Codeception/Codeception/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Codeception/Codeception/merges","archive_url":"https://api.github.com/repos/Codeception/Codeception/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Codeception/Codeception/downloads","issues_url":"https://api.github.com/repos/Codeception/Codeception/issues{/number}","pulls_url":"https://api.github.com/repos/Codeception/Codeception/pulls{/number}","milestones_url":"https://api.github.com/repos/Codeception/Codeception/milestones{/number}","notifications_url":"https://api.github.com/repos/Codeception/Codeception/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Codeception/Codeception/labels{/name}","releases_url":"https://api.github.com/repos/Codeception/Codeception/releases{/id}","deployments_url":"https://api.github.com/repos/Codeception/Codeception/deployments","created_at":"2011-11-30T04:06:44Z","updated_at":"2016-04-25T22:43:04Z","pushed_at":"2016-04-26T10:17:28Z","git_url":"git://github.com/Codeception/Codeception.git","ssh_url":"git@github.com:Codeception/Codeception.git","clone_url":"https://github.com/Codeception/Codeception.git","svn_url":"https://github.com/Codeception/Codeception","homepage":"http://codeception.com","size":69711,"stargazers_count":2124,"watchers_count":2124,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":801,"mirror_url":null,"open_issues_count":267,"forks":801,"open_issues":267,"watchers":2124,"default_branch":"2.1"}},"_links":{"self":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/3027"},"html":{"href":"https://github.com/Codeception/Codeception/pull/3027"},"issue":{"href":"https://api.github.com/repos/Codeception/Codeception/issues/3027"},"comments":{"href":"https://api.github.com/repos/Codeception/Codeception/issues/3027/comments"},"review_comments":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/3027/comments"},"review_comment":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Codeception/Codeception/pulls/3027/commits"},"statuses":{"href":"https://api.github.com/repos/Codeception/Codeception/statuses/29c8eb9ddba4c5acd8a35cbf4a4a8e8a386cb0e4"}}}}