{"action":"created","issue":{"url":"https://api.github.com/repos/django/django/issues/9991","repository_url":"https://api.github.com/repos/django/django","labels_url":"https://api.github.com/repos/django/django/issues/9991/labels{/name}","comments_url":"https://api.github.com/repos/django/django/issues/9991/comments","events_url":"https://api.github.com/repos/django/django/issues/9991/events","html_url":"https://github.com/django/django/pull/9991","id":326770492,"number":9991,"title":"Validate the scheme in a separate method of URLValidator","user":{"login":"jleclanche","id":235410,"avatar_url":"https://avatars1.githubusercontent.com/u/235410?v=4","gravatar_id":"","url":"https://api.github.com/users/jleclanche","html_url":"https://github.com/jleclanche","followers_url":"https://api.github.com/users/jleclanche/followers","following_url":"https://api.github.com/users/jleclanche/following{/other_user}","gists_url":"https://api.github.com/users/jleclanche/gists{/gist_id}","starred_url":"https://api.github.com/users/jleclanche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jleclanche/subscriptions","organizations_url":"https://api.github.com/users/jleclanche/orgs","repos_url":"https://api.github.com/users/jleclanche/repos","events_url":"https://api.github.com/users/jleclanche/events{/privacy}","received_events_url":"https://api.github.com/users/jleclanche/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-05-26T22:07:03Z","updated_at":"2018-05-27T00:27:43Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/django/django/pulls/9991","html_url":"https://github.com/django/django/pull/9991","diff_url":"https://github.com/django/django/pull/9991.diff","patch_url":"https://github.com/django/django/pull/9991.patch"},"body":"This allows subclassing URLValidator to do fancier types of validation\r\nsuch as regex matching, etc.\r\n\r\n----\r\n\r\nUse case: in [django-oauth-toolkit](https://github.com/jazzband/django-oauth-toolkit), the list of allowed schemes is dynamic. This trivial change allows DOT to subclass URLValidator rather than having to reimplement it entirely."},"comment":{"url":"https://api.github.com/repos/django/django/issues/comments/392296626","html_url":"https://github.com/django/django/pull/9991#issuecomment-392296626","issue_url":"https://api.github.com/repos/django/django/issues/9991","id":392296626,"user":{"login":"timgraham","id":411869,"avatar_url":"https://avatars3.githubusercontent.com/u/411869?v=4","gravatar_id":"","url":"https://api.github.com/users/timgraham","html_url":"https://github.com/timgraham","followers_url":"https://api.github.com/users/timgraham/followers","following_url":"https://api.github.com/users/timgraham/following{/other_user}","gists_url":"https://api.github.com/users/timgraham/gists{/gist_id}","starred_url":"https://api.github.com/users/timgraham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timgraham/subscriptions","organizations_url":"https://api.github.com/users/timgraham/orgs","repos_url":"https://api.github.com/users/timgraham/repos","events_url":"https://api.github.com/users/timgraham/events{/privacy}","received_events_url":"https://api.github.com/users/timgraham/received_events","type":"User","site_admin":false},"created_at":"2018-05-27T00:27:43Z","updated_at":"2018-05-27T00:27:43Z","author_association":"MEMBER","body":"Right, `validate_domain_part()` isn't a public API. It was added because it's called in two places (98f13762d7e18c0ba12044eed56e9198ca056c66).\r\n\r\nThe proposed change doesn't strike me as a simplification or a refactoring that would be done if not for your use case. Another contributor could just as easily come along and say \"Remove unneeded validate_schema() method\" and call that a refactoring."}}
{"actor":{"display_login":"timgraham"}}