{"action":"closed","number":217,"pull_request":{"url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217","id":36546582,"html_url":"https://github.com/synapsestudios/synapse-base/pull/217","diff_url":"https://github.com/synapsestudios/synapse-base/pull/217.diff","patch_url":"https://github.com/synapsestudios/synapse-base/pull/217.patch","issue_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/217","number":217,"state":"closed","locked":false,"title":"Silex causes requests with expired access tokens to be 302 redirected to /login","user":{"login":"synbot","id":341352,"avatar_url":"https://avatars.githubusercontent.com/u/341352?v=3","gravatar_id":"","url":"https://api.github.com/users/synbot","html_url":"https://github.com/synbot","followers_url":"https://api.github.com/users/synbot/followers","following_url":"https://api.github.com/users/synbot/following{/other_user}","gists_url":"https://api.github.com/users/synbot/gists{/gist_id}","starred_url":"https://api.github.com/users/synbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/synbot/subscriptions","organizations_url":"https://api.github.com/users/synbot/orgs","repos_url":"https://api.github.com/users/synbot/repos","events_url":"https://api.github.com/users/synbot/events{/privacy}","received_events_url":"https://api.github.com/users/synbot/received_events","type":"User","site_admin":false},"body":"When hitting a route with `oauth-optional` set in the firewalls and the frontend having an expired oauth token, Silex will redirect to `/login`. The frontend gets confused and sad. It should instead return an unauthorized error so the frontend can request a new token.\r\n\r\n### Clues\r\n\r\nIt redirects to login because that's the default `login_path` set in `Silex\\Provider\\SecurityServiceProvider`.\r\n\r\nWe don't want to \"fix\" this path -- we just want to prevent the OauthOptional listener from redirecting to the login path in the first place.","created_at":"2015-05-29T21:27:09Z","updated_at":"2015-05-29T21:36:28Z","closed_at":"2015-05-29T21:36:28Z","merged_at":"2015-05-29T21:36:28Z","merge_commit_sha":"4c4d0383b2691345a81adab4e291d5543b05dc70","assignee":{"login":"zpchavez","id":717690,"avatar_url":"https://avatars.githubusercontent.com/u/717690?v=3","gravatar_id":"","url":"https://api.github.com/users/zpchavez","html_url":"https://github.com/zpchavez","followers_url":"https://api.github.com/users/zpchavez/followers","following_url":"https://api.github.com/users/zpchavez/following{/other_user}","gists_url":"https://api.github.com/users/zpchavez/gists{/gist_id}","starred_url":"https://api.github.com/users/zpchavez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zpchavez/subscriptions","organizations_url":"https://api.github.com/users/zpchavez/orgs","repos_url":"https://api.github.com/users/zpchavez/repos","events_url":"https://api.github.com/users/zpchavez/events{/privacy}","received_events_url":"https://api.github.com/users/zpchavez/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/synapsestudios/synapse-base/milestones/1","html_url":"https://github.com/synapsestudios/synapse-base/milestones/Sprint%20%E2%88%9E","labels_url":"https://api.github.com/repos/synapsestudios/synapse-base/milestones/1/labels","id":708247,"number":1,"title":"Sprint ∞","description":"","creator":{"login":"bobeagan","id":100226,"avatar_url":"https://avatars.githubusercontent.com/u/100226?v=3","gravatar_id":"","url":"https://api.github.com/users/bobeagan","html_url":"https://github.com/bobeagan","followers_url":"https://api.github.com/users/bobeagan/followers","following_url":"https://api.github.com/users/bobeagan/following{/other_user}","gists_url":"https://api.github.com/users/bobeagan/gists{/gist_id}","starred_url":"https://api.github.com/users/bobeagan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobeagan/subscriptions","organizations_url":"https://api.github.com/users/bobeagan/orgs","repos_url":"https://api.github.com/users/bobeagan/repos","events_url":"https://api.github.com/users/bobeagan/events{/privacy}","received_events_url":"https://api.github.com/users/bobeagan/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":198,"state":"open","created_at":"2014-07-02T16:10:27Z","updated_at":"2015-05-29T21:36:28Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217/commits","review_comments_url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217/comments","review_comment_url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/comments{/number}","comments_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/217/comments","statuses_url":"https://api.github.com/repos/synapsestudios/synapse-base/statuses/72a8dcc17f0859e99aa1130544bc106a2ac31907","head":{"label":"synapsestudios:bugfix/217-redirect-returned-instead-of-invalid-token-response","ref":"bugfix/217-redirect-returned-instead-of-invalid-token-response","sha":"72a8dcc17f0859e99aa1130544bc106a2ac31907","user":{"login":"synapsestudios","id":197868,"avatar_url":"https://avatars.githubusercontent.com/u/197868?v=3","gravatar_id":"","url":"https://api.github.com/users/synapsestudios","html_url":"https://github.com/synapsestudios","followers_url":"https://api.github.com/users/synapsestudios/followers","following_url":"https://api.github.com/users/synapsestudios/following{/other_user}","gists_url":"https://api.github.com/users/synapsestudios/gists{/gist_id}","starred_url":"https://api.github.com/users/synapsestudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/synapsestudios/subscriptions","organizations_url":"https://api.github.com/users/synapsestudios/orgs","repos_url":"https://api.github.com/users/synapsestudios/repos","events_url":"https://api.github.com/users/synapsestudios/events{/privacy}","received_events_url":"https://api.github.com/users/synapsestudios/received_events","type":"Organization","site_admin":false},"repo":{"id":18157571,"name":"synapse-base","full_name":"synapsestudios/synapse-base","owner":{"login":"synapsestudios","id":197868,"avatar_url":"https://avatars.githubusercontent.com/u/197868?v=3","gravatar_id":"","url":"https://api.github.com/users/synapsestudios","html_url":"https://github.com/synapsestudios","followers_url":"https://api.github.com/users/synapsestudios/followers","following_url":"https://api.github.com/users/synapsestudios/following{/other_user}","gists_url":"https://api.github.com/users/synapsestudios/gists{/gist_id}","starred_url":"https://api.github.com/users/synapsestudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/synapsestudios/subscriptions","organizations_url":"https://api.github.com/users/synapsestudios/orgs","repos_url":"https://api.github.com/users/synapsestudios/repos","events_url":"https://api.github.com/users/synapsestudios/events{/privacy}","received_events_url":"https://api.github.com/users/synapsestudios/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/synapsestudios/synapse-base","description":"Base code for the API template","fork":false,"url":"https://api.github.com/repos/synapsestudios/synapse-base","forks_url":"https://api.github.com/repos/synapsestudios/synapse-base/forks","keys_url":"https://api.github.com/repos/synapsestudios/synapse-base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/synapsestudios/synapse-base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/synapsestudios/synapse-base/teams","hooks_url":"https://api.github.com/repos/synapsestudios/synapse-base/hooks","issue_events_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/events{/number}","events_url":"https://api.github.com/repos/synapsestudios/synapse-base/events","assignees_url":"https://api.github.com/repos/synapsestudios/synapse-base/assignees{/user}","branches_url":"https://api.github.com/repos/synapsestudios/synapse-base/branches{/branch}","tags_url":"https://api.github.com/repos/synapsestudios/synapse-base/tags","blobs_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/refs{/sha}","trees_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/synapsestudios/synapse-base/statuses/{sha}","languages_url":"https://api.github.com/repos/synapsestudios/synapse-base/languages","stargazers_url":"https://api.github.com/repos/synapsestudios/synapse-base/stargazers","contributors_url":"https://api.github.com/repos/synapsestudios/synapse-base/contributors","subscribers_url":"https://api.github.com/repos/synapsestudios/synapse-base/subscribers","subscription_url":"https://api.github.com/repos/synapsestudios/synapse-base/subscription","commits_url":"https://api.github.com/repos/synapsestudios/synapse-base/commits{/sha}","git_commits_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/commits{/sha}","comments_url":"https://api.github.com/repos/synapsestudios/synapse-base/comments{/number}","issue_comment_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/comments{/number}","contents_url":"https://api.github.com/repos/synapsestudios/synapse-base/contents/{+path}","compare_url":"https://api.github.com/repos/synapsestudios/synapse-base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/synapsestudios/synapse-base/merges","archive_url":"https://api.github.com/repos/synapsestudios/synapse-base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/synapsestudios/synapse-base/downloads","issues_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues{/number}","pulls_url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls{/number}","milestones_url":"https://api.github.com/repos/synapsestudios/synapse-base/milestones{/number}","notifications_url":"https://api.github.com/repos/synapsestudios/synapse-base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/synapsestudios/synapse-base/labels{/name}","releases_url":"https://api.github.com/repos/synapsestudios/synapse-base/releases{/id}","created_at":"2014-03-26T23:20:18Z","updated_at":"2015-05-05T23:00:42Z","pushed_at":"2015-05-29T21:36:28Z","git_url":"git://github.com/synapsestudios/synapse-base.git","ssh_url":"git@github.com:synapsestudios/synapse-base.git","clone_url":"https://github.com/synapsestudios/synapse-base.git","svn_url":"https://github.com/synapsestudios/synapse-base","homepage":"","size":3694,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":19,"forks":1,"open_issues":19,"watchers":1,"default_branch":"master"}},"base":{"label":"synapsestudios:master","ref":"master","sha":"5560f9687e19cc05bd499cb2b204fcd9bee47bb0","user":{"login":"synapsestudios","id":197868,"avatar_url":"https://avatars.githubusercontent.com/u/197868?v=3","gravatar_id":"","url":"https://api.github.com/users/synapsestudios","html_url":"https://github.com/synapsestudios","followers_url":"https://api.github.com/users/synapsestudios/followers","following_url":"https://api.github.com/users/synapsestudios/following{/other_user}","gists_url":"https://api.github.com/users/synapsestudios/gists{/gist_id}","starred_url":"https://api.github.com/users/synapsestudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/synapsestudios/subscriptions","organizations_url":"https://api.github.com/users/synapsestudios/orgs","repos_url":"https://api.github.com/users/synapsestudios/repos","events_url":"https://api.github.com/users/synapsestudios/events{/privacy}","received_events_url":"https://api.github.com/users/synapsestudios/received_events","type":"Organization","site_admin":false},"repo":{"id":18157571,"name":"synapse-base","full_name":"synapsestudios/synapse-base","owner":{"login":"synapsestudios","id":197868,"avatar_url":"https://avatars.githubusercontent.com/u/197868?v=3","gravatar_id":"","url":"https://api.github.com/users/synapsestudios","html_url":"https://github.com/synapsestudios","followers_url":"https://api.github.com/users/synapsestudios/followers","following_url":"https://api.github.com/users/synapsestudios/following{/other_user}","gists_url":"https://api.github.com/users/synapsestudios/gists{/gist_id}","starred_url":"https://api.github.com/users/synapsestudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/synapsestudios/subscriptions","organizations_url":"https://api.github.com/users/synapsestudios/orgs","repos_url":"https://api.github.com/users/synapsestudios/repos","events_url":"https://api.github.com/users/synapsestudios/events{/privacy}","received_events_url":"https://api.github.com/users/synapsestudios/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/synapsestudios/synapse-base","description":"Base code for the API template","fork":false,"url":"https://api.github.com/repos/synapsestudios/synapse-base","forks_url":"https://api.github.com/repos/synapsestudios/synapse-base/forks","keys_url":"https://api.github.com/repos/synapsestudios/synapse-base/keys{/key_id}","collaborators_url":"https://api.github.com/repos/synapsestudios/synapse-base/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/synapsestudios/synapse-base/teams","hooks_url":"https://api.github.com/repos/synapsestudios/synapse-base/hooks","issue_events_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/events{/number}","events_url":"https://api.github.com/repos/synapsestudios/synapse-base/events","assignees_url":"https://api.github.com/repos/synapsestudios/synapse-base/assignees{/user}","branches_url":"https://api.github.com/repos/synapsestudios/synapse-base/branches{/branch}","tags_url":"https://api.github.com/repos/synapsestudios/synapse-base/tags","blobs_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/refs{/sha}","trees_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/trees{/sha}","statuses_url":"https://api.github.com/repos/synapsestudios/synapse-base/statuses/{sha}","languages_url":"https://api.github.com/repos/synapsestudios/synapse-base/languages","stargazers_url":"https://api.github.com/repos/synapsestudios/synapse-base/stargazers","contributors_url":"https://api.github.com/repos/synapsestudios/synapse-base/contributors","subscribers_url":"https://api.github.com/repos/synapsestudios/synapse-base/subscribers","subscription_url":"https://api.github.com/repos/synapsestudios/synapse-base/subscription","commits_url":"https://api.github.com/repos/synapsestudios/synapse-base/commits{/sha}","git_commits_url":"https://api.github.com/repos/synapsestudios/synapse-base/git/commits{/sha}","comments_url":"https://api.github.com/repos/synapsestudios/synapse-base/comments{/number}","issue_comment_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues/comments{/number}","contents_url":"https://api.github.com/repos/synapsestudios/synapse-base/contents/{+path}","compare_url":"https://api.github.com/repos/synapsestudios/synapse-base/compare/{base}...{head}","merges_url":"https://api.github.com/repos/synapsestudios/synapse-base/merges","archive_url":"https://api.github.com/repos/synapsestudios/synapse-base/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/synapsestudios/synapse-base/downloads","issues_url":"https://api.github.com/repos/synapsestudios/synapse-base/issues{/number}","pulls_url":"https://api.github.com/repos/synapsestudios/synapse-base/pulls{/number}","milestones_url":"https://api.github.com/repos/synapsestudios/synapse-base/milestones{/number}","notifications_url":"https://api.github.com/repos/synapsestudios/synapse-base/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/synapsestudios/synapse-base/labels{/name}","releases_url":"https://api.github.com/repos/synapsestudios/synapse-base/releases{/id}","created_at":"2014-03-26T23:20:18Z","updated_at":"2015-05-05T23:00:42Z","pushed_at":"2015-05-29T21:36:28Z","git_url":"git://github.com/synapsestudios/synapse-base.git","ssh_url":"git@github.com:synapsestudios/synapse-base.git","clone_url":"https://github.com/synapsestudios/synapse-base.git","svn_url":"https://github.com/synapsestudios/synapse-base","homepage":"","size":3694,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":19,"forks":1,"open_issues":19,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217"},"html":{"href":"https://github.com/synapsestudios/synapse-base/pull/217"},"issue":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/issues/217"},"comments":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/issues/217/comments"},"review_comments":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217/comments"},"review_comment":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/pulls/217/commits"},"statuses":{"href":"https://api.github.com/repos/synapsestudios/synapse-base/statuses/72a8dcc17f0859e99aa1130544bc106a2ac31907"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"paulstatezny","id":4662353,"avatar_url":"https://avatars.githubusercontent.com/u/4662353?v=3","gravatar_id":"","url":"https://api.github.com/users/paulstatezny","html_url":"https://github.com/paulstatezny","followers_url":"https://api.github.com/users/paulstatezny/followers","following_url":"https://api.github.com/users/paulstatezny/following{/other_user}","gists_url":"https://api.github.com/users/paulstatezny/gists{/gist_id}","starred_url":"https://api.github.com/users/paulstatezny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulstatezny/subscriptions","organizations_url":"https://api.github.com/users/paulstatezny/orgs","repos_url":"https://api.github.com/users/paulstatezny/repos","events_url":"https://api.github.com/users/paulstatezny/events{/privacy}","received_events_url":"https://api.github.com/users/paulstatezny/received_events","type":"User","site_admin":false},"comments":3,"review_comments":0,"commits":1,"additions":1,"deletions":0,"changed_files":1}}