{"action":"created","issue":{"url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/348","labels_url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/348/labels{/name}","comments_url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/348/comments","events_url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/348/events","html_url":"https://github.com/zendframework/modules.zendframework.com/pull/348","id":55693786,"number":348,"title":"Display GitHub error message when module sync fails","user":{"login":"adamlundrigan","id":527329,"avatar_url":"https://avatars.githubusercontent.com/u/527329?v=3","gravatar_id":"","url":"https://api.github.com/users/adamlundrigan","html_url":"https://github.com/adamlundrigan","followers_url":"https://api.github.com/users/adamlundrigan/followers","following_url":"https://api.github.com/users/adamlundrigan/following{/other_user}","gists_url":"https://api.github.com/users/adamlundrigan/gists{/gist_id}","starred_url":"https://api.github.com/users/adamlundrigan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamlundrigan/subscriptions","organizations_url":"https://api.github.com/users/adamlundrigan/orgs","repos_url":"https://api.github.com/users/adamlundrigan/repos","events_url":"https://api.github.com/users/adamlundrigan/events{/privacy}","received_events_url":"https://api.github.com/users/adamlundrigan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-01-27T23:53:26Z","updated_at":"2015-01-28T20:12:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/zendframework/modules.zendframework.com/pulls/348","html_url":"https://github.com/zendframework/modules.zendframework.com/pull/348","diff_url":"https://github.com/zendframework/modules.zendframework.com/pull/348.diff","patch_url":"https://github.com/zendframework/modules.zendframework.com/pull/348.patch"},"body":"Catch the `RuntimeException` thrown by EdpGithub and send it back to the user.\r\n\r\n![image](https://cloud.githubusercontent.com/assets/527329/5929774/c32f9c1e-a661-11e4-9eb9-dc5e563133ef.png)\r\n\r\nTwo notes:\r\n - I tried to test it but failed.  I couldn't find the right incantation to get PHPUnit's mock builder to build a suitable replacement for EdpGithub's RepositoryCollection.  Perhaps someone with a kinder disposition towards mock builder could try?\r\n - I looked through EdpGithub and GitHub's docs and I don't see any case where sensitive information could be leaked through the failure message, so IMO it should be fine to just dump it back to the user for now. "},"comment":{"url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/comments/71906774","html_url":"https://github.com/zendframework/modules.zendframework.com/pull/348#issuecomment-71906774","issue_url":"https://api.github.com/repos/zendframework/modules.zendframework.com/issues/348","id":71906774,"user":{"login":"Ocramius","id":154256,"avatar_url":"https://avatars.githubusercontent.com/u/154256?v=3","gravatar_id":"","url":"https://api.github.com/users/Ocramius","html_url":"https://github.com/Ocramius","followers_url":"https://api.github.com/users/Ocramius/followers","following_url":"https://api.github.com/users/Ocramius/following{/other_user}","gists_url":"https://api.github.com/users/Ocramius/gists{/gist_id}","starred_url":"https://api.github.com/users/Ocramius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ocramius/subscriptions","organizations_url":"https://api.github.com/users/Ocramius/orgs","repos_url":"https://api.github.com/users/Ocramius/repos","events_url":"https://api.github.com/users/Ocramius/events{/privacy}","received_events_url":"https://api.github.com/users/Ocramius/received_events","type":"User","site_admin":false},"created_at":"2015-01-28T20:12:17Z","updated_at":"2015-01-28T20:12:17Z","body":"I'd still ask for a _unit_ test of this functionality (mock with `->throwsException()`)"}}