{"action":"created","comment":{"url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/comments/26651453","id":26651453,"diff_hunk":"@@ -0,0 +1,314 @@\n+<?php\n+\n+class Form_validation_test extends CI_TestCase {\n+    \n+    public function set_up()\n+    {          \n+        $_SERVER['REQUEST_METHOD'] = 'POST';\n+        \n+        // Create a mock loader since load->helper() looks in the wrong directories for unit tests,\n+        // We'll use CI_TestCase->helper() instead\n+        $ldr = $this->getMock('CI_Loader', array('helper'));\n+        // At current, CI_Form_Validation only calls load->helper(\"form\")\n+        // Assert this so that if that changes this fails fast\n+        $ldr->expects($this->once())\n+                ->method('helper')\n+                ->with($this->equalTo('form'));\n+        \n+        // Same applies for lang\n+        $lang = $this->getMock('CI_Lang', array('load'));\n+        \n+        // Setup CI_Input\n+        // Set config for Input class\n+        $this->ci_set_config('allow_get_array',\tTRUE);\n+        $this->ci_set_config('global_xss_filtering', FALSE);\n+        $this->ci_set_config('csrf_protection', FALSE);\n+\n+        $security = new Mock_Core_Security();\n+\n+        $this->ci_set_config('charset', 'UTF-8');\n+        $utf8 = new Mock_Core_Utf8();\n+\n+        $inp = new Mock_Core_Input($security, $utf8);\n+        \n+        $this->ci_instance_var('lang', $lang);\n+        $this->ci_instance_var('load', $ldr);\n+        $this->ci_instance_var('input', $inp);\n+        \n+        $this->lang('form_validation');\n+        $this->helper('form');\n+        \n+        $this->form_validation = new CI_Form_validation();\n+    }\n+    \n+    public function test___construct()\n+    {\n+        $this->assertNotNull($this->form_validation);\n+    }\n+    \n+    public function test_rule_required()\n+    {\n+        $this->assertTrue($this->run_rule('required', ' someValue'));\n+        \n+        $this->assertFalse($this->run_rule('required', ''));\n+        $this->assertFalse($this->run_rule('required', ' '));\n+    }\n+    \n+    public function test_rule_matches()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('matches[sample]', ''));\n+        $this->assertTrue($this->run_rule('matches[s]', 's'));\n+        \n+        $this->assertFalse($this->run_rule('matches[Sample]', 'sample'));\n+        $this->assertFalse($this->run_rule('matches[sample]', ' sample'));\n+    }\n+    \n+    public function test_rule_differs()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('differs[sample]', ''));\n+        $this->assertTrue($this->run_rule('differs[sample]', 'Sample'));\n+        $this->assertTrue($this->run_rule('differs[sample]', ' sample'));\n+        \n+        $this->assertFalse($this->run_rule('differs[sample]', 'sample'));\n+    }\n+    \n+    public function test_rule_min_length()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('min_length[34]', ''));\n+        $this->assertTrue($this->run_rule('min_length[2]', '12'));\n+        $this->assertTrue($this->run_rule('min_length[2]', ' 2'));\n+        \n+        $this->assertFalse($this->run_rule('min_length[2]', '1'));\n+        $this->assertFalse($this->run_rule('min_length[4]|required', ''));\n+    }\n+    \n+    public function test_rule_max_length()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('max_length[4]', ''));\n+        $this->assertTrue($this->run_rule('max_length[4]', '1234'));\n+        \n+        $this->assertFalse($this->run_rule('max_length[4]', '12345'));\n+    }\n+    \n+    public function test_rule_exact_length()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('exact_length[4]', ''));\n+        $this->assertTrue($this->run_rule('exact_length[4]', '1234'));\n+        \n+        $this->assertFalse($this->run_rule('exact_length[4]', '123'));\n+        $this->assertFalse($this->run_rule('exact_length[4]', '12345'));\n+    }\n+    \n+    public function test_rule_greater_than()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('greater_than[-10]', ''));\n+        $this->assertTrue($this->run_rule('greater_than[-10]', '-9'));\n+        \n+        $this->assertFalse($this->run_rule('greater_than[-10]', '-99'));\n+        $this->assertFalse($this->run_rule('greater_than[-10]', 'a'));\n+    }\n+    \n+    public function test_rule_greater_than_equal_to()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('greater_than_equal_to[0]', ''));\n+        $this->assertTrue($this->run_rule('greater_than_equal_to[0]', '0'));\n+        $this->assertTrue($this->run_rule('greater_than_equal_to[0]', '1'));\n+        \n+        $this->assertFalse($this->run_rule('greater_than_equal_to[0]', '-1'));\n+        $this->assertFalse($this->run_rule('greater_than_equal_to[0]', 'a'));\n+    }\n+    \n+    public function test_rule_less_than()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('less_than[0]', ''));\n+        $this->assertTrue($this->run_rule('less_than[0]', '-1'));\n+        \n+        $this->assertFalse($this->run_rule('less_than[0]', '0'));\n+        $this->assertFalse($this->run_rule('less_than[0]', 'a'));\n+    }\n+    \n+    public function test_rule_less_than_equal_to()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('less_than_equal_to[0]', ''));\n+        $this->assertTrue($this->run_rule('less_than_equal_to[0]', '-1'));\n+        $this->assertTrue($this->run_rule('less_than_equal_to[0]', '0'));\n+        \n+        $this->assertFalse($this->run_rule('less_than_equal_to[0]', '1'));\n+        $this->assertFalse($this->run_rule('less_than_equal_to[0]', 'a'));\n+    }\n+    \n+    public function test_rule_in_list()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('in_list[red,Blue,123]', ''));\n+        $this->assertTrue($this->run_rule('in_list[red,Blue,123]', 'red'));\n+        $this->assertTrue($this->run_rule('in_list[red,Blue,123]', 'Blue'));\n+        $this->assertTrue($this->run_rule('in_list[red,Blue,123]', '123'));\n+        \n+        $this->assertFalse($this->run_rule('in_list[red,Blue,123]', 'Red'));\n+        $this->assertFalse($this->run_rule('in_list[red,Blue,123]', 'blue'));\n+        $this->assertFalse($this->run_rule('in_list[red,Blue,123]', ' red'));\n+    }\n+    \n+    public function test_rule_alpha()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('alpha', ''));\n+        $this->assertTrue($this->run_rule('alpha', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ'));\n+        \n+        $this->assertFalse($this->run_rule('alpha', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ '));\n+        $this->assertFalse($this->run_rule('alpha', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ1'));\n+        $this->assertFalse($this->run_rule('alpha', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ*'));\n+    }\n+    \n+    public function test_rule_alpha_numeric()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('alpha_numeric', ''));\n+        $this->assertTrue($this->run_rule('alpha_numeric', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789'));\n+        \n+        $this->assertFalse($this->run_rule('alpha_numeric', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789\\ '));\n+        $this->assertFalse($this->run_rule('alpha_numeric', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789_'));\n+    }\n+    \n+    public function test_rule_alpha_numeric_spaces()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('alpha_numeric_spaces', ''));\n+        $this->assertTrue($this->run_rule('alpha_numeric_spaces', ' abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789'));\n+        \n+        $this->assertFalse($this->run_rule('alpha_numeric_spaces', ' abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789_'));\n+    }\n+    \n+    public function test_rule_alpha_dash()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('alpha_dash', ''));\n+        $this->assertTrue($this->run_rule('alpha_dash', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789-_'));\n+        \n+        $this->assertFalse($this->run_rule('alpha_dash', 'abcdefghijklmnopqrstuvwxyzABCDEFGHLIJKLMNOPQRSTUVWXYZ0123456789-_\\ '));\n+    }\n+    \n+    public function test_rule_numeric()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('numeric', ''));\n+        $this->assertTrue($this->run_rule('numeric', '0'));\n+        $this->assertTrue($this->run_rule('numeric', '12314'));\n+        \n+        $this->assertFalse($this->run_rule('numeric', '123a'));\n+    }\n+    \n+    public function test_rule_integer()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('integer', ''));\n+        $this->assertTrue($this->run_rule('integer', '0'));\n+        $this->assertTrue($this->run_rule('integer', '42'));\n+        \n+        $this->assertFalse($this->run_rule('integer', '124a'));\n+        $this->assertFalse($this->run_rule('integer', '1.9'));\n+    }\n+    \n+    public function test_rule_decimal()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('decimal', ''));\n+        $this->assertTrue($this->run_rule('decimal', '1.0'));\n+        $this->assertTrue($this->run_rule('decimal', '0.98'));\n+        \n+        $this->assertFalse($this->run_rule('decimal', '1.0a'));\n+        $this->assertFalse($this->run_rule('decimal', '-i'));\n+    }   \n+    \n+    public function test_rule_is_natural()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('is_natural', ''));\n+        $this->assertTrue($this->run_rule('is_natural', '0'));\n+        $this->assertTrue($this->run_rule('is_natural', '12'));\n+        \n+        $this->assertFalse($this->run_rule('is_natural', '42a'));\n+    }\n+    \n+    public function test_rule_is_natural_no_zero()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('is_natural_no_zero', ''));\n+        $this->assertTrue($this->run_rule('is_natural_no_zero', '42'));\n+        \n+        $this->assertFalse($this->run_rule('is_natural_no_zero', '0'));\n+        $this->assertFalse($this->run_rule('is_natural_no_zero', '42a'));\n+    }\n+    \n+    public function test_rule_valid_url()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('valid_url', ''));\n+        $this->assertTrue($this->run_rule('valid_url', 'www.codeigniter.com'));\n+        $this->assertTrue($this->run_rule('valid_url', 'http://codeigniter.eu'));\n+   \n+        $this->assertFalse($this->run_rule('valid_url', 'codeigniter'));\n+    }\n+    \n+    public function test_rule_valid_email()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('valid_email', ''));\n+        $this->assertTrue($this->run_rule('valid_email', 'email@sample.com'));\n+        \n+        $this->assertFalse($this->run_rule('valid_email', '@sample.com'));\n+    }\n+    \n+    public function test_rule_valid_emails()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('valid_emails', ''));\n+        $this->assertTrue($this->run_rule('valid_emails', '1@sample.com,2@sample.com'));\n+        \n+        $this->assertFalse($this->run_rule('valid_emails', '@sample.com,2@sample.com,validemail@email.ca'));\n+    }\n+    \n+    public function test_rule_valid_ip()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('valid_ip', ''));\n+        $this->assertTrue($this->run_rule('valid_ip', '127.0.0.1'));\n+        $this->assertTrue($this->run_rule('valid_ip[ipv4]', '127.0.0.1'));\n+        $this->assertTrue($this->run_rule('valid_ip', '2001:0db8:85a3:0000:0000:8a2e:0370:7334'));\n+        $this->assertTrue($this->run_rule('valid_ip[ipv6]', '2001:0db8:85a3:0000:0000:8a2e:0370:7334'));\n+        \n+        $this->assertFalse($this->run_rule('valid_ip[ipv4]', '2001:0db8:85a3:0000:0000:8a2e:0370:7334'));\n+        $this->assertFalse($this->run_rule('valid_ip[ipv6]', '127.0.0.1'));\n+        $this->assertFalse($this->run_rule('valid_ip', 'H001:0db8:85a3:0000:0000:8a2e:0370:7334'));\n+        $this->assertFalse($this->run_rule('valid_ip', '127.0.0.259'));\n+    }\n+    \n+    public function test_rule_valid_base64()\n+    {\n+        // Empty input should pass any rule unless required is also specified\n+        $this->assertTrue($this->run_rule('valid_base64', ''));\n+        $this->assertTrue($this->run_rule('valid_base64', 'string'));","path":"tests/codeigniter/libraries/Form_validation_test.php","position":300,"original_position":300,"commit_id":"ce4237a6c48fc2538fcb149730c4f62a02dce849","original_commit_id":"ce4237a6c48fc2538fcb149730c4f62a02dce849","user":{"login":"narfbg","id":1058011,"avatar_url":"https://avatars.githubusercontent.com/u/1058011?v=3","gravatar_id":"","url":"https://api.github.com/users/narfbg","html_url":"https://github.com/narfbg","followers_url":"https://api.github.com/users/narfbg/followers","following_url":"https://api.github.com/users/narfbg/following{/other_user}","gists_url":"https://api.github.com/users/narfbg/gists{/gist_id}","starred_url":"https://api.github.com/users/narfbg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/narfbg/subscriptions","organizations_url":"https://api.github.com/users/narfbg/orgs","repos_url":"https://api.github.com/users/narfbg/repos","events_url":"https://api.github.com/users/narfbg/events{/privacy}","received_events_url":"https://api.github.com/users/narfbg/received_events","type":"User","site_admin":false},"body":"'string' is not a valid Base64-encoded string ...","created_at":"2015-03-18T10:24:01Z","updated_at":"2015-03-18T10:24:01Z","html_url":"https://github.com/bcit-ci/CodeIgniter/pull/3678#discussion_r26651453","pull_request_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678","_links":{"self":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/comments/26651453"},"html":{"href":"https://github.com/bcit-ci/CodeIgniter/pull/3678#discussion_r26651453"},"pull_request":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678"}}},"pull_request":{"url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678","id":31364554,"html_url":"https://github.com/bcit-ci/CodeIgniter/pull/3678","diff_url":"https://github.com/bcit-ci/CodeIgniter/pull/3678.diff","patch_url":"https://github.com/bcit-ci/CodeIgniter/pull/3678.patch","issue_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/3678","number":3678,"state":"open","locked":false,"title":"Added CI_Form_validation unit tests","user":{"login":"djwoods","id":5481264,"avatar_url":"https://avatars.githubusercontent.com/u/5481264?v=3","gravatar_id":"","url":"https://api.github.com/users/djwoods","html_url":"https://github.com/djwoods","followers_url":"https://api.github.com/users/djwoods/followers","following_url":"https://api.github.com/users/djwoods/following{/other_user}","gists_url":"https://api.github.com/users/djwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/djwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djwoods/subscriptions","organizations_url":"https://api.github.com/users/djwoods/orgs","repos_url":"https://api.github.com/users/djwoods/repos","events_url":"https://api.github.com/users/djwoods/events{/privacy}","received_events_url":"https://api.github.com/users/djwoods/received_events","type":"User","site_admin":false},"body":"Added setup and tests for all rules specified in the documentation.\r\nSeveral test cases currently fail. I'll create bug issues & fixes once this pull request is accepted.\r\n\r\nSigned off:\r\ndjwoods <d.woods92@gmail.com>","created_at":"2015-03-17T18:35:55Z","updated_at":"2015-03-18T10:24:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"565088e833d74e676885f0c0e7c29ef2d528dab3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678/commits","review_comments_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678/comments","review_comment_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/3678/comments","statuses_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/statuses/ce4237a6c48fc2538fcb149730c4f62a02dce849","head":{"label":"djwoods:unit-test/form-validation","ref":"unit-test/form-validation","sha":"ce4237a6c48fc2538fcb149730c4f62a02dce849","user":{"login":"djwoods","id":5481264,"avatar_url":"https://avatars.githubusercontent.com/u/5481264?v=3","gravatar_id":"","url":"https://api.github.com/users/djwoods","html_url":"https://github.com/djwoods","followers_url":"https://api.github.com/users/djwoods/followers","following_url":"https://api.github.com/users/djwoods/following{/other_user}","gists_url":"https://api.github.com/users/djwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/djwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djwoods/subscriptions","organizations_url":"https://api.github.com/users/djwoods/orgs","repos_url":"https://api.github.com/users/djwoods/repos","events_url":"https://api.github.com/users/djwoods/events{/privacy}","received_events_url":"https://api.github.com/users/djwoods/received_events","type":"User","site_admin":false},"repo":{"id":30947600,"name":"CodeIgniter","full_name":"djwoods/CodeIgniter","owner":{"login":"djwoods","id":5481264,"avatar_url":"https://avatars.githubusercontent.com/u/5481264?v=3","gravatar_id":"","url":"https://api.github.com/users/djwoods","html_url":"https://github.com/djwoods","followers_url":"https://api.github.com/users/djwoods/followers","following_url":"https://api.github.com/users/djwoods/following{/other_user}","gists_url":"https://api.github.com/users/djwoods/gists{/gist_id}","starred_url":"https://api.github.com/users/djwoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djwoods/subscriptions","organizations_url":"https://api.github.com/users/djwoods/orgs","repos_url":"https://api.github.com/users/djwoods/repos","events_url":"https://api.github.com/users/djwoods/events{/privacy}","received_events_url":"https://api.github.com/users/djwoods/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/djwoods/CodeIgniter","description":"Open Source PHP Framework (originally from EllisLab)","fork":true,"url":"https://api.github.com/repos/djwoods/CodeIgniter","forks_url":"https://api.github.com/repos/djwoods/CodeIgniter/forks","keys_url":"https://api.github.com/repos/djwoods/CodeIgniter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/djwoods/CodeIgniter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/djwoods/CodeIgniter/teams","hooks_url":"https://api.github.com/repos/djwoods/CodeIgniter/hooks","issue_events_url":"https://api.github.com/repos/djwoods/CodeIgniter/issues/events{/number}","events_url":"https://api.github.com/repos/djwoods/CodeIgniter/events","assignees_url":"https://api.github.com/repos/djwoods/CodeIgniter/assignees{/user}","branches_url":"https://api.github.com/repos/djwoods/CodeIgniter/branches{/branch}","tags_url":"https://api.github.com/repos/djwoods/CodeIgniter/tags","blobs_url":"https://api.github.com/repos/djwoods/CodeIgniter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/djwoods/CodeIgniter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/djwoods/CodeIgniter/git/refs{/sha}","trees_url":"https://api.github.com/repos/djwoods/CodeIgniter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/djwoods/CodeIgniter/statuses/{sha}","languages_url":"https://api.github.com/repos/djwoods/CodeIgniter/languages","stargazers_url":"https://api.github.com/repos/djwoods/CodeIgniter/stargazers","contributors_url":"https://api.github.com/repos/djwoods/CodeIgniter/contributors","subscribers_url":"https://api.github.com/repos/djwoods/CodeIgniter/subscribers","subscription_url":"https://api.github.com/repos/djwoods/CodeIgniter/subscription","commits_url":"https://api.github.com/repos/djwoods/CodeIgniter/commits{/sha}","git_commits_url":"https://api.github.com/repos/djwoods/CodeIgniter/git/commits{/sha}","comments_url":"https://api.github.com/repos/djwoods/CodeIgniter/comments{/number}","issue_comment_url":"https://api.github.com/repos/djwoods/CodeIgniter/issues/comments{/number}","contents_url":"https://api.github.com/repos/djwoods/CodeIgniter/contents/{+path}","compare_url":"https://api.github.com/repos/djwoods/CodeIgniter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/djwoods/CodeIgniter/merges","archive_url":"https://api.github.com/repos/djwoods/CodeIgniter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/djwoods/CodeIgniter/downloads","issues_url":"https://api.github.com/repos/djwoods/CodeIgniter/issues{/number}","pulls_url":"https://api.github.com/repos/djwoods/CodeIgniter/pulls{/number}","milestones_url":"https://api.github.com/repos/djwoods/CodeIgniter/milestones{/number}","notifications_url":"https://api.github.com/repos/djwoods/CodeIgniter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/djwoods/CodeIgniter/labels{/name}","releases_url":"https://api.github.com/repos/djwoods/CodeIgniter/releases{/id}","created_at":"2015-02-18T01:43:47Z","updated_at":"2015-03-16T18:44:15Z","pushed_at":"2015-03-17T18:28:11Z","git_url":"git://github.com/djwoods/CodeIgniter.git","ssh_url":"git@github.com:djwoods/CodeIgniter.git","clone_url":"https://github.com/djwoods/CodeIgniter.git","svn_url":"https://github.com/djwoods/CodeIgniter","homepage":"http://codeigniter.com/","size":39238,"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":"develop"}},"base":{"label":"bcit-ci:develop","ref":"develop","sha":"35514731f05c749526939de4812f5288ff3cc007","user":{"login":"bcit-ci","id":8863432,"avatar_url":"https://avatars.githubusercontent.com/u/8863432?v=3","gravatar_id":"","url":"https://api.github.com/users/bcit-ci","html_url":"https://github.com/bcit-ci","followers_url":"https://api.github.com/users/bcit-ci/followers","following_url":"https://api.github.com/users/bcit-ci/following{/other_user}","gists_url":"https://api.github.com/users/bcit-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/bcit-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcit-ci/subscriptions","organizations_url":"https://api.github.com/users/bcit-ci/orgs","repos_url":"https://api.github.com/users/bcit-ci/repos","events_url":"https://api.github.com/users/bcit-ci/events{/privacy}","received_events_url":"https://api.github.com/users/bcit-ci/received_events","type":"Organization","site_admin":false},"repo":{"id":2234102,"name":"CodeIgniter","full_name":"bcit-ci/CodeIgniter","owner":{"login":"bcit-ci","id":8863432,"avatar_url":"https://avatars.githubusercontent.com/u/8863432?v=3","gravatar_id":"","url":"https://api.github.com/users/bcit-ci","html_url":"https://github.com/bcit-ci","followers_url":"https://api.github.com/users/bcit-ci/followers","following_url":"https://api.github.com/users/bcit-ci/following{/other_user}","gists_url":"https://api.github.com/users/bcit-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/bcit-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcit-ci/subscriptions","organizations_url":"https://api.github.com/users/bcit-ci/orgs","repos_url":"https://api.github.com/users/bcit-ci/repos","events_url":"https://api.github.com/users/bcit-ci/events{/privacy}","received_events_url":"https://api.github.com/users/bcit-ci/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bcit-ci/CodeIgniter","description":"Open Source PHP Framework (originally from EllisLab)","fork":false,"url":"https://api.github.com/repos/bcit-ci/CodeIgniter","forks_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/forks","keys_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/teams","hooks_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/hooks","issue_events_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/events{/number}","events_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/events","assignees_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/assignees{/user}","branches_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/branches{/branch}","tags_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/tags","blobs_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/statuses/{sha}","languages_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/languages","stargazers_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/stargazers","contributors_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/contributors","subscribers_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/subscribers","subscription_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/subscription","commits_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/comments{/number}","contents_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/contents/{+path}","compare_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/merges","archive_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/downloads","issues_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues{/number}","pulls_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls{/number}","milestones_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/milestones{/number}","notifications_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/labels{/name}","releases_url":"https://api.github.com/repos/bcit-ci/CodeIgniter/releases{/id}","created_at":"2011-08-19T13:34:00Z","updated_at":"2015-03-18T09:55:29Z","pushed_at":"2015-03-17T09:32:00Z","git_url":"git://github.com/bcit-ci/CodeIgniter.git","ssh_url":"git@github.com:bcit-ci/CodeIgniter.git","clone_url":"https://github.com/bcit-ci/CodeIgniter.git","svn_url":"https://github.com/bcit-ci/CodeIgniter","homepage":"http://codeigniter.com/","size":70924,"stargazers_count":9488,"watchers_count":9488,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4866,"mirror_url":null,"open_issues_count":47,"forks":4866,"open_issues":47,"watchers":9488,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678"},"html":{"href":"https://github.com/bcit-ci/CodeIgniter/pull/3678"},"issue":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/3678"},"comments":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/issues/3678/comments"},"review_comments":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678/comments"},"review_comment":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/pulls/3678/commits"},"statuses":{"href":"https://api.github.com/repos/bcit-ci/CodeIgniter/statuses/ce4237a6c48fc2538fcb149730c4f62a02dce849"}}}}