{"action":"closed","number":809,"pull_request":{"url":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809","id":72278870,"html_url":"https://github.com/littleweaver/django-brambling/pull/809","diff_url":"https://github.com/littleweaver/django-brambling/pull/809.diff","patch_url":"https://github.com/littleweaver/django-brambling/pull/809.patch","issue_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/809","number":809,"state":"closed","locked":false,"title":"Payment refactor","user":{"login":"melinath","id":299979,"avatar_url":"https://avatars.githubusercontent.com/u/299979?v=3","gravatar_id":"","url":"https://api.github.com/users/melinath","html_url":"https://github.com/melinath","followers_url":"https://api.github.com/users/melinath/followers","following_url":"https://api.github.com/users/melinath/following{/other_user}","gists_url":"https://api.github.com/users/melinath/gists{/gist_id}","starred_url":"https://api.github.com/users/melinath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/melinath/subscriptions","organizations_url":"https://api.github.com/users/melinath/orgs","repos_url":"https://api.github.com/users/melinath/repos","events_url":"https://api.github.com/users/melinath/events{/privacy}","received_events_url":"https://api.github.com/users/melinath/received_events","type":"User","site_admin":false},"body":"This branch consolidates most payment-related functionality under `brambling.payment`, which makes testing and updating apis easier (since we know more or less what parts of the system \"know\" about the inner workings of the remote API. This is still something we should keep working towards, but... this should do for now.\r\n\r\nRelatedly, this PR also updates the stripe API and adds a test proving that partial refunds aren't currently \"broken\".\r\n\r\nThis is a step towards #380. I'm hoping to get this reviewed by @chigby or @harrislapiroff soon so that I can have two relatively simple PRs rather than one mega-PR.","created_at":"2016-06-02T01:54:40Z","updated_at":"2016-06-03T23:08:09Z","closed_at":"2016-06-03T23:08:06Z","merged_at":"2016-06-03T23:08:06Z","merge_commit_sha":"e25f3b3c8aace04bf96a1c6038b172286755351d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809/commits","review_comments_url":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809/comments","review_comment_url":"https://api.github.com/repos/littleweaver/django-brambling/pulls/comments{/number}","comments_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/809/comments","statuses_url":"https://api.github.com/repos/littleweaver/django-brambling/statuses/f69fdcc7ad543b31a2a4a5eea98fe26ac1e85ea4","head":{"label":"littleweaver:payment-refactor","ref":"payment-refactor","sha":"f69fdcc7ad543b31a2a4a5eea98fe26ac1e85ea4","user":{"login":"littleweaver","id":6463669,"avatar_url":"https://avatars.githubusercontent.com/u/6463669?v=3","gravatar_id":"","url":"https://api.github.com/users/littleweaver","html_url":"https://github.com/littleweaver","followers_url":"https://api.github.com/users/littleweaver/followers","following_url":"https://api.github.com/users/littleweaver/following{/other_user}","gists_url":"https://api.github.com/users/littleweaver/gists{/gist_id}","starred_url":"https://api.github.com/users/littleweaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/littleweaver/subscriptions","organizations_url":"https://api.github.com/users/littleweaver/orgs","repos_url":"https://api.github.com/users/littleweaver/repos","events_url":"https://api.github.com/users/littleweaver/events{/privacy}","received_events_url":"https://api.github.com/users/littleweaver/received_events","type":"Organization","site_admin":false},"repo":{"id":16976982,"name":"django-brambling","full_name":"littleweaver/django-brambling","owner":{"login":"littleweaver","id":6463669,"avatar_url":"https://avatars.githubusercontent.com/u/6463669?v=3","gravatar_id":"","url":"https://api.github.com/users/littleweaver","html_url":"https://github.com/littleweaver","followers_url":"https://api.github.com/users/littleweaver/followers","following_url":"https://api.github.com/users/littleweaver/following{/other_user}","gists_url":"https://api.github.com/users/littleweaver/gists{/gist_id}","starred_url":"https://api.github.com/users/littleweaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/littleweaver/subscriptions","organizations_url":"https://api.github.com/users/littleweaver/orgs","repos_url":"https://api.github.com/users/littleweaver/repos","events_url":"https://api.github.com/users/littleweaver/events{/privacy}","received_events_url":"https://api.github.com/users/littleweaver/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/littleweaver/django-brambling","description":"Event website manager, specifically designed for dance weekends or other events with multiple simultaneous tracks of classes.","fork":false,"url":"https://api.github.com/repos/littleweaver/django-brambling","forks_url":"https://api.github.com/repos/littleweaver/django-brambling/forks","keys_url":"https://api.github.com/repos/littleweaver/django-brambling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/littleweaver/django-brambling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/littleweaver/django-brambling/teams","hooks_url":"https://api.github.com/repos/littleweaver/django-brambling/hooks","issue_events_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/events{/number}","events_url":"https://api.github.com/repos/littleweaver/django-brambling/events","assignees_url":"https://api.github.com/repos/littleweaver/django-brambling/assignees{/user}","branches_url":"https://api.github.com/repos/littleweaver/django-brambling/branches{/branch}","tags_url":"https://api.github.com/repos/littleweaver/django-brambling/tags","blobs_url":"https://api.github.com/repos/littleweaver/django-brambling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/littleweaver/django-brambling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/littleweaver/django-brambling/git/refs{/sha}","trees_url":"https://api.github.com/repos/littleweaver/django-brambling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/littleweaver/django-brambling/statuses/{sha}","languages_url":"https://api.github.com/repos/littleweaver/django-brambling/languages","stargazers_url":"https://api.github.com/repos/littleweaver/django-brambling/stargazers","contributors_url":"https://api.github.com/repos/littleweaver/django-brambling/contributors","subscribers_url":"https://api.github.com/repos/littleweaver/django-brambling/subscribers","subscription_url":"https://api.github.com/repos/littleweaver/django-brambling/subscription","commits_url":"https://api.github.com/repos/littleweaver/django-brambling/commits{/sha}","git_commits_url":"https://api.github.com/repos/littleweaver/django-brambling/git/commits{/sha}","comments_url":"https://api.github.com/repos/littleweaver/django-brambling/comments{/number}","issue_comment_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/comments{/number}","contents_url":"https://api.github.com/repos/littleweaver/django-brambling/contents/{+path}","compare_url":"https://api.github.com/repos/littleweaver/django-brambling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/littleweaver/django-brambling/merges","archive_url":"https://api.github.com/repos/littleweaver/django-brambling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/littleweaver/django-brambling/downloads","issues_url":"https://api.github.com/repos/littleweaver/django-brambling/issues{/number}","pulls_url":"https://api.github.com/repos/littleweaver/django-brambling/pulls{/number}","milestones_url":"https://api.github.com/repos/littleweaver/django-brambling/milestones{/number}","notifications_url":"https://api.github.com/repos/littleweaver/django-brambling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/littleweaver/django-brambling/labels{/name}","releases_url":"https://api.github.com/repos/littleweaver/django-brambling/releases{/id}","deployments_url":"https://api.github.com/repos/littleweaver/django-brambling/deployments","created_at":"2014-02-19T07:33:46Z","updated_at":"2016-05-12T18:43:06Z","pushed_at":"2016-06-03T23:08:07Z","git_url":"git://github.com/littleweaver/django-brambling.git","ssh_url":"git@github.com:littleweaver/django-brambling.git","clone_url":"https://github.com/littleweaver/django-brambling.git","svn_url":"https://github.com/littleweaver/django-brambling","homepage":"","size":7610,"stargazers_count":7,"watchers_count":7,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"open_issues_count":195,"forks":2,"open_issues":195,"watchers":7,"default_branch":"master"}},"base":{"label":"littleweaver:master","ref":"master","sha":"49e1f136e5776efbf7b9fc4074ffd63d57240f19","user":{"login":"littleweaver","id":6463669,"avatar_url":"https://avatars.githubusercontent.com/u/6463669?v=3","gravatar_id":"","url":"https://api.github.com/users/littleweaver","html_url":"https://github.com/littleweaver","followers_url":"https://api.github.com/users/littleweaver/followers","following_url":"https://api.github.com/users/littleweaver/following{/other_user}","gists_url":"https://api.github.com/users/littleweaver/gists{/gist_id}","starred_url":"https://api.github.com/users/littleweaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/littleweaver/subscriptions","organizations_url":"https://api.github.com/users/littleweaver/orgs","repos_url":"https://api.github.com/users/littleweaver/repos","events_url":"https://api.github.com/users/littleweaver/events{/privacy}","received_events_url":"https://api.github.com/users/littleweaver/received_events","type":"Organization","site_admin":false},"repo":{"id":16976982,"name":"django-brambling","full_name":"littleweaver/django-brambling","owner":{"login":"littleweaver","id":6463669,"avatar_url":"https://avatars.githubusercontent.com/u/6463669?v=3","gravatar_id":"","url":"https://api.github.com/users/littleweaver","html_url":"https://github.com/littleweaver","followers_url":"https://api.github.com/users/littleweaver/followers","following_url":"https://api.github.com/users/littleweaver/following{/other_user}","gists_url":"https://api.github.com/users/littleweaver/gists{/gist_id}","starred_url":"https://api.github.com/users/littleweaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/littleweaver/subscriptions","organizations_url":"https://api.github.com/users/littleweaver/orgs","repos_url":"https://api.github.com/users/littleweaver/repos","events_url":"https://api.github.com/users/littleweaver/events{/privacy}","received_events_url":"https://api.github.com/users/littleweaver/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/littleweaver/django-brambling","description":"Event website manager, specifically designed for dance weekends or other events with multiple simultaneous tracks of classes.","fork":false,"url":"https://api.github.com/repos/littleweaver/django-brambling","forks_url":"https://api.github.com/repos/littleweaver/django-brambling/forks","keys_url":"https://api.github.com/repos/littleweaver/django-brambling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/littleweaver/django-brambling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/littleweaver/django-brambling/teams","hooks_url":"https://api.github.com/repos/littleweaver/django-brambling/hooks","issue_events_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/events{/number}","events_url":"https://api.github.com/repos/littleweaver/django-brambling/events","assignees_url":"https://api.github.com/repos/littleweaver/django-brambling/assignees{/user}","branches_url":"https://api.github.com/repos/littleweaver/django-brambling/branches{/branch}","tags_url":"https://api.github.com/repos/littleweaver/django-brambling/tags","blobs_url":"https://api.github.com/repos/littleweaver/django-brambling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/littleweaver/django-brambling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/littleweaver/django-brambling/git/refs{/sha}","trees_url":"https://api.github.com/repos/littleweaver/django-brambling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/littleweaver/django-brambling/statuses/{sha}","languages_url":"https://api.github.com/repos/littleweaver/django-brambling/languages","stargazers_url":"https://api.github.com/repos/littleweaver/django-brambling/stargazers","contributors_url":"https://api.github.com/repos/littleweaver/django-brambling/contributors","subscribers_url":"https://api.github.com/repos/littleweaver/django-brambling/subscribers","subscription_url":"https://api.github.com/repos/littleweaver/django-brambling/subscription","commits_url":"https://api.github.com/repos/littleweaver/django-brambling/commits{/sha}","git_commits_url":"https://api.github.com/repos/littleweaver/django-brambling/git/commits{/sha}","comments_url":"https://api.github.com/repos/littleweaver/django-brambling/comments{/number}","issue_comment_url":"https://api.github.com/repos/littleweaver/django-brambling/issues/comments{/number}","contents_url":"https://api.github.com/repos/littleweaver/django-brambling/contents/{+path}","compare_url":"https://api.github.com/repos/littleweaver/django-brambling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/littleweaver/django-brambling/merges","archive_url":"https://api.github.com/repos/littleweaver/django-brambling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/littleweaver/django-brambling/downloads","issues_url":"https://api.github.com/repos/littleweaver/django-brambling/issues{/number}","pulls_url":"https://api.github.com/repos/littleweaver/django-brambling/pulls{/number}","milestones_url":"https://api.github.com/repos/littleweaver/django-brambling/milestones{/number}","notifications_url":"https://api.github.com/repos/littleweaver/django-brambling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/littleweaver/django-brambling/labels{/name}","releases_url":"https://api.github.com/repos/littleweaver/django-brambling/releases{/id}","deployments_url":"https://api.github.com/repos/littleweaver/django-brambling/deployments","created_at":"2014-02-19T07:33:46Z","updated_at":"2016-05-12T18:43:06Z","pushed_at":"2016-06-03T23:08:07Z","git_url":"git://github.com/littleweaver/django-brambling.git","ssh_url":"git@github.com:littleweaver/django-brambling.git","clone_url":"https://github.com/littleweaver/django-brambling.git","svn_url":"https://github.com/littleweaver/django-brambling","homepage":"","size":7610,"stargazers_count":7,"watchers_count":7,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"open_issues_count":195,"forks":2,"open_issues":195,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809"},"html":{"href":"https://github.com/littleweaver/django-brambling/pull/809"},"issue":{"href":"https://api.github.com/repos/littleweaver/django-brambling/issues/809"},"comments":{"href":"https://api.github.com/repos/littleweaver/django-brambling/issues/809/comments"},"review_comments":{"href":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809/comments"},"review_comment":{"href":"https://api.github.com/repos/littleweaver/django-brambling/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/littleweaver/django-brambling/pulls/809/commits"},"statuses":{"href":"https://api.github.com/repos/littleweaver/django-brambling/statuses/f69fdcc7ad543b31a2a4a5eea98fe26ac1e85ea4"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"melinath","id":299979,"avatar_url":"https://avatars.githubusercontent.com/u/299979?v=3","gravatar_id":"","url":"https://api.github.com/users/melinath","html_url":"https://github.com/melinath","followers_url":"https://api.github.com/users/melinath/followers","following_url":"https://api.github.com/users/melinath/following{/other_user}","gists_url":"https://api.github.com/users/melinath/gists{/gist_id}","starred_url":"https://api.github.com/users/melinath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/melinath/subscriptions","organizations_url":"https://api.github.com/users/melinath/orgs","repos_url":"https://api.github.com/users/melinath/repos","events_url":"https://api.github.com/users/melinath/events{/privacy}","received_events_url":"https://api.github.com/users/melinath/received_events","type":"User","site_admin":false},"comments":6,"review_comments":0,"commits":9,"additions":813,"deletions":537,"changed_files":30}}
{"actor":{"display_login":"melinath"}}