{"push_id":608262852,"size":34,"distinct_size":10,"ref":"refs/heads/api-courses-endpoint","head":"8a46121f81fcafdac8fdadcf83c71234508372ce","before":"870e9d8110d05c061fde357aa58f701dfb4d1c90","commits":[{"sha":"b676c5bb69eae6dcd966b21f72d56c2a54789c0c","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Add install step for capybara webkit dependency \"qt\" to README","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/b676c5bb69eae6dcd966b21f72d56c2a54789c0c"},{"sha":"25e7c8a72f71fd345d3cbd3b63d02fe27da1f0c8","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Create video fragments from a cnx page\n\nIn an assessed feature, there is either a video or some text plus an\nexercise.  Add a video fragment class that inherits from the text\nfragment class but with a url method that returns the url of the video\nfrom .ost-embed. Code assumes only one video in each fragment.","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/25e7c8a72f71fd345d3cbd3b63d02fe27da1f0c8"},{"sha":"c93f3ebf61f31fb13dfb41909428d9fad0d2b865","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Add tasked video model and representer","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/c93f3ebf61f31fb13dfb41909428d9fad0d2b865"},{"sha":"0f1ef4f789d7658b800dbc8382261613c9e0a7fa","author":{"email":"3d07a85bcf8c861e99d9e9b5021708e397105dd4@gmail.com","name":"JP Slavinsky"},"message":"role routines with some model association updates","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/0f1ef4f789d7658b800dbc8382261613c9e0a7fa"},{"sha":"7470a003c372629bc8e94963cfdcf192537d2a3d","author":{"email":"3d07a85bcf8c861e99d9e9b5021708e397105dd4@gmail.com","name":"JP Slavinsky"},"message":"Merge pull request #114 from openstax/video-step\n\nVideo step","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/7470a003c372629bc8e94963cfdcf192537d2a3d"},{"sha":"6b491d62b7410f576a3d2ade13dbfbcb55ef4042","author":{"email":"16054ec8dd96cc474b4b71a04af101b4325e2cea@users.noreply.github.com","name":"Joe Sak"},"message":"Merge pull request #116 from openstax/jpslav-role-routines\n\nrole routines with some model association updates","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/6b491d62b7410f576a3d2ade13dbfbcb55ef4042"},{"sha":"ac368fd50a2a415164208441239291334ce04582","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Remove video_url from tasked video, just use content_url instead","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/ac368fd50a2a415164208441239291334ce04582"},{"sha":"f4d2b7479c23a033492dd9d7353c18c146230fbb","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Parse video urls from either a@href or *[@data-type='media']/iframe/@src","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/f4d2b7479c23a033492dd9d7353c18c146230fbb"},{"sha":"8f2651abe7504176b9b014243079a1ee891323f5","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Fix html parsing to allow assessed feature without exercises\n\nRunning \"rake sprint:007a\" was giving the following error:\n\n```\nrake aborted!\nNoMethodError: undefined method `parent' for nil:NilClass\n/home/karen/tutor-server/lib/html_tree_operations.rb:7:in `recursive_compact'\n/home/karen/tutor-server/app/external/openstax/cnx/v1/page.rb:132:in `fragments'\n```\n\nbecause we just added this page\nhttp://cnx.org/contents/7db9aa72-f815-4c3b-9cb6-d50cf5318b58@4.5:2/Updated_Tutor_HS_Physics_Conte#fs-id1172194442505\nwhich has an assessed feature with just a video without an exercise.","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/8f2651abe7504176b9b014243079a1ee891323f5"},{"sha":"b98ddee167b973bc6aafe8338a585223dbd35870","author":{"email":"3d07a85bcf8c861e99d9e9b5021708e397105dd4@gmail.com","name":"JP Slavinsky"},"message":"Merge pull request #117 from openstax/fix-sprint-007a-task\n\nFix sprint 007a task","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/b98ddee167b973bc6aafe8338a585223dbd35870"},{"sha":"854f554ff65b352aa5f450135437507de0340c8a","author":{"email":"55107e193e648a27778fa98736b2e8e24b3cd6e1@karen-chan.com","name":"karen chan"},"message":"Add video representer to tasked representer mapper","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/854f554ff65b352aa5f450135437507de0340c8a"},{"sha":"0990ca8292f87cef64aa6da2d2dd7b5a8fda782e","author":{"email":"40e680453dd5b9a55fd5e44db0ce04328d6a9241@rice.edu","name":"Dantemss"},"message":"Merge pull request #118 from openstax/add-video-representer-mapping\n\nAdd video representer to tasked representer mapper","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/0990ca8292f87cef64aa6da2d2dd7b5a8fda782e"},{"sha":"ac2543f980aab6142fc27c986a2e1177af057dc4","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Added try another and refresh my memory routines","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/ac2543f980aab6142fc27c986a2e1177af057dc4"},{"sha":"5655c11ff861a19af8526ab35f1960ecd41bddc6","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Added API's for exercise recovery; Updated API's now return the updated object","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/5655c11ff861a19af8526ab35f1960ecd41bddc6"},{"sha":"2862a1073253e6b4b226f3c0f23c10c1e5129178","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Changed openstax_api to git ref","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/2862a1073253e6b4b226f3c0f23c10c1e5129178"},{"sha":"5d52c0d36010927cfe50653639fa3545961d741d","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Added Sprint 8 rake task that creates 3 Tasks","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/5d52c0d36010927cfe50653639fa3545961d741d"},{"sha":"547eab9eabb5f739e25c7dff0f03d9f925f056bc","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Added has_recovery to tasked_exercise_representer","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/547eab9eabb5f739e25c7dff0f03d9f925f056bc"},{"sha":"e775a6caac5ae47d888fca69b2d4397abb273ecb","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Dummy recovery exercise now contains valid JSON","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/e775a6caac5ae47d888fca69b2d4397abb273ecb"},{"sha":"130381f5081a7d76be5996680a754a220e99a3d4","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Fixed API doc with shorter route","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/130381f5081a7d76be5996680a754a220e99a3d4"},{"sha":"c1ca0b90f20dc60cb70f39628a4ed3dc2deeda0d","author":{"email":"0403b005976ebd55332535cafe60440eab31f547@rice.edu","name":"Dante Soares"},"message":"Pull actual exercise choice content from the book","distinct":false,"url":"https://api.github.com/repos/openstax/tutor-server/commits/c1ca0b90f20dc60cb70f39628a4ed3dc2deeda0d"}]}