{"action":"closed","number":13574,"pull_request":{"url":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574","id":228114440,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4MTE0NDQw","html_url":"https://github.com/phalcon/cphalcon/pull/13574","diff_url":"https://github.com/phalcon/cphalcon/pull/13574.diff","patch_url":"https://github.com/phalcon/cphalcon/pull/13574.patch","issue_url":"https://api.github.com/repos/phalcon/cphalcon/issues/13574","number":13574,"state":"closed","locked":false,"title":"Added a class used to validate ip address fields. It allows to valida…","user":{"login":"gguridi","id":6469520,"node_id":"MDQ6VXNlcjY0Njk1MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/6469520?v=4","gravatar_id":"","url":"https://api.github.com/users/gguridi","html_url":"https://github.com/gguridi","followers_url":"https://api.github.com/users/gguridi/followers","following_url":"https://api.github.com/users/gguridi/following{/other_user}","gists_url":"https://api.github.com/users/gguridi/gists{/gist_id}","starred_url":"https://api.github.com/users/gguridi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gguridi/subscriptions","organizations_url":"https://api.github.com/users/gguridi/orgs","repos_url":"https://api.github.com/users/gguridi/repos","events_url":"https://api.github.com/users/gguridi/events{/privacy}","received_events_url":"https://api.github.com/users/gguridi/received_events","type":"User","site_admin":false},"body":"…te a field selecting IPv4 or IPv4, allowing private or reserved ranges and empty values if necessary.\r\n\r\nHello!\r\n\r\n* Type: new feature\r\n* Link to issue:\r\n\r\n**In raising this pull request, I confirm the following (please check boxes):**\r\n\r\n- [x] I have read and understood the [Contributing Guidelines](https://github.com/phalcon/cphalcon/blob/master/CONTRIBUTING.md)?\r\n- [x] I have checked that another pull request for this purpose does not exist.\r\n- [x] I wrote some tests for this PR.\r\n\r\nSmall description of change:\r\n\r\n- This is a generic ip validator for general purposes. The MVC models have one but it couldn't be used for generic forms so I've created if with the unit tests associated. This PR is for the branch 4.0.x and it's the same as [PR 12513](https://github.com/phalcon/cphalcon/pull/12513)\r\n\r\nThanks\r\n\r\n","created_at":"2018-11-03T11:51:24Z","updated_at":"2018-12-21T23:10:13Z","closed_at":"2018-12-21T23:10:13Z","merged_at":"2018-12-21T23:10:13Z","merge_commit_sha":"332494ac7f8136d0f5f56830dc4e7348522c3bf4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":13573146,"node_id":"MDU6TGFiZWwxMzU3MzE0Ng==","url":"https://api.github.com/repos/phalcon/cphalcon/labels/New%20Feature%20Request","name":"New Feature Request","color":"0052cc","default":false}],"milestone":{"url":"https://api.github.com/repos/phalcon/cphalcon/milestones/21","html_url":"https://github.com/phalcon/cphalcon/milestone/21","labels_url":"https://api.github.com/repos/phalcon/cphalcon/milestones/21/labels","id":1912191,"node_id":"MDk6TWlsZXN0b25lMTkxMjE5MQ==","number":21,"title":"4.0.0","description":"","creator":{"login":"sergeyklay","id":1256298,"node_id":"MDQ6VXNlcjEyNTYyOTg=","avatar_url":"https://avatars2.githubusercontent.com/u/1256298?v=4","gravatar_id":"","url":"https://api.github.com/users/sergeyklay","html_url":"https://github.com/sergeyklay","followers_url":"https://api.github.com/users/sergeyklay/followers","following_url":"https://api.github.com/users/sergeyklay/following{/other_user}","gists_url":"https://api.github.com/users/sergeyklay/gists{/gist_id}","starred_url":"https://api.github.com/users/sergeyklay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sergeyklay/subscriptions","organizations_url":"https://api.github.com/users/sergeyklay/orgs","repos_url":"https://api.github.com/users/sergeyklay/repos","events_url":"https://api.github.com/users/sergeyklay/events{/privacy}","received_events_url":"https://api.github.com/users/sergeyklay/received_events","type":"User","site_admin":false},"open_issues":66,"closed_issues":101,"state":"open","created_at":"2016-07-29T16:36:07Z","updated_at":"2018-12-21T23:10:13Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574/commits","review_comments_url":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574/comments","review_comment_url":"https://api.github.com/repos/phalcon/cphalcon/pulls/comments{/number}","comments_url":"https://api.github.com/repos/phalcon/cphalcon/issues/13574/comments","statuses_url":"https://api.github.com/repos/phalcon/cphalcon/statuses/332494ac7f8136d0f5f56830dc4e7348522c3bf4","head":{"label":"gguridi:feature/ip-validator-4.0.x","ref":"feature/ip-validator-4.0.x","sha":"332494ac7f8136d0f5f56830dc4e7348522c3bf4","user":{"login":"gguridi","id":6469520,"node_id":"MDQ6VXNlcjY0Njk1MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/6469520?v=4","gravatar_id":"","url":"https://api.github.com/users/gguridi","html_url":"https://github.com/gguridi","followers_url":"https://api.github.com/users/gguridi/followers","following_url":"https://api.github.com/users/gguridi/following{/other_user}","gists_url":"https://api.github.com/users/gguridi/gists{/gist_id}","starred_url":"https://api.github.com/users/gguridi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gguridi/subscriptions","organizations_url":"https://api.github.com/users/gguridi/orgs","repos_url":"https://api.github.com/users/gguridi/repos","events_url":"https://api.github.com/users/gguridi/events{/privacy}","received_events_url":"https://api.github.com/users/gguridi/received_events","type":"User","site_admin":false},"repo":{"id":68111019,"node_id":"MDEwOlJlcG9zaXRvcnk2ODExMTAxOQ==","name":"cphalcon","full_name":"gguridi/cphalcon","private":false,"owner":{"login":"gguridi","id":6469520,"node_id":"MDQ6VXNlcjY0Njk1MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/6469520?v=4","gravatar_id":"","url":"https://api.github.com/users/gguridi","html_url":"https://github.com/gguridi","followers_url":"https://api.github.com/users/gguridi/followers","following_url":"https://api.github.com/users/gguridi/following{/other_user}","gists_url":"https://api.github.com/users/gguridi/gists{/gist_id}","starred_url":"https://api.github.com/users/gguridi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gguridi/subscriptions","organizations_url":"https://api.github.com/users/gguridi/orgs","repos_url":"https://api.github.com/users/gguridi/repos","events_url":"https://api.github.com/users/gguridi/events{/privacy}","received_events_url":"https://api.github.com/users/gguridi/received_events","type":"User","site_admin":false},"html_url":"https://github.com/gguridi/cphalcon","description":"Web framework delivered as a C-extension for PHP","fork":true,"url":"https://api.github.com/repos/gguridi/cphalcon","forks_url":"https://api.github.com/repos/gguridi/cphalcon/forks","keys_url":"https://api.github.com/repos/gguridi/cphalcon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gguridi/cphalcon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gguridi/cphalcon/teams","hooks_url":"https://api.github.com/repos/gguridi/cphalcon/hooks","issue_events_url":"https://api.github.com/repos/gguridi/cphalcon/issues/events{/number}","events_url":"https://api.github.com/repos/gguridi/cphalcon/events","assignees_url":"https://api.github.com/repos/gguridi/cphalcon/assignees{/user}","branches_url":"https://api.github.com/repos/gguridi/cphalcon/branches{/branch}","tags_url":"https://api.github.com/repos/gguridi/cphalcon/tags","blobs_url":"https://api.github.com/repos/gguridi/cphalcon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gguridi/cphalcon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gguridi/cphalcon/git/refs{/sha}","trees_url":"https://api.github.com/repos/gguridi/cphalcon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gguridi/cphalcon/statuses/{sha}","languages_url":"https://api.github.com/repos/gguridi/cphalcon/languages","stargazers_url":"https://api.github.com/repos/gguridi/cphalcon/stargazers","contributors_url":"https://api.github.com/repos/gguridi/cphalcon/contributors","subscribers_url":"https://api.github.com/repos/gguridi/cphalcon/subscribers","subscription_url":"https://api.github.com/repos/gguridi/cphalcon/subscription","commits_url":"https://api.github.com/repos/gguridi/cphalcon/commits{/sha}","git_commits_url":"https://api.github.com/repos/gguridi/cphalcon/git/commits{/sha}","comments_url":"https://api.github.com/repos/gguridi/cphalcon/comments{/number}","issue_comment_url":"https://api.github.com/repos/gguridi/cphalcon/issues/comments{/number}","contents_url":"https://api.github.com/repos/gguridi/cphalcon/contents/{+path}","compare_url":"https://api.github.com/repos/gguridi/cphalcon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gguridi/cphalcon/merges","archive_url":"https://api.github.com/repos/gguridi/cphalcon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gguridi/cphalcon/downloads","issues_url":"https://api.github.com/repos/gguridi/cphalcon/issues{/number}","pulls_url":"https://api.github.com/repos/gguridi/cphalcon/pulls{/number}","milestones_url":"https://api.github.com/repos/gguridi/cphalcon/milestones{/number}","notifications_url":"https://api.github.com/repos/gguridi/cphalcon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gguridi/cphalcon/labels{/name}","releases_url":"https://api.github.com/repos/gguridi/cphalcon/releases{/id}","deployments_url":"https://api.github.com/repos/gguridi/cphalcon/deployments","created_at":"2016-09-13T13:30:35Z","updated_at":"2016-09-13T13:30:40Z","pushed_at":"2018-12-21T21:53:26Z","git_url":"git://github.com/gguridi/cphalcon.git","ssh_url":"git@github.com:gguridi/cphalcon.git","clone_url":"https://github.com/gguridi/cphalcon.git","svn_url":"https://github.com/gguridi/cphalcon","homepage":"phalconphp.com","size":151861,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"phalcon:4.0.x","ref":"4.0.x","sha":"3aca49a327e3a17929dc24d93da06872a406ea00","user":{"login":"phalcon","id":1221505,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMjE1MDU=","avatar_url":"https://avatars1.githubusercontent.com/u/1221505?v=4","gravatar_id":"","url":"https://api.github.com/users/phalcon","html_url":"https://github.com/phalcon","followers_url":"https://api.github.com/users/phalcon/followers","following_url":"https://api.github.com/users/phalcon/following{/other_user}","gists_url":"https://api.github.com/users/phalcon/gists{/gist_id}","starred_url":"https://api.github.com/users/phalcon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phalcon/subscriptions","organizations_url":"https://api.github.com/users/phalcon/orgs","repos_url":"https://api.github.com/users/phalcon/repos","events_url":"https://api.github.com/users/phalcon/events{/privacy}","received_events_url":"https://api.github.com/users/phalcon/received_events","type":"Organization","site_admin":false},"repo":{"id":2854337,"node_id":"MDEwOlJlcG9zaXRvcnkyODU0MzM3","name":"cphalcon","full_name":"phalcon/cphalcon","private":false,"owner":{"login":"phalcon","id":1221505,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMjE1MDU=","avatar_url":"https://avatars1.githubusercontent.com/u/1221505?v=4","gravatar_id":"","url":"https://api.github.com/users/phalcon","html_url":"https://github.com/phalcon","followers_url":"https://api.github.com/users/phalcon/followers","following_url":"https://api.github.com/users/phalcon/following{/other_user}","gists_url":"https://api.github.com/users/phalcon/gists{/gist_id}","starred_url":"https://api.github.com/users/phalcon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phalcon/subscriptions","organizations_url":"https://api.github.com/users/phalcon/orgs","repos_url":"https://api.github.com/users/phalcon/repos","events_url":"https://api.github.com/users/phalcon/events{/privacy}","received_events_url":"https://api.github.com/users/phalcon/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/phalcon/cphalcon","description":"High performance, full-stack PHP framework delivered as a C extension.","fork":false,"url":"https://api.github.com/repos/phalcon/cphalcon","forks_url":"https://api.github.com/repos/phalcon/cphalcon/forks","keys_url":"https://api.github.com/repos/phalcon/cphalcon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/phalcon/cphalcon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/phalcon/cphalcon/teams","hooks_url":"https://api.github.com/repos/phalcon/cphalcon/hooks","issue_events_url":"https://api.github.com/repos/phalcon/cphalcon/issues/events{/number}","events_url":"https://api.github.com/repos/phalcon/cphalcon/events","assignees_url":"https://api.github.com/repos/phalcon/cphalcon/assignees{/user}","branches_url":"https://api.github.com/repos/phalcon/cphalcon/branches{/branch}","tags_url":"https://api.github.com/repos/phalcon/cphalcon/tags","blobs_url":"https://api.github.com/repos/phalcon/cphalcon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/phalcon/cphalcon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/phalcon/cphalcon/git/refs{/sha}","trees_url":"https://api.github.com/repos/phalcon/cphalcon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/phalcon/cphalcon/statuses/{sha}","languages_url":"https://api.github.com/repos/phalcon/cphalcon/languages","stargazers_url":"https://api.github.com/repos/phalcon/cphalcon/stargazers","contributors_url":"https://api.github.com/repos/phalcon/cphalcon/contributors","subscribers_url":"https://api.github.com/repos/phalcon/cphalcon/subscribers","subscription_url":"https://api.github.com/repos/phalcon/cphalcon/subscription","commits_url":"https://api.github.com/repos/phalcon/cphalcon/commits{/sha}","git_commits_url":"https://api.github.com/repos/phalcon/cphalcon/git/commits{/sha}","comments_url":"https://api.github.com/repos/phalcon/cphalcon/comments{/number}","issue_comment_url":"https://api.github.com/repos/phalcon/cphalcon/issues/comments{/number}","contents_url":"https://api.github.com/repos/phalcon/cphalcon/contents/{+path}","compare_url":"https://api.github.com/repos/phalcon/cphalcon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/phalcon/cphalcon/merges","archive_url":"https://api.github.com/repos/phalcon/cphalcon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/phalcon/cphalcon/downloads","issues_url":"https://api.github.com/repos/phalcon/cphalcon/issues{/number}","pulls_url":"https://api.github.com/repos/phalcon/cphalcon/pulls{/number}","milestones_url":"https://api.github.com/repos/phalcon/cphalcon/milestones{/number}","notifications_url":"https://api.github.com/repos/phalcon/cphalcon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/phalcon/cphalcon/labels{/name}","releases_url":"https://api.github.com/repos/phalcon/cphalcon/releases{/id}","deployments_url":"https://api.github.com/repos/phalcon/cphalcon/deployments","created_at":"2011-11-26T05:52:50Z","updated_at":"2018-12-21T15:50:10Z","pushed_at":"2018-12-21T23:10:11Z","git_url":"git://github.com/phalcon/cphalcon.git","ssh_url":"git@github.com:phalcon/cphalcon.git","clone_url":"https://github.com/phalcon/cphalcon.git","svn_url":"https://github.com/phalcon/cphalcon","homepage":"https://phalconphp.com","size":152903,"stargazers_count":9375,"watchers_count":9375,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1730,"mirror_url":null,"archived":false,"open_issues_count":156,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":1730,"open_issues":156,"watchers":9375,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574"},"html":{"href":"https://github.com/phalcon/cphalcon/pull/13574"},"issue":{"href":"https://api.github.com/repos/phalcon/cphalcon/issues/13574"},"comments":{"href":"https://api.github.com/repos/phalcon/cphalcon/issues/13574/comments"},"review_comments":{"href":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574/comments"},"review_comment":{"href":"https://api.github.com/repos/phalcon/cphalcon/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/phalcon/cphalcon/pulls/13574/commits"},"statuses":{"href":"https://api.github.com/repos/phalcon/cphalcon/statuses/332494ac7f8136d0f5f56830dc4e7348522c3bf4"}},"author_association":"CONTRIBUTOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"niden","id":1073784,"node_id":"MDQ6VXNlcjEwNzM3ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1073784?v=4","gravatar_id":"","url":"https://api.github.com/users/niden","html_url":"https://github.com/niden","followers_url":"https://api.github.com/users/niden/followers","following_url":"https://api.github.com/users/niden/following{/other_user}","gists_url":"https://api.github.com/users/niden/gists{/gist_id}","starred_url":"https://api.github.com/users/niden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/niden/subscriptions","organizations_url":"https://api.github.com/users/niden/orgs","repos_url":"https://api.github.com/users/niden/repos","events_url":"https://api.github.com/users/niden/events{/privacy}","received_events_url":"https://api.github.com/users/niden/received_events","type":"User","site_admin":false},"comments":0,"review_comments":1,"maintainer_can_modify":false,"commits":2,"additions":272,"deletions":0,"changed_files":3}}
{"actor":{"display_login":"niden"}}