{"action":"closed","number":389,"pull_request":{"url":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389","id":72017914,"html_url":"https://github.com/evonove/django-oauth-toolkit/pull/389","diff_url":"https://github.com/evonove/django-oauth-toolkit/pull/389.diff","patch_url":"https://github.com/evonove/django-oauth-toolkit/pull/389.patch","issue_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/389","number":389,"state":"closed","locked":false,"title":"Reuse refresh tokens if enabled.","user":{"login":"jimgraham","id":430293,"avatar_url":"https://avatars.githubusercontent.com/u/430293?v=3","gravatar_id":"","url":"https://api.github.com/users/jimgraham","html_url":"https://github.com/jimgraham","followers_url":"https://api.github.com/users/jimgraham/followers","following_url":"https://api.github.com/users/jimgraham/following{/other_user}","gists_url":"https://api.github.com/users/jimgraham/gists{/gist_id}","starred_url":"https://api.github.com/users/jimgraham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jimgraham/subscriptions","organizations_url":"https://api.github.com/users/jimgraham/orgs","repos_url":"https://api.github.com/users/jimgraham/repos","events_url":"https://api.github.com/users/jimgraham/events{/privacy}","received_events_url":"https://api.github.com/users/jimgraham/received_events","type":"User","site_admin":false},"body":"Reuse refresh tokens if it's enabled. This is based on a code sample\nin #304 from https://github.com/evonove/django-oauth-toolkit/issues/304#issuecomment-175636716\n\nFor us, this has cleaned up a number of race conditions deleting and recreating\ntokens.\n","created_at":"2016-05-31T13:44:31Z","updated_at":"2016-11-17T21:51:08Z","closed_at":"2016-11-17T21:51:08Z","merged_at":null,"merge_commit_sha":"664053a89fa6653cb31d021b726ce89f698d7455","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389/commits","review_comments_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389/comments","review_comment_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/389/comments","statuses_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/statuses/5f7f8f5c4e98253225b1ddd5553771d43af4b2cc","head":{"label":"waveaccounting:save_bearer_token_safety","ref":"save_bearer_token_safety","sha":"5f7f8f5c4e98253225b1ddd5553771d43af4b2cc","user":{"login":"waveaccounting","id":779298,"avatar_url":"https://avatars.githubusercontent.com/u/779298?v=3","gravatar_id":"","url":"https://api.github.com/users/waveaccounting","html_url":"https://github.com/waveaccounting","followers_url":"https://api.github.com/users/waveaccounting/followers","following_url":"https://api.github.com/users/waveaccounting/following{/other_user}","gists_url":"https://api.github.com/users/waveaccounting/gists{/gist_id}","starred_url":"https://api.github.com/users/waveaccounting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/waveaccounting/subscriptions","organizations_url":"https://api.github.com/users/waveaccounting/orgs","repos_url":"https://api.github.com/users/waveaccounting/repos","events_url":"https://api.github.com/users/waveaccounting/events{/privacy}","received_events_url":"https://api.github.com/users/waveaccounting/received_events","type":"Organization","site_admin":false},"repo":{"id":19111221,"name":"django-oauth-toolkit","full_name":"waveaccounting/django-oauth-toolkit","owner":{"login":"waveaccounting","id":779298,"avatar_url":"https://avatars.githubusercontent.com/u/779298?v=3","gravatar_id":"","url":"https://api.github.com/users/waveaccounting","html_url":"https://github.com/waveaccounting","followers_url":"https://api.github.com/users/waveaccounting/followers","following_url":"https://api.github.com/users/waveaccounting/following{/other_user}","gists_url":"https://api.github.com/users/waveaccounting/gists{/gist_id}","starred_url":"https://api.github.com/users/waveaccounting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/waveaccounting/subscriptions","organizations_url":"https://api.github.com/users/waveaccounting/orgs","repos_url":"https://api.github.com/users/waveaccounting/repos","events_url":"https://api.github.com/users/waveaccounting/events{/privacy}","received_events_url":"https://api.github.com/users/waveaccounting/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/waveaccounting/django-oauth-toolkit","description":"OAuth2 goodies for the Djangonauts!","fork":true,"url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit","forks_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/forks","keys_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/teams","hooks_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/hooks","issue_events_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/issues/events{/number}","events_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/events","assignees_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/assignees{/user}","branches_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/branches{/branch}","tags_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/tags","blobs_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/git/refs{/sha}","trees_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/statuses/{sha}","languages_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/languages","stargazers_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/stargazers","contributors_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/contributors","subscribers_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/subscribers","subscription_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/subscription","commits_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/commits{/sha}","git_commits_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/git/commits{/sha}","comments_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/comments{/number}","issue_comment_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/issues/comments{/number}","contents_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/contents/{+path}","compare_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/merges","archive_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/downloads","issues_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/issues{/number}","pulls_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/pulls{/number}","milestones_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/milestones{/number}","notifications_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/labels{/name}","releases_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/releases{/id}","deployments_url":"https://api.github.com/repos/waveaccounting/django-oauth-toolkit/deployments","created_at":"2014-04-24T14:22:08Z","updated_at":"2016-05-16T14:33:42Z","pushed_at":"2016-05-31T16:05:00Z","git_url":"git://github.com/waveaccounting/django-oauth-toolkit.git","ssh_url":"git@github.com:waveaccounting/django-oauth-toolkit.git","clone_url":"https://github.com/waveaccounting/django-oauth-toolkit.git","svn_url":"https://github.com/waveaccounting/django-oauth-toolkit","homepage":"","size":879,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"evonove:master","ref":"master","sha":"7cba4a5baa49005d449213b9738f427ceeb6af69","user":{"login":"evonove","id":585352,"avatar_url":"https://avatars.githubusercontent.com/u/585352?v=3","gravatar_id":"","url":"https://api.github.com/users/evonove","html_url":"https://github.com/evonove","followers_url":"https://api.github.com/users/evonove/followers","following_url":"https://api.github.com/users/evonove/following{/other_user}","gists_url":"https://api.github.com/users/evonove/gists{/gist_id}","starred_url":"https://api.github.com/users/evonove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evonove/subscriptions","organizations_url":"https://api.github.com/users/evonove/orgs","repos_url":"https://api.github.com/users/evonove/repos","events_url":"https://api.github.com/users/evonove/events{/privacy}","received_events_url":"https://api.github.com/users/evonove/received_events","type":"Organization","site_admin":false},"repo":{"id":10176112,"name":"django-oauth-toolkit","full_name":"evonove/django-oauth-toolkit","owner":{"login":"evonove","id":585352,"avatar_url":"https://avatars.githubusercontent.com/u/585352?v=3","gravatar_id":"","url":"https://api.github.com/users/evonove","html_url":"https://github.com/evonove","followers_url":"https://api.github.com/users/evonove/followers","following_url":"https://api.github.com/users/evonove/following{/other_user}","gists_url":"https://api.github.com/users/evonove/gists{/gist_id}","starred_url":"https://api.github.com/users/evonove/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evonove/subscriptions","organizations_url":"https://api.github.com/users/evonove/orgs","repos_url":"https://api.github.com/users/evonove/repos","events_url":"https://api.github.com/users/evonove/events{/privacy}","received_events_url":"https://api.github.com/users/evonove/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/evonove/django-oauth-toolkit","description":"OAuth2 goodies for the Djangonauts!","fork":false,"url":"https://api.github.com/repos/evonove/django-oauth-toolkit","forks_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/forks","keys_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/teams","hooks_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/hooks","issue_events_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/events{/number}","events_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/events","assignees_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/assignees{/user}","branches_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/branches{/branch}","tags_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/tags","blobs_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/git/refs{/sha}","trees_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/statuses/{sha}","languages_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/languages","stargazers_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/stargazers","contributors_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/contributors","subscribers_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/subscribers","subscription_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/subscription","commits_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/commits{/sha}","git_commits_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/git/commits{/sha}","comments_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/comments{/number}","issue_comment_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/comments{/number}","contents_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/contents/{+path}","compare_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/merges","archive_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/downloads","issues_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues{/number}","pulls_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls{/number}","milestones_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/milestones{/number}","notifications_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/labels{/name}","releases_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/releases{/id}","deployments_url":"https://api.github.com/repos/evonove/django-oauth-toolkit/deployments","created_at":"2013-05-20T15:46:18Z","updated_at":"2016-11-17T13:42:28Z","pushed_at":"2016-11-17T21:50:13Z","git_url":"git://github.com/evonove/django-oauth-toolkit.git","ssh_url":"git@github.com:evonove/django-oauth-toolkit.git","clone_url":"https://github.com/evonove/django-oauth-toolkit.git","svn_url":"https://github.com/evonove/django-oauth-toolkit","homepage":"","size":1284,"stargazers_count":869,"watchers_count":869,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":262,"mirror_url":null,"open_issues_count":99,"forks":262,"open_issues":99,"watchers":869,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389"},"html":{"href":"https://github.com/evonove/django-oauth-toolkit/pull/389"},"issue":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/389"},"comments":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/issues/389/comments"},"review_comments":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389/comments"},"review_comment":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/pulls/389/commits"},"statuses":{"href":"https://api.github.com/repos/evonove/django-oauth-toolkit/statuses/5f7f8f5c4e98253225b1ddd5553771d43af4b2cc"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":5,"review_comments":0,"commits":2,"additions":209,"deletions":25,"changed_files":2}}
{"actor":{"display_login":"synasius"}}