{"action":"created","issue":{"url":"https://api.github.com/repos/urda/django-letsencrypt/issues/3","repository_url":"https://api.github.com/repos/urda/django-letsencrypt","labels_url":"https://api.github.com/repos/urda/django-letsencrypt/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/urda/django-letsencrypt/issues/3/comments","events_url":"https://api.github.com/repos/urda/django-letsencrypt/issues/3/events","html_url":"https://github.com/urda/django-letsencrypt/pull/3","id":191763198,"number":3,"title":"Make AcmeChallenge's challenge a unique value","user":{"login":"urda","id":1648492,"avatar_url":"https://avatars.githubusercontent.com/u/1648492?v=3","gravatar_id":"","url":"https://api.github.com/users/urda","html_url":"https://github.com/urda","followers_url":"https://api.github.com/users/urda/followers","following_url":"https://api.github.com/users/urda/following{/other_user}","gists_url":"https://api.github.com/users/urda/gists{/gist_id}","starred_url":"https://api.github.com/users/urda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urda/subscriptions","organizations_url":"https://api.github.com/users/urda/orgs","repos_url":"https://api.github.com/users/urda/repos","events_url":"https://api.github.com/users/urda/events{/privacy}","received_events_url":"https://api.github.com/users/urda/received_events","type":"User","site_admin":false},"labels":[{"id":482667257,"url":"https://api.github.com/repos/urda/django-letsencrypt/labels/bug","name":"bug","color":"ee0701","default":true}],"state":"open","locked":false,"assignee":{"login":"urda","id":1648492,"avatar_url":"https://avatars.githubusercontent.com/u/1648492?v=3","gravatar_id":"","url":"https://api.github.com/users/urda","html_url":"https://github.com/urda","followers_url":"https://api.github.com/users/urda/followers","following_url":"https://api.github.com/users/urda/following{/other_user}","gists_url":"https://api.github.com/users/urda/gists{/gist_id}","starred_url":"https://api.github.com/users/urda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urda/subscriptions","organizations_url":"https://api.github.com/users/urda/orgs","repos_url":"https://api.github.com/users/urda/repos","events_url":"https://api.github.com/users/urda/events{/privacy}","received_events_url":"https://api.github.com/users/urda/received_events","type":"User","site_admin":false},"assignees":[{"login":"urda","id":1648492,"avatar_url":"https://avatars.githubusercontent.com/u/1648492?v=3","gravatar_id":"","url":"https://api.github.com/users/urda","html_url":"https://github.com/urda","followers_url":"https://api.github.com/users/urda/followers","following_url":"https://api.github.com/users/urda/following{/other_user}","gists_url":"https://api.github.com/users/urda/gists{/gist_id}","starred_url":"https://api.github.com/users/urda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urda/subscriptions","organizations_url":"https://api.github.com/users/urda/orgs","repos_url":"https://api.github.com/users/urda/repos","events_url":"https://api.github.com/users/urda/events{/privacy}","received_events_url":"https://api.github.com/users/urda/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/urda/django-letsencrypt/milestones/1","html_url":"https://github.com/urda/django-letsencrypt/milestones/v1.0.2","labels_url":"https://api.github.com/repos/urda/django-letsencrypt/milestones/1/labels","id":2155313,"number":1,"title":"v1.0.2","description":"","creator":{"login":"urda","id":1648492,"avatar_url":"https://avatars.githubusercontent.com/u/1648492?v=3","gravatar_id":"","url":"https://api.github.com/users/urda","html_url":"https://github.com/urda","followers_url":"https://api.github.com/users/urda/followers","following_url":"https://api.github.com/users/urda/following{/other_user}","gists_url":"https://api.github.com/users/urda/gists{/gist_id}","starred_url":"https://api.github.com/users/urda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urda/subscriptions","organizations_url":"https://api.github.com/users/urda/orgs","repos_url":"https://api.github.com/users/urda/repos","events_url":"https://api.github.com/users/urda/events{/privacy}","received_events_url":"https://api.github.com/users/urda/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2016-11-24T06:50:25Z","updated_at":"2016-11-25T20:42:39Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-11-25T20:42:39Z","updated_at":"2016-11-25T20:45:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/urda/django-letsencrypt/pulls/3","html_url":"https://github.com/urda/django-letsencrypt/pull/3","diff_url":"https://github.com/urda/django-letsencrypt/pull/3.diff","patch_url":"https://github.com/urda/django-letsencrypt/pull/3.patch"},"body":"This PR fixes a bug that allows for duplicate challenges to be generated and served. Currently, if two or more `AcmeChallenge` objects share the same `challenge` value a `MultipleObjectsReturned` will be thrown when visiting their challenge link.\r\n\r\n## Changes\r\n\r\n- [x] Updated `version`\r\n- [x] Created migrations:\r\n  - [x] Data migration to remove duplicate\r\n  - [x] Database migration to add `unique` to `challenge`\r\n- [ ] Tested against test app:\r\n  - [ ] Removed duplicates\r\n  - [ ] Prevents new duplicates\r\n  - [ ] Old object URL's work again.\r\n\r\n## Related Commits, Issues, PR's\r\n\r\n- Fixes #2 \r\n"},"comment":{"url":"https://api.github.com/repos/urda/django-letsencrypt/issues/comments/263020679","html_url":"https://github.com/urda/django-letsencrypt/pull/3#issuecomment-263020679","issue_url":"https://api.github.com/repos/urda/django-letsencrypt/issues/3","id":263020679,"user":{"login":"codecov-io","id":8655789,"avatar_url":"https://avatars.githubusercontent.com/u/8655789?v=3","gravatar_id":"","url":"https://api.github.com/users/codecov-io","html_url":"https://github.com/codecov-io","followers_url":"https://api.github.com/users/codecov-io/followers","following_url":"https://api.github.com/users/codecov-io/following{/other_user}","gists_url":"https://api.github.com/users/codecov-io/gists{/gist_id}","starred_url":"https://api.github.com/users/codecov-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codecov-io/subscriptions","organizations_url":"https://api.github.com/users/codecov-io/orgs","repos_url":"https://api.github.com/users/codecov-io/repos","events_url":"https://api.github.com/users/codecov-io/events{/privacy}","received_events_url":"https://api.github.com/users/codecov-io/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T20:45:05Z","updated_at":"2016-11-25T20:45:05Z","body":"## [Current coverage](https://codecov.io/gh/urda/django-letsencrypt/pull/3?src=pr) is 95.74% (diff: 89.47%)\n> Merging [#3](https://codecov.io/gh/urda/django-letsencrypt/pull/3?src=pr) into [master](https://codecov.io/gh/urda/django-letsencrypt/branch/master?src=pr) will decrease coverage by **4.25%**\n\n```diff\n@@           master         #3   diff @@\n========================================\n  Files           4          6     +2   \n  Lines          29         47    +18   \n  Methods         0          0          \n  Messages        0          0          \n  Branches        0          0          \n========================================\n+ Hits           29         45    +16   \n- Misses          0          2     +2   \n  Partials        0          0          \n```\n\n> Powered by [Codecov](https://codecov.io?src=pr). Last update [ace358a...70b57df](https://codecov.io/gh/urda/django-letsencrypt/compare/ace358ae153e9e291787889572c9d5ac05fd017e...70b57df6285f122042da9ace7839ba019e01eb66?src=pr)"}}
{"actor":{"display_login":"codecov-io"}}