{"action":"created","comment":{"url":"https://api.github.com/repos/autolab/Autolab/pulls/comments/23021415","id":23021415,"diff_hunk":"@@ -475,6 +475,8 @@ def detectAndConvertRoster(roster)\n       # First Name(6), (skip)(7), Andrew ID(8), (skip)(9), School(10), \n       # Major(11), Year(12), (skip)(13), Grade Policy(14), ...\n \n+      # Sanitize roster input, ignoring empty / incomplete lines.\n+      parsedRoster.select! { |row| row.length == CMU_ROSTER_COLUMNS }","path":"app/controllers/admins_controller.rb","position":null,"original_position":5,"commit_id":"9d0af3ad8b0bf1d9c6f2248c9a3b52ebbb56ccbd","original_commit_id":"395b78cebd14b60d34cdfc132b28383b28f81ee9","user":{"login":"ymzong","id":2977482,"avatar_url":"https://avatars.githubusercontent.com/u/2977482?v=3","gravatar_id":"","url":"https://api.github.com/users/ymzong","html_url":"https://github.com/ymzong","followers_url":"https://api.github.com/users/ymzong/followers","following_url":"https://api.github.com/users/ymzong/following{/other_user}","gists_url":"https://api.github.com/users/ymzong/gists{/gist_id}","starred_url":"https://api.github.com/users/ymzong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ymzong/subscriptions","organizations_url":"https://api.github.com/users/ymzong/orgs","repos_url":"https://api.github.com/users/ymzong/repos","events_url":"https://api.github.com/users/ymzong/events{/privacy}","received_events_url":"https://api.github.com/users/ymzong/received_events","type":"User","site_admin":false},"body":"@dlbucci I changed `CMU_ROSTER_COLUMNS` to `NEW_ROSTER_COLUMNS`.\r\n\r\nHowever, we still need to check `length == NEW_ROSTER_COLUMNS` twice because the first time is when we distinguish if the roster is of new format or old format; the second time is when I filter for incomplete rows, assuming the roster is of new format.","created_at":"2015-01-15T16:22:19Z","updated_at":"2015-01-15T16:22:19Z","html_url":"https://github.com/autolab/Autolab/pull/92#discussion_r23021415","pull_request_url":"https://api.github.com/repos/autolab/Autolab/pulls/92","_links":{"self":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/comments/23021415"},"html":{"href":"https://github.com/autolab/Autolab/pull/92#discussion_r23021415"},"pull_request":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/92"}}},"pull_request":{"url":"https://api.github.com/repos/autolab/Autolab/pulls/92","id":27403411,"html_url":"https://github.com/autolab/Autolab/pull/92","diff_url":"https://github.com/autolab/Autolab/pull/92.diff","patch_url":"https://github.com/autolab/Autolab/pull/92.patch","issue_url":"https://api.github.com/repos/autolab/Autolab/issues/92","number":92,"state":"open","locked":false,"title":"Filter import roster for well-formed entries","user":{"login":"ymzong","id":2977482,"avatar_url":"https://avatars.githubusercontent.com/u/2977482?v=3","gravatar_id":"","url":"https://api.github.com/users/ymzong","html_url":"https://github.com/ymzong","followers_url":"https://api.github.com/users/ymzong/followers","following_url":"https://api.github.com/users/ymzong/following{/other_user}","gists_url":"https://api.github.com/users/ymzong/gists{/gist_id}","starred_url":"https://api.github.com/users/ymzong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ymzong/subscriptions","organizations_url":"https://api.github.com/users/ymzong/orgs","repos_url":"https://api.github.com/users/ymzong/repos","events_url":"https://api.github.com/users/ymzong/events{/privacy}","received_events_url":"https://api.github.com/users/ymzong/received_events","type":"User","site_admin":false},"body":"Fixes #67.\r\n\r\nFilters the import roster such that only lines with the \"correct\" number of cells are processed. This is mainly used to ignore empty lines / incomplete lines.","created_at":"2015-01-15T03:12:12Z","updated_at":"2015-01-15T16:22:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f8ffdb498704f88f542849ea6881e601140968d6","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/autolab/Autolab/pulls/92/commits","review_comments_url":"https://api.github.com/repos/autolab/Autolab/pulls/92/comments","review_comment_url":"https://api.github.com/repos/autolab/Autolab/pulls/comments/{number}","comments_url":"https://api.github.com/repos/autolab/Autolab/issues/92/comments","statuses_url":"https://api.github.com/repos/autolab/Autolab/statuses/9d0af3ad8b0bf1d9c6f2248c9a3b52ebbb56ccbd","head":{"label":"autolab:fix_roster_import","ref":"fix_roster_import","sha":"9d0af3ad8b0bf1d9c6f2248c9a3b52ebbb56ccbd","user":{"login":"autolab","id":2337016,"avatar_url":"https://avatars.githubusercontent.com/u/2337016?v=3","gravatar_id":"","url":"https://api.github.com/users/autolab","html_url":"https://github.com/autolab","followers_url":"https://api.github.com/users/autolab/followers","following_url":"https://api.github.com/users/autolab/following{/other_user}","gists_url":"https://api.github.com/users/autolab/gists{/gist_id}","starred_url":"https://api.github.com/users/autolab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/autolab/subscriptions","organizations_url":"https://api.github.com/users/autolab/orgs","repos_url":"https://api.github.com/users/autolab/repos","events_url":"https://api.github.com/users/autolab/events{/privacy}","received_events_url":"https://api.github.com/users/autolab/received_events","type":"Organization","site_admin":false},"repo":{"id":25742807,"name":"Autolab","full_name":"autolab/Autolab","owner":{"login":"autolab","id":2337016,"avatar_url":"https://avatars.githubusercontent.com/u/2337016?v=3","gravatar_id":"","url":"https://api.github.com/users/autolab","html_url":"https://github.com/autolab","followers_url":"https://api.github.com/users/autolab/followers","following_url":"https://api.github.com/users/autolab/following{/other_user}","gists_url":"https://api.github.com/users/autolab/gists{/gist_id}","starred_url":"https://api.github.com/users/autolab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/autolab/subscriptions","organizations_url":"https://api.github.com/users/autolab/orgs","repos_url":"https://api.github.com/users/autolab/repos","events_url":"https://api.github.com/users/autolab/events{/privacy}","received_events_url":"https://api.github.com/users/autolab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/autolab/Autolab","description":"Course management service that enables auto-graded programming assignments.","fork":false,"url":"https://api.github.com/repos/autolab/Autolab","forks_url":"https://api.github.com/repos/autolab/Autolab/forks","keys_url":"https://api.github.com/repos/autolab/Autolab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/autolab/Autolab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/autolab/Autolab/teams","hooks_url":"https://api.github.com/repos/autolab/Autolab/hooks","issue_events_url":"https://api.github.com/repos/autolab/Autolab/issues/events{/number}","events_url":"https://api.github.com/repos/autolab/Autolab/events","assignees_url":"https://api.github.com/repos/autolab/Autolab/assignees{/user}","branches_url":"https://api.github.com/repos/autolab/Autolab/branches{/branch}","tags_url":"https://api.github.com/repos/autolab/Autolab/tags","blobs_url":"https://api.github.com/repos/autolab/Autolab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/autolab/Autolab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/autolab/Autolab/git/refs{/sha}","trees_url":"https://api.github.com/repos/autolab/Autolab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/autolab/Autolab/statuses/{sha}","languages_url":"https://api.github.com/repos/autolab/Autolab/languages","stargazers_url":"https://api.github.com/repos/autolab/Autolab/stargazers","contributors_url":"https://api.github.com/repos/autolab/Autolab/contributors","subscribers_url":"https://api.github.com/repos/autolab/Autolab/subscribers","subscription_url":"https://api.github.com/repos/autolab/Autolab/subscription","commits_url":"https://api.github.com/repos/autolab/Autolab/commits{/sha}","git_commits_url":"https://api.github.com/repos/autolab/Autolab/git/commits{/sha}","comments_url":"https://api.github.com/repos/autolab/Autolab/comments{/number}","issue_comment_url":"https://api.github.com/repos/autolab/Autolab/issues/comments/{number}","contents_url":"https://api.github.com/repos/autolab/Autolab/contents/{+path}","compare_url":"https://api.github.com/repos/autolab/Autolab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/autolab/Autolab/merges","archive_url":"https://api.github.com/repos/autolab/Autolab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/autolab/Autolab/downloads","issues_url":"https://api.github.com/repos/autolab/Autolab/issues{/number}","pulls_url":"https://api.github.com/repos/autolab/Autolab/pulls{/number}","milestones_url":"https://api.github.com/repos/autolab/Autolab/milestones{/number}","notifications_url":"https://api.github.com/repos/autolab/Autolab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/autolab/Autolab/labels{/name}","releases_url":"https://api.github.com/repos/autolab/Autolab/releases{/id}","created_at":"2014-10-25T18:58:53Z","updated_at":"2015-01-15T14:11:47Z","pushed_at":"2015-01-15T15:44:01Z","git_url":"git://github.com/autolab/Autolab.git","ssh_url":"git@github.com:autolab/Autolab.git","clone_url":"https://github.com/autolab/Autolab.git","svn_url":"https://github.com/autolab/Autolab","homepage":"http://www.autolabproject.com/","size":2151,"stargazers_count":26,"watchers_count":26,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":37,"forks":24,"open_issues":37,"watchers":26,"default_branch":"master"}},"base":{"label":"autolab:master","ref":"master","sha":"8c749c912469a60ebaa864a9383e605b0751c78d","user":{"login":"autolab","id":2337016,"avatar_url":"https://avatars.githubusercontent.com/u/2337016?v=3","gravatar_id":"","url":"https://api.github.com/users/autolab","html_url":"https://github.com/autolab","followers_url":"https://api.github.com/users/autolab/followers","following_url":"https://api.github.com/users/autolab/following{/other_user}","gists_url":"https://api.github.com/users/autolab/gists{/gist_id}","starred_url":"https://api.github.com/users/autolab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/autolab/subscriptions","organizations_url":"https://api.github.com/users/autolab/orgs","repos_url":"https://api.github.com/users/autolab/repos","events_url":"https://api.github.com/users/autolab/events{/privacy}","received_events_url":"https://api.github.com/users/autolab/received_events","type":"Organization","site_admin":false},"repo":{"id":25742807,"name":"Autolab","full_name":"autolab/Autolab","owner":{"login":"autolab","id":2337016,"avatar_url":"https://avatars.githubusercontent.com/u/2337016?v=3","gravatar_id":"","url":"https://api.github.com/users/autolab","html_url":"https://github.com/autolab","followers_url":"https://api.github.com/users/autolab/followers","following_url":"https://api.github.com/users/autolab/following{/other_user}","gists_url":"https://api.github.com/users/autolab/gists{/gist_id}","starred_url":"https://api.github.com/users/autolab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/autolab/subscriptions","organizations_url":"https://api.github.com/users/autolab/orgs","repos_url":"https://api.github.com/users/autolab/repos","events_url":"https://api.github.com/users/autolab/events{/privacy}","received_events_url":"https://api.github.com/users/autolab/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/autolab/Autolab","description":"Course management service that enables auto-graded programming assignments.","fork":false,"url":"https://api.github.com/repos/autolab/Autolab","forks_url":"https://api.github.com/repos/autolab/Autolab/forks","keys_url":"https://api.github.com/repos/autolab/Autolab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/autolab/Autolab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/autolab/Autolab/teams","hooks_url":"https://api.github.com/repos/autolab/Autolab/hooks","issue_events_url":"https://api.github.com/repos/autolab/Autolab/issues/events{/number}","events_url":"https://api.github.com/repos/autolab/Autolab/events","assignees_url":"https://api.github.com/repos/autolab/Autolab/assignees{/user}","branches_url":"https://api.github.com/repos/autolab/Autolab/branches{/branch}","tags_url":"https://api.github.com/repos/autolab/Autolab/tags","blobs_url":"https://api.github.com/repos/autolab/Autolab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/autolab/Autolab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/autolab/Autolab/git/refs{/sha}","trees_url":"https://api.github.com/repos/autolab/Autolab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/autolab/Autolab/statuses/{sha}","languages_url":"https://api.github.com/repos/autolab/Autolab/languages","stargazers_url":"https://api.github.com/repos/autolab/Autolab/stargazers","contributors_url":"https://api.github.com/repos/autolab/Autolab/contributors","subscribers_url":"https://api.github.com/repos/autolab/Autolab/subscribers","subscription_url":"https://api.github.com/repos/autolab/Autolab/subscription","commits_url":"https://api.github.com/repos/autolab/Autolab/commits{/sha}","git_commits_url":"https://api.github.com/repos/autolab/Autolab/git/commits{/sha}","comments_url":"https://api.github.com/repos/autolab/Autolab/comments{/number}","issue_comment_url":"https://api.github.com/repos/autolab/Autolab/issues/comments/{number}","contents_url":"https://api.github.com/repos/autolab/Autolab/contents/{+path}","compare_url":"https://api.github.com/repos/autolab/Autolab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/autolab/Autolab/merges","archive_url":"https://api.github.com/repos/autolab/Autolab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/autolab/Autolab/downloads","issues_url":"https://api.github.com/repos/autolab/Autolab/issues{/number}","pulls_url":"https://api.github.com/repos/autolab/Autolab/pulls{/number}","milestones_url":"https://api.github.com/repos/autolab/Autolab/milestones{/number}","notifications_url":"https://api.github.com/repos/autolab/Autolab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/autolab/Autolab/labels{/name}","releases_url":"https://api.github.com/repos/autolab/Autolab/releases{/id}","created_at":"2014-10-25T18:58:53Z","updated_at":"2015-01-15T14:11:47Z","pushed_at":"2015-01-15T15:44:01Z","git_url":"git://github.com/autolab/Autolab.git","ssh_url":"git@github.com:autolab/Autolab.git","clone_url":"https://github.com/autolab/Autolab.git","svn_url":"https://github.com/autolab/Autolab","homepage":"http://www.autolabproject.com/","size":2151,"stargazers_count":26,"watchers_count":26,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":37,"forks":24,"open_issues":37,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/92"},"html":{"href":"https://github.com/autolab/Autolab/pull/92"},"issue":{"href":"https://api.github.com/repos/autolab/Autolab/issues/92"},"comments":{"href":"https://api.github.com/repos/autolab/Autolab/issues/92/comments"},"review_comments":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/92/comments"},"review_comment":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/autolab/Autolab/pulls/92/commits"},"statuses":{"href":"https://api.github.com/repos/autolab/Autolab/statuses/9d0af3ad8b0bf1d9c6f2248c9a3b52ebbb56ccbd"}}}}