{"push_id":1619267184,"size":3,"distinct_size":1,"ref":"refs/heads/349_specialize_groups","head":"4a82b5f52e3db052177f8e2a78d7d7913e2bd8af","before":"ff4fbc78ad2b6bd145af6ddcecb35cb61112bd6c","commits":[{"sha":"1f8c831415ecc33514953d9f3f7aee9959549be8","author":{"name":"Oren Kanner","email":"fc430d1915d234908051ef3fc3ddf5c7a0e1ec19@gmail.com"},"message":"Fix invitation form\n\nResolves #289","distinct":false,"url":"https://api.github.com/repos/YaleSTC/vesta/commits/1f8c831415ecc33514953d9f3f7aee9959549be8"},{"sha":"9f4b295c5c7ac0c41e610fb5a463f02663b638fd","author":{"name":"Oren Kanner","email":"fc430d1915d234908051ef3fc3ddf5c7a0e1ec19@gmail.com"},"message":"Add ability to unlock group memberships\n\nResolves #313\n- Add :unlock routes / actions to groups\n- Add GroupUnlocker service object\n- Tweak membership validations to permit unlocking of memberships\n- Tweak Group#update_status! to revert status from locked\n- Update GroupPolicy#lock? to permit the locking of groups in statuses\n  other than full (e.g. finalizing)\n- Update GroupUpdater#update to run Group#update_status! after other\n  updates are made\n- Delegate :lock? and :unlock? methods in DrawlessGroupPolicy to\n  GroupPolicy to keep things DRY","distinct":false,"url":"https://api.github.com/repos/YaleSTC/vesta/commits/9f4b295c5c7ac0c41e610fb5a463f02663b638fd"},{"sha":"4a82b5f52e3db052177f8e2a78d7d7913e2bd8af","author":{"name":"Oren Kanner","email":"fc430d1915d234908051ef3fc3ddf5c7a0e1ec19@gmail.com"},"message":"Allow admins to convert groups to special groups\n\nResolves #349\n- Add GroupDrawRemover service object; handles to removal of the draw_id\n  parameter from groups and members and destroys pending memberships\n- Add Group#pending_memberships","distinct":true,"url":"https://api.github.com/repos/YaleSTC/vesta/commits/4a82b5f52e3db052177f8e2a78d7d7913e2bd8af"}]}
{"actor":{"display_login":"orenyk"}}