{"action":"created","issue":{"url":"https://api.github.com/repos/jupyter/nbgrader/issues/157","labels_url":"https://api.github.com/repos/jupyter/nbgrader/issues/157/labels{/name}","comments_url":"https://api.github.com/repos/jupyter/nbgrader/issues/157/comments","events_url":"https://api.github.com/repos/jupyter/nbgrader/issues/157/events","html_url":"https://github.com/jupyter/nbgrader/pull/157","id":63105078,"number":157,"title":"WIP: nbgrader authentication","user":{"login":"jdfreder","id":3292874,"avatar_url":"https://avatars.githubusercontent.com/u/3292874?v=3","gravatar_id":"","url":"https://api.github.com/users/jdfreder","html_url":"https://github.com/jdfreder","followers_url":"https://api.github.com/users/jdfreder/followers","following_url":"https://api.github.com/users/jdfreder/following{/other_user}","gists_url":"https://api.github.com/users/jdfreder/gists{/gist_id}","starred_url":"https://api.github.com/users/jdfreder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdfreder/subscriptions","organizations_url":"https://api.github.com/users/jdfreder/orgs","repos_url":"https://api.github.com/users/jdfreder/repos","events_url":"https://api.github.com/users/jdfreder/events{/privacy}","received_events_url":"https://api.github.com/users/jdfreder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jupyter/nbgrader/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2015-03-19T22:19:45Z","updated_at":"2015-03-24T16:09:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jupyter/nbgrader/pulls/157","html_url":"https://github.com/jupyter/nbgrader/pull/157","diff_url":"https://github.com/jupyter/nbgrader/pull/157.diff","patch_url":"https://github.com/jupyter/nbgrader/pull/157.patch"},"body":"Hey @jhamrick ,\r\n\r\nHere's a simple extensible authentication scheme.  \r\n\r\nFormgradeApp.authenticator_class can be used to change the authenticator.  `BaseAuth` is the base authenticator class.  A `NoAuth` class is provided as the default, and retains current behavior of `formgrade`.  I moved the `start_nbserver` traitlet and nbserver launching logic into `NoAuth`.\r\n\r\nThe `HubAuth`, empty now, will contain the logic for authenticating with JupyterHub.\r\n\r\nLet me know what you think of this design.  I've tested it locally and everything seems to work as-is.  The not yet implement `HubAuth` can be tested quickly (when it's done) using `nbgrader formgrade --FormgradeApp.authenticator_class='nbgrader.auth.hubauth.HubAuth'`.\r\n\r\ncloses #145 "},"comment":{"url":"https://api.github.com/repos/jupyter/nbgrader/issues/comments/85583299","html_url":"https://github.com/jupyter/nbgrader/pull/157#issuecomment-85583299","issue_url":"https://api.github.com/repos/jupyter/nbgrader/issues/157","id":85583299,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars.githubusercontent.com/u/2354108?v=3","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2015-03-24T16:09:55Z","updated_at":"2015-03-24T16:09:55Z","body":"\n[![Coverage Status](https://coveralls.io/builds/2182273/badge)](https://coveralls.io/builds/2182273)\n\nCoverage decreased (-1.32%) to 93.17% when pulling **d62ec2c80b9cde9eabd71681e318875caf3740de on jdfreder:auth** into **288a1d589e7dd2747110211a0462b6d82315541e on jupyter:master**.\n"}}