{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":108909388,"defaultBranch":"main","name":"lms","ownerLogin":"hypothesis","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-10-30T21:15:37.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1243215?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717687904.0","currentOid":""},"activityList":{"items":[{"before":"0e1aabfd1980e05c0023cbc762cd4110bec70b10","after":"e68b219eaf861b9e73662bdb81ad9bf5dc1c43fb","ref":"refs/heads/org-courses","pushedAt":"2024-06-06T15:45:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Deduplicate courses when listing organization courses\n\nThe same LMS course might be represented by more than one row in the\ngrouping table, for example if we have seen it linked to more than one\napplication instance.\n\nDeduplicate them when asking for a list of course within an organization\nbut still return the raw data in the search method.","shortMessageHtmlLink":"Deduplicate courses when listing organization courses"}},{"before":null,"after":"0e1aabfd1980e05c0023cbc762cd4110bec70b10","ref":"refs/heads/org-courses","pushedAt":"2024-06-06T15:31:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Deduplicate courses when listing organization courses\n\nThe same LMS course might be represented by more than one row in the\ngrouping table, for example if we have seen it linked to more than one\napplication instance.\n\nDeduplicate them when asking for a list of course within an organization\nbut still return the raw data in the search method.","shortMessageHtmlLink":"Deduplicate courses when listing organization courses"}},{"before":null,"after":"64d1a94c0ff1f0d699d0252ec89a7f6a65b4507d","ref":"refs/heads/dashboard-links-styles","pushedAt":"2024-06-06T13:50:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Use more subtle style for links in dashboard tables","shortMessageHtmlLink":"Use more subtle style for links in dashboard tables"}},{"before":null,"after":"000d900251acadbdf003f672fc0a7a39b8c582d8","ref":"refs/heads/dashboard-table-improvements","pushedAt":"2024-06-06T12:57:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Navigate in dashboard tables when clicking or confirming row","shortMessageHtmlLink":"Navigate in dashboard tables when clicking or confirming row"}},{"before":"b1da926217e35c986333f2048c39075d9d4109a4","after":null,"ref":"refs/heads/h-user-memberhip","pushedAt":"2024-06-06T12:46:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"}},{"before":"3612889d2ef17dd0672f4adc2738be3c1f5af042","after":"f39c72915747b4e71190f5f7be54834d8857eb52","ref":"refs/heads/main","pushedAt":"2024-06-06T12:46:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Explicitly use h_userid to search and check membership of users to courses\n\nThe same person might have multiple \"User\" rows for example in different\napplications instances.\n\nThe h_userid value would be the same thought. Explicitly use this value\ninstead of the full object both on the method to search for courses and\nto check user membership.","shortMessageHtmlLink":"Explicitly use h_userid to search and check membership of users to co…"}},{"before":"4c83a6ebf33785f5f529a4ca0e61ec74ba8e0a11","after":"3612889d2ef17dd0672f4adc2738be3c1f5af042","ref":"refs/heads/main","pushedAt":"2024-06-06T12:45:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":"a9d432d7d07780d391b7f83ae684a63566b96537","after":null,"ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T12:45:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"}},{"before":"e41644d3ab25d575746d76038c40172a8fccec5b","after":"a9d432d7d07780d391b7f83ae684a63566b96537","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T12:34:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":"2ce42cd5835347a5be3a6d45c100552bc3e03b48","after":"2ccec76ca9ae132cc6d7ac840e8a62e5b0cc192b","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T12:32:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"7ec6a0cdbaf5192228a963200fc872546bf13f91","after":"2ce42cd5835347a5be3a6d45c100552bc3e03b48","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T12:32:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"40ddf7b5097e2f9a929132059418445a2df5085b","after":"e41644d3ab25d575746d76038c40172a8fccec5b","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T12:19:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Apply suggestions from code review\n\nCo-authored-by: Alejandro Celaya ","shortMessageHtmlLink":"Apply suggestions from code review"}},{"before":"9cfd846ff22d56fc908a3c3d8f525f79a2af7be5","after":"b1da926217e35c986333f2048c39075d9d4109a4","ref":"refs/heads/h-user-memberhip","pushedAt":"2024-06-06T12:10:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Explicitly use h_userid to search and check membership of users to courses\n\nThe same person might have multiple \"User\" rows for example in different\napplications instances.\n\nThe h_userid value would be the same thought. Explicitly use this value\ninstead of the full object both on the method to search for courses and\nto check user membership.","shortMessageHtmlLink":"Explicitly use h_userid to search and check membership of users to co…"}},{"before":null,"after":"9cfd846ff22d56fc908a3c3d8f525f79a2af7be5","ref":"refs/heads/h-user-memberhip","pushedAt":"2024-06-06T11:57:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Explicitly use h_userid to search and check membership of users to courses\n\nThe same person might have multiple \"User\" rows for example in different\napplications instances.\n\nThe h_userid value would be the same thought. Explicitly use this value\ninstead of the full object both on the method to search for courses and\nto check user membership.","shortMessageHtmlLink":"Explicitly use h_userid to search and check membership of users to co…"}},{"before":"b3ac46e2b01b42211cf607c3d16f48290ba63400","after":"40ddf7b5097e2f9a929132059418445a2df5085b","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T11:04:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":"cbc42305c6e608a4cb2464b991739c7d69b0ab09","after":"b3ac46e2b01b42211cf607c3d16f48290ba63400","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T10:44:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":"c2be9df3ac83933facaa3369fa72bbc579c76f01","after":"cbc42305c6e608a4cb2464b991739c7d69b0ab09","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T10:41:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":null,"after":"c2be9df3ac83933facaa3369fa72bbc579c76f01","ref":"refs/heads/course-assignments","pushedAt":"2024-06-06T10:39:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"marcospri","name":"Marcos Prieto","path":"/marcospri","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1433832?s=80&v=4"},"commit":{"message":"Service method to get course's assignments de duplicating them","shortMessageHtmlLink":"Service method to get course's assignments de duplicating them"}},{"before":"bc98dbe71833bf749d8a9f396522ff8e7f0f97e4","after":"7ec6a0cdbaf5192228a963200fc872546bf13f91","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T10:22:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"19f13db27b9c026462c7e84dd40a6970ae6bd85a","after":"bc98dbe71833bf749d8a9f396522ff8e7f0f97e4","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T10:22:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"7d302c0c6cf9973892753bcd72453ce5fcc5d681","after":"19f13db27b9c026462c7e84dd40a6970ae6bd85a","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T10:18:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"0087e4245f077e2a8c59b985b1d74135524eef2e","after":"7d302c0c6cf9973892753bcd72453ce5fcc5d681","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T08:43:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"04e2f15bd273819baddcdf90ad2fc6a2843e2971","after":"0087e4245f077e2a8c59b985b1d74135524eef2e","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T08:40:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"e18ecd874417597771a58342092e6e34953ac658","after":null,"ref":"refs/heads/prevent-canvas-concurrent-refresh","pushedAt":"2024-06-06T08:07:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"robertknight","name":"Robert Knight","path":"/robertknight","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2458?s=80&v=4"}},{"before":"5146a00b10bf5d9c4766dc33aaab93901091565f","after":"4c83a6ebf33785f5f529a4ca0e61ec74ba8e0a11","ref":"refs/heads/main","pushedAt":"2024-06-06T08:07:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robertknight","name":"Robert Knight","path":"/robertknight","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2458?s=80&v=4"},"commit":{"message":"Prevent concurrent OAuth token refreshes in Canvas\n\nThe Canvas integration does not use `OAuthHTTPService` so concurrent refresh\nprevention has to be implemented separately. Fortunately this is pretty simple.","shortMessageHtmlLink":"Prevent concurrent OAuth token refreshes in Canvas"}},{"before":"477cade04f21721bf166a4327cc958d29b95b51a","after":"04e2f15bd273819baddcdf90ad2fc6a2843e2971","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T08:05:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"c5949d0a66ac2b79151bea9ded0bf941f3f8d6d1","after":"477cade04f21721bf166a4327cc958d29b95b51a","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-06T08:05:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"aa485396b98542b2e58c3d6864d6b1bf602dd151","after":"c5949d0a66ac2b79151bea9ded0bf941f3f8d6d1","ref":"refs/heads/global-loading-handler","pushedAt":"2024-06-05T15:08:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Add component handling initial loading and fatal errors","shortMessageHtmlLink":"Add component handling initial loading and fatal errors"}},{"before":"13d8e46630666f283142169af6b003af5ed2e53d","after":null,"ref":"refs/heads/error-display-improvements","pushedAt":"2024-06-05T15:07:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"}},{"before":"4445b4b1ad0b1db5bf70547dbe41d53dabac5716","after":"5146a00b10bf5d9c4766dc33aaab93901091565f","ref":"refs/heads/main","pushedAt":"2024-06-05T15:07:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"acelaya","name":"Alejandro Celaya","path":"/acelaya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2719332?s=80&v=4"},"commit":{"message":"Remove hardcoded padding top in ErrorDisplay (#6331)","shortMessageHtmlLink":"Remove hardcoded padding top in ErrorDisplay (#6331)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXl7NZQA","startCursor":null,"endCursor":null}},"title":"Activity · hypothesis/lms"}