GitHub PullRequestEvent at 2014-11-21 10:30:31
Repository: Ghost
Actor: sebgie
Payload: {"action":"closed","number":4490,"pull_request":{"url":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490","id":24758651,"html_url":"https://github.com/TryGhost/Ghost/pull/4490","diff_url":"https://github.com/TryGhost/Ghost/pull/4490.diff","patch_url":"https://github.com/TryGhost/Ghost/pull/4490.patch","issue_url":"https://api.github.com/repos/TryGhost/Ghost/issues/4490","number":4490,"state":"closed","locked":false,"title":"Make tokens URL safe","user":{"login":"thisishugo","id":1704089,"avatar_url":"https://avatars.githubusercontent.com/u/1704089?v=3","gravatar_id":"","url":"https://api.github.com/users/thisishugo","html_url":"https://github.com/thisishugo","followers_url":"https://api.github.com/users/thisishugo/followers","following_url":"https://api.github.com/users/thisishugo/following{/other_user}","gists_url":"https://api.github.com/users/thisishugo/gists{/gist_id}","starred_url":"https://api.github.com/users/thisishugo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thisishugo/subscriptions","organizations_url":"https://api.github.com/users/thisishugo/orgs","repos_url":"https://api.github.com/users/thisishugo/repos","events_url":"https://api.github.com/users/thisishugo/events{/privacy}","received_events_url":"https://api.github.com/users/thisishugo/received_events","type":"User","site_admin":false},"body":"Base64 encoding causes some issues when the token is URL encoded\r\nas the = symbol is not a valid URL character. We replace any =\r\nsymbols with a - as this is valid in a URL, but is guaranteed\r\nnot to appear in a bade64 string. This fix ensures that Ghost\r\npassword resets work with mail providers such as Mailgun that\r\nadd their own tracking redirects\r\n\r\ncloses #3872 (for real this time)","created_at":"2014-11-20T11:31:21Z","updated_at":"2014-11-21T10:30:30Z","closed_at":"2014-11-21T10:30:30Z","merged_at":"2014-11-21T10:30:30Z","merge_commit_sha":"98165f647039e0006d15a2b58871596d83ecb916","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490/commits","review_comments_url":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490/comments","review_comment_url":"https://api.github.com/repos/TryGhost/Ghost/pulls/comments/{number}","comments_url":"https://api.github.com/repos/TryGhost/Ghost/issues/4490/comments","statuses_url":"https://api.github.com/repos/TryGhost/Ghost/statuses/11a0f01e25459a86fac0a8a68b9beae6a12eb21d","head":{"label":"thisishugo:url-safe-tokens","ref":"url-safe-tokens","sha":"11a0f01e25459a86fac0a8a68b9beae6a12eb21d","user":{"login":"thisishugo","id":1704089,"avatar_url":"https://avatars.githubusercontent.com/u/1704089?v=3","gravatar_id":"","url":"https://api.github.com/users/thisishugo","html_url":"https://github.com/thisishugo","followers_url":"https://api.github.com/users/thisishugo/followers","following_url":"https://api.github.com/users/thisishugo/following{/other_user}","gists_url":"https://api.github.com/users/thisishugo/gists{/gist_id}","starred_url":"https://api.github.com/users/thisishugo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thisishugo/subscriptions","organizations_url":"https://api.github.com/users/thisishugo/orgs","repos_url":"https://api.github.com/users/thisishugo/repos","events_url":"https://api.github.com/users/thisishugo/events{/privacy}","received_events_url":"https://api.github.com/users/thisishugo/received_events","type":"User","site_admin":false},"repo":{"id":26907412,"name":"Ghost","full_name":"thisishugo/Ghost","owner":{"login":"thisishugo","id":1704089,"avatar_url":"https://avatars.githubusercontent.com/u/1704089?v=3","gravatar_id":"","url":"https://api.github.com/users/thisishugo","html_url":"https://github.com/thisishugo","followers_url":"https://api.github.com/users/thisishugo/followers","following_url":"https://api.github.com/users/thisishugo/following{/other_user}","gists_url":"https://api.github.com/users/thisishugo/gists{/gist_id}","starred_url":"https://api.github.com/users/thisishugo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thisishugo/subscriptions","organizations_url":"https://api.github.com/users/thisishugo/orgs","repos_url":"https://api.github.com/users/thisishugo/repos","events_url":"https://api.github.com/users/thisishugo/events{/privacy}","received_events_url":"https://api.github.com/users/thisishugo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/thisishugo/Ghost","description":"Just a blogging platform","fork":true,"url":"https://api.github.com/repos/thisishugo/Ghost","forks_url":"https://api.github.com/repos/thisishugo/Ghost/forks","keys_url":"https://api.github.com/repos/thisishugo/Ghost/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thisishugo/Ghost/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thisishugo/Ghost/teams","hooks_url":"https://api.github.com/repos/thisishugo/Ghost/hooks","issue_events_url":"https://api.github.com/repos/thisishugo/Ghost/issues/events{/number}","events_url":"https://api.github.com/repos/thisishugo/Ghost/events","assignees_url":"https://api.github.com/repos/thisishugo/Ghost/assignees{/user}","branches_url":"https://api.github.com/repos/thisishugo/Ghost/branches{/branch}","tags_url":"https://api.github.com/repos/thisishugo/Ghost/tags","blobs_url":"https://api.github.com/repos/thisishugo/Ghost/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thisishugo/Ghost/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thisishugo/Ghost/git/refs{/sha}","trees_url":"https://api.github.com/repos/thisishugo/Ghost/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thisishugo/Ghost/statuses/{sha}","languages_url":"https://api.github.com/repos/thisishugo/Ghost/languages","stargazers_url":"https://api.github.com/repos/thisishugo/Ghost/stargazers","contributors_url":"https://api.github.com/repos/thisishugo/Ghost/contributors","subscribers_url":"https://api.github.com/repos/thisishugo/Ghost/subscribers","subscription_url":"https://api.github.com/repos/thisishugo/Ghost/subscription","commits_url":"https://api.github.com/repos/thisishugo/Ghost/commits{/sha}","git_commits_url":"https://api.github.com/repos/thisishugo/Ghost/git/commits{/sha}","comments_url":"https://api.github.com/repos/thisishugo/Ghost/comments{/number}","issue_comment_url":"https://api.github.com/repos/thisishugo/Ghost/issues/comments/{number}","contents_url":"https://api.github.com/repos/thisishugo/Ghost/contents/{+path}","compare_url":"https://api.github.com/repos/thisishugo/Ghost/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thisishugo/Ghost/merges","archive_url":"https://api.github.com/repos/thisishugo/Ghost/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thisishugo/Ghost/downloads","issues_url":"https://api.github.com/repos/thisishugo/Ghost/issues{/number}","pulls_url":"https://api.github.com/repos/thisishugo/Ghost/pulls{/number}","milestones_url":"https://api.github.com/repos/thisishugo/Ghost/milestones{/number}","notifications_url":"https://api.github.com/repos/thisishugo/Ghost/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thisishugo/Ghost/labels{/name}","releases_url":"https://api.github.com/repos/thisishugo/Ghost/releases{/id}","created_at":"2014-11-20T10:28:12Z","updated_at":"2014-11-20T10:28:16Z","pushed_at":"2014-11-20T11:38:55Z","git_url":"git://github.com/thisishugo/Ghost.git","ssh_url":"git@github.com:thisishugo/Ghost.git","clone_url":"https://github.com/thisishugo/Ghost.git","svn_url":"https://github.com/thisishugo/Ghost","homepage":"https://ghost.org","size":68452,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"TryGhost:master","ref":"master","sha":"0c38a839b00abdc88b7fdb1f9fd138c958567678","user":{"login":"TryGhost","id":2178663,"avatar_url":"https://avatars.githubusercontent.com/u/2178663?v=3","gravatar_id":"","url":"https://api.github.com/users/TryGhost","html_url":"https://github.com/TryGhost","followers_url":"https://api.github.com/users/TryGhost/followers","following_url":"https://api.github.com/users/TryGhost/following{/other_user}","gists_url":"https://api.github.com/users/TryGhost/gists{/gist_id}","starred_url":"https://api.github.com/users/TryGhost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TryGhost/subscriptions","organizations_url":"https://api.github.com/users/TryGhost/orgs","repos_url":"https://api.github.com/users/TryGhost/repos","events_url":"https://api.github.com/users/TryGhost/events{/privacy}","received_events_url":"https://api.github.com/users/TryGhost/received_events","type":"Organization","site_admin":false},"repo":{"id":9852918,"name":"Ghost","full_name":"TryGhost/Ghost","owner":{"login":"TryGhost","id":2178663,"avatar_url":"https://avatars.githubusercontent.com/u/2178663?v=3","gravatar_id":"","url":"https://api.github.com/users/TryGhost","html_url":"https://github.com/TryGhost","followers_url":"https://api.github.com/users/TryGhost/followers","following_url":"https://api.github.com/users/TryGhost/following{/other_user}","gists_url":"https://api.github.com/users/TryGhost/gists{/gist_id}","starred_url":"https://api.github.com/users/TryGhost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TryGhost/subscriptions","organizations_url":"https://api.github.com/users/TryGhost/orgs","repos_url":"https://api.github.com/users/TryGhost/repos","events_url":"https://api.github.com/users/TryGhost/events{/privacy}","received_events_url":"https://api.github.com/users/TryGhost/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TryGhost/Ghost","description":"Just a blogging platform","fork":false,"url":"https://api.github.com/repos/TryGhost/Ghost","forks_url":"https://api.github.com/repos/TryGhost/Ghost/forks","keys_url":"https://api.github.com/repos/TryGhost/Ghost/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TryGhost/Ghost/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TryGhost/Ghost/teams","hooks_url":"https://api.github.com/repos/TryGhost/Ghost/hooks","issue_events_url":"https://api.github.com/repos/TryGhost/Ghost/issues/events{/number}","events_url":"https://api.github.com/repos/TryGhost/Ghost/events","assignees_url":"https://api.github.com/repos/TryGhost/Ghost/assignees{/user}","branches_url":"https://api.github.com/repos/TryGhost/Ghost/branches{/branch}","tags_url":"https://api.github.com/repos/TryGhost/Ghost/tags","blobs_url":"https://api.github.com/repos/TryGhost/Ghost/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TryGhost/Ghost/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TryGhost/Ghost/git/refs{/sha}","trees_url":"https://api.github.com/repos/TryGhost/Ghost/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TryGhost/Ghost/statuses/{sha}","languages_url":"https://api.github.com/repos/TryGhost/Ghost/languages","stargazers_url":"https://api.github.com/repos/TryGhost/Ghost/stargazers","contributors_url":"https://api.github.com/repos/TryGhost/Ghost/contributors","subscribers_url":"https://api.github.com/repos/TryGhost/Ghost/subscribers","subscription_url":"https://api.github.com/repos/TryGhost/Ghost/subscription","commits_url":"https://api.github.com/repos/TryGhost/Ghost/commits{/sha}","git_commits_url":"https://api.github.com/repos/TryGhost/Ghost/git/commits{/sha}","comments_url":"https://api.github.com/repos/TryGhost/Ghost/comments{/number}","issue_comment_url":"https://api.github.com/repos/TryGhost/Ghost/issues/comments/{number}","contents_url":"https://api.github.com/repos/TryGhost/Ghost/contents/{+path}","compare_url":"https://api.github.com/repos/TryGhost/Ghost/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TryGhost/Ghost/merges","archive_url":"https://api.github.com/repos/TryGhost/Ghost/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TryGhost/Ghost/downloads","issues_url":"https://api.github.com/repos/TryGhost/Ghost/issues{/number}","pulls_url":"https://api.github.com/repos/TryGhost/Ghost/pulls{/number}","milestones_url":"https://api.github.com/repos/TryGhost/Ghost/milestones{/number}","notifications_url":"https://api.github.com/repos/TryGhost/Ghost/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TryGhost/Ghost/labels{/name}","releases_url":"https://api.github.com/repos/TryGhost/Ghost/releases{/id}","created_at":"2013-05-04T11:09:13Z","updated_at":"2014-11-21T10:10:13Z","pushed_at":"2014-11-21T10:30:30Z","git_url":"git://github.com/TryGhost/Ghost.git","ssh_url":"git@github.com:TryGhost/Ghost.git","clone_url":"https://github.com/TryGhost/Ghost.git","svn_url":"https://github.com/TryGhost/Ghost","homepage":"https://ghost.org","size":68452,"stargazers_count":13004,"watchers_count":13004,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2889,"mirror_url":null,"open_issues_count":201,"forks":2889,"open_issues":201,"watchers":13004,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490"},"html":{"href":"https://github.com/TryGhost/Ghost/pull/4490"},"issue":{"href":"https://api.github.com/repos/TryGhost/Ghost/issues/4490"},"comments":{"href":"https://api.github.com/repos/TryGhost/Ghost/issues/4490/comments"},"review_comments":{"href":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490/comments"},"review_comment":{"href":"https://api.github.com/repos/TryGhost/Ghost/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/TryGhost/Ghost/pulls/4490/commits"},"statuses":{"href":"https://api.github.com/repos/TryGhost/Ghost/statuses/11a0f01e25459a86fac0a8a68b9beae6a12eb21d"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"sebgie","id":539213,"avatar_url":"https://avatars.githubusercontent.com/u/539213?v=3","gravatar_id":"","url":"https://api.github.com/users/sebgie","html_url":"https://github.com/sebgie","followers_url":"https://api.github.com/users/sebgie/followers","following_url":"https://api.github.com/users/sebgie/following{/other_user}","gists_url":"https://api.github.com/users/sebgie/gists{/gist_id}","starred_url":"https://api.github.com/users/sebgie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebgie/subscriptions","organizations_url":"https://api.github.com/users/sebgie/orgs","repos_url":"https://api.github.com/users/sebgie/repos","events_url":"https://api.github.com/users/sebgie/events{/privacy}","received_events_url":"https://api.github.com/users/sebgie/received_events","type":"User","site_admin":false},"comments":13,"review_comments":0,"commits":1,"additions":8,"deletions":2,"changed_files":1}}