{"action":"closed","issue":{"url":"https://api.github.com/repos/gilgamezh/jaumt/issues/3","labels_url":"https://api.github.com/repos/gilgamezh/jaumt/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/gilgamezh/jaumt/issues/3/comments","events_url":"https://api.github.com/repos/gilgamezh/jaumt/issues/3/events","html_url":"https://github.com/gilgamezh/jaumt/issues/3","id":60235058,"number":3,"title":"Funcionamiento básico","user":{"login":"gilgamezh","id":1496486,"avatar_url":"https://avatars.githubusercontent.com/u/1496486?v=3","gravatar_id":"","url":"https://api.github.com/users/gilgamezh","html_url":"https://github.com/gilgamezh","followers_url":"https://api.github.com/users/gilgamezh/followers","following_url":"https://api.github.com/users/gilgamezh/following{/other_user}","gists_url":"https://api.github.com/users/gilgamezh/gists{/gist_id}","starred_url":"https://api.github.com/users/gilgamezh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gilgamezh/subscriptions","organizations_url":"https://api.github.com/users/gilgamezh/orgs","repos_url":"https://api.github.com/users/gilgamezh/repos","events_url":"https://api.github.com/users/gilgamezh/events{/privacy}","received_events_url":"https://api.github.com/users/gilgamezh/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/gilgamezh/jaumt/milestones/1","html_url":"https://github.com/gilgamezh/jaumt/milestones/First%20Release","labels_url":"https://api.github.com/repos/gilgamezh/jaumt/milestones/1/labels","id":1012545,"number":1,"title":"First Release","description":"Primera versión con la funcionalidad básica","creator":{"login":"gilgamezh","id":1496486,"avatar_url":"https://avatars.githubusercontent.com/u/1496486?v=3","gravatar_id":"","url":"https://api.github.com/users/gilgamezh","html_url":"https://github.com/gilgamezh","followers_url":"https://api.github.com/users/gilgamezh/followers","following_url":"https://api.github.com/users/gilgamezh/following{/other_user}","gists_url":"https://api.github.com/users/gilgamezh/gists{/gist_id}","starred_url":"https://api.github.com/users/gilgamezh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gilgamezh/subscriptions","organizations_url":"https://api.github.com/users/gilgamezh/orgs","repos_url":"https://api.github.com/users/gilgamezh/repos","events_url":"https://api.github.com/users/gilgamezh/events{/privacy}","received_events_url":"https://api.github.com/users/gilgamezh/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":3,"state":"open","created_at":"2015-03-09T15:14:34Z","updated_at":"2015-03-13T17:22:23Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-03-08T01:14:33Z","updated_at":"2015-03-13T17:22:23Z","closed_at":"2015-03-13T17:22:23Z","body":"* Se da de alta una URL desde el backend\r\n  * Cada URL pertenece a un website y puede tener opcionalmente una lista de correos\r\n  * Cada website tiene un owner y una lista de correos obligatoria\r\n  * Se puede utilizar un header Host en cada url\r\n  * Se pueden setear headers extras en cada url\r\n\r\n* Una tarea de Celery que se ejecuta periodicamente pone todas las URLS en una cola de acuerdo a un campo date next_check\r\n\r\n* Los workers de celery procesan esa cola, cada worker:\r\n  * actualiza los datos en la DB para la URL en particular\r\n  * envía notificaciones en caso de ser necesario. (inicialmente solo envía emails)\r\n  * únicamente valida el http_status_code\r\n\r\n\r\n\r\n\r\n\r\n\r\n"}}