{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/helm/issues/465","repository_url":"https://api.github.com/repos/kubernetes/helm","labels_url":"https://api.github.com/repos/kubernetes/helm/issues/465/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/helm/issues/465/comments","events_url":"https://api.github.com/repos/kubernetes/helm/issues/465/events","html_url":"https://github.com/kubernetes/helm/pull/465","id":144074496,"number":465,"title":"feat(repo): validate repo url passed in","user":{"login":"michelleN","id":1497123,"avatar_url":"https://avatars.githubusercontent.com/u/1497123?v=3","gravatar_id":"","url":"https://api.github.com/users/michelleN","html_url":"https://github.com/michelleN","followers_url":"https://api.github.com/users/michelleN/followers","following_url":"https://api.github.com/users/michelleN/following{/other_user}","gists_url":"https://api.github.com/users/michelleN/gists{/gist_id}","starred_url":"https://api.github.com/users/michelleN/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michelleN/subscriptions","organizations_url":"https://api.github.com/users/michelleN/orgs","repos_url":"https://api.github.com/users/michelleN/repos","events_url":"https://api.github.com/users/michelleN/events{/privacy}","received_events_url":"https://api.github.com/users/michelleN/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/helm/labels/awaiting%20review","name":"awaiting review","color":"e11d21"},{"url":"https://api.github.com/repos/kubernetes/helm/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"jackgr","id":5607565,"avatar_url":"https://avatars.githubusercontent.com/u/5607565?v=3","gravatar_id":"","url":"https://api.github.com/users/jackgr","html_url":"https://github.com/jackgr","followers_url":"https://api.github.com/users/jackgr/followers","following_url":"https://api.github.com/users/jackgr/following{/other_user}","gists_url":"https://api.github.com/users/jackgr/gists{/gist_id}","starred_url":"https://api.github.com/users/jackgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackgr/subscriptions","organizations_url":"https://api.github.com/users/jackgr/orgs","repos_url":"https://api.github.com/users/jackgr/repos","events_url":"https://api.github.com/users/jackgr/events{/privacy}","received_events_url":"https://api.github.com/users/jackgr/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2016-03-28T20:26:05Z","updated_at":"2016-03-28T22:16:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/helm/pulls/465","html_url":"https://github.com/kubernetes/helm/pull/465","diff_url":"https://github.com/kubernetes/helm/pull/465.diff","patch_url":"https://github.com/kubernetes/helm/pull/465.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/kubernetes/helm/issues/comments/202601690","html_url":"https://github.com/kubernetes/helm/pull/465#issuecomment-202601690","issue_url":"https://api.github.com/repos/kubernetes/helm/issues/465","id":202601690,"user":{"login":"jackgr","id":5607565,"avatar_url":"https://avatars.githubusercontent.com/u/5607565?v=3","gravatar_id":"","url":"https://api.github.com/users/jackgr","html_url":"https://github.com/jackgr","followers_url":"https://api.github.com/users/jackgr/followers","following_url":"https://api.github.com/users/jackgr/following{/other_user}","gists_url":"https://api.github.com/users/jackgr/gists{/gist_id}","starred_url":"https://api.github.com/users/jackgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackgr/subscriptions","organizations_url":"https://api.github.com/users/jackgr/orgs","repos_url":"https://api.github.com/users/jackgr/repos","events_url":"https://api.github.com/users/jackgr/events{/privacy}","received_events_url":"https://api.github.com/users/jackgr/received_events","type":"User","site_admin":false},"created_at":"2016-03-28T22:16:26Z","updated_at":"2016-03-28T22:16:26Z","body":"Aside:\r\n\r\nFWIW, I've been thinking about a related problem, which is how we know which repo a chart URL belongs to. We currently have a prefix matching mechanism (which had a bug... see #467).\r\n\r\nHowever, it's not ideal. We get away with it because we have one repo type, namely GCS. However, that will change as soon as anyone wants to do S3 and/or something else.\r\n\r\nA better approach would be to actually register providers for all repo types. A provider would then be able to return 2 regex: one for a repo URL and one for a chart URL. Then, the question of which repo a chart URL belongs to could be answered unambiguously, and similarly, whether or not a given URL is a valid repo URL or chart URL.\r\n\r\nWe don't need that formality or generality yet, but it's the cleanest way to solve the problem.\r\n"}}