{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":333287327,"defaultBranch":"master","name":"swiftarr","ownerLogin":"jocosocial","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-01-27T03:06:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/36868360?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716002495.0","currentOid":""},"activityList":{"items":[{"before":"76371a6a127042b6ba648ceb89e61fa29e2721df","after":"8aed8e1ecf0518efdd3834cffc0ba8640b5e296e","ref":"refs/heads/master","pushedAt":"2024-09-08T16:15:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Fix image overlay in forum search, add pronoun to byline (#319)\n\nFix image overlay, add pronoun to byline","shortMessageHtmlLink":"Fix image overlay in forum search, add pronoun to byline (#319)"}},{"before":"564384bef4b57779f79ed44515354875fea72f06","after":"76371a6a127042b6ba648ceb89e61fa29e2721df","ref":"refs/heads/master","pushedAt":"2024-08-27T06:51:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"StreamPhoto's atEvent field now set to null if Event is deleted","shortMessageHtmlLink":"StreamPhoto's atEvent field now set to null if Event is deleted"}},{"before":"a8d3290ff573ab60de0e35668e18d93588c2b001","after":"564384bef4b57779f79ed44515354875fea72f06","ref":"refs/heads/master","pushedAt":"2024-08-27T03:15:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Added a debugging method\n\nAdded a method that prints out an approximation of the raw SQL that a QueryBuilder will produce when executed.","shortMessageHtmlLink":"Added a debugging method"}},{"before":"44f181a2231efda662c0e63287e00f280913e7fe","after":"a8d3290ff573ab60de0e35668e18d93588c2b001","ref":"refs/heads/master","pushedAt":"2024-08-24T03:19:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Added UserRole to allow editing own Performer profile\n\nGenerally, Shadow Event Organizers can only create/edit their Performer profile during Pre-registration. Once aboard the boat the Performer pages are fixed. This change lets TT and above grant permission to users to edit their Performer profile once we're on the ship.\n\nAlso fixed an issue with Preregistration mode and the Home page where too much stuff was being removed, and added more guards to methods in PerformerController.","shortMessageHtmlLink":"Added UserRole to allow editing own Performer profile"}},{"before":"a6ab356d581b209973fe79ac4b82529f08421852","after":"44f181a2231efda662c0e63287e00f280913e7fe","ref":"refs/heads/master","pushedAt":"2024-08-19T09:12:22.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Merge branch 'master' of github.com:jocosocial/swiftarr","shortMessageHtmlLink":"Merge branch 'master' of github.com:jocosocial/swiftarr"}},{"before":"830c1fd0b1b89d4528023d900de180577eadc581","after":"a6ab356d581b209973fe79ac4b82529f08421852","ref":"refs/heads/master","pushedAt":"2024-07-18T01:58:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cohoe","name":"Grant Cohoe","path":"/cohoe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/505621?s=80&v=4"},"commit":{"message":"Make photostream report API consistent with other APIs (#309)\n\n* make photostream report api consistent with other apis\r\n\r\n* add photostream to jazzy headers","shortMessageHtmlLink":"Make photostream report API consistent with other APIs (#309)"}},{"before":"330a08feacf5f898e2facf6c31c4056017056f11","after":"830c1fd0b1b89d4528023d900de180577eadc581","ref":"refs/heads/master","pushedAt":"2024-07-10T14:44:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cohoe","name":"Grant Cohoe","path":"/cohoe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/505621?s=80&v=4"},"commit":{"message":"Auto migrate now migrates every time (#307)\n\nauto migrate now migrates every time","shortMessageHtmlLink":"Auto migrate now migrates every time (#307)"}},{"before":"15a6a32736735a3c793f0a5d68666b975b4d21af","after":"330a08feacf5f898e2facf6c31c4056017056f11","ref":"refs/heads/master","pushedAt":"2024-07-10T03:09:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cohoe","name":"Grant Cohoe","path":"/cohoe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/505621?s=80&v=4"},"commit":{"message":"Add Client Data Pattern (#305)\n\ncloses #286, adds client-specific data pattern","shortMessageHtmlLink":"Add Client Data Pattern (#305)"}},{"before":"622dc69d40467f9fc3812ced2e5ac74ea1143e27","after":"15a6a32736735a3c793f0a5d68666b975b4d21af","ref":"refs/heads/master","pushedAt":"2024-06-29T00:24:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #127.\n\nWe now parse the subdomain, category, and mechanics from BoardGameGeek's XML, add those fields to JoCoGamesCatalog's json data, import the new fields into the db, copy the new data into new fields in the BoardGameData DTO, and display the new fields on the Boardgame List page.\n\nAlso cleaned up the Boardgame API a bit, and created a common BoardgameItem leaf file imported by pages that show lists of boardgames.","shortMessageHtmlLink":"Fixes #127."}},{"before":"8593538c49d78206f9065a653786ea443307679d","after":"622dc69d40467f9fc3812ced2e5ac74ea1143e27","ref":"refs/heads/master","pushedAt":"2024-06-27T19:43:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #288.\n\nThe LFG filterByDay dropdown menu now builds its menu items based off the \"cruise start day\" and \"cruise length\" settings.","shortMessageHtmlLink":"Fixes #288."}},{"before":"332d018bbfb77f523bd6f95789bb03be978329f1","after":"8593538c49d78206f9065a653786ea443307679d","ref":"refs/heads/master","pushedAt":"2024-06-26T02:21:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #282.\n\nSetting the Schedule Update URL to \"\" now prevents automatic schedule updating and doesn't put errors in the log.","shortMessageHtmlLink":"Fixes #282."}},{"before":"c62c52179e3c972cbe4a9f153f5bae2b0afd8d0f","after":"332d018bbfb77f523bd6f95789bb03be978329f1","ref":"refs/heads/master","pushedAt":"2024-06-26T02:08:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #257.\n\nImageController now checks that a file actually exists at the filepath where it should be, and 404s if there's no file there. Previously we'd pass the path into `streamFile()`, which would return a 500 level error as it assumes it's always getting valid files to stream.\n\nAlso fixed up the favicon handling.","shortMessageHtmlLink":"Fixes #257."}},{"before":"02da8e5c8b346f0ffb5f52d116c7b89eab5ffb51","after":"c62c52179e3c972cbe4a9f153f5bae2b0afd8d0f","ref":"refs/heads/master","pushedAt":"2024-06-26T01:17:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #235.\n\nPostSearchData has lost its 'totalPosts', 'start' and 'limit' members and now has a Paginator member, which does pretty much the same thing.\n\nThis breaks current apps, and is on the API changelist.","shortMessageHtmlLink":"Fixes #235."}},{"before":"5290f5eecb4c4d03d632915c2c29349162f32059","after":"02da8e5c8b346f0ffb5f52d116c7b89eab5ffb51","ref":"refs/heads/master","pushedAt":"2024-06-25T18:31:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixes #224.\n\nThe @admin, @THO, @TwitarrTeam, and @moderator accounts now have distinctive styling in bylines and @mentions. Styling is based on the username and not access level, as the UserHeader is the only info we have on the user at the time we're styling their name.\n\nThis means that moderator users won't have their bylines highlighted. This is both because it's more involved of a change (we'd probably have to add a userLevel field to UserHeader), and also because mod users probably want to post as 'normal' users most of the time, and can post as @moderator (and get the special styling) when they need to.","shortMessageHtmlLink":"Fixes #224."}},{"before":"a220a4ea38ff7b05182990db6d87edcd30faf6a9","after":"5290f5eecb4c4d03d632915c2c29349162f32059","ref":"refs/heads/master","pushedAt":"2024-06-25T00:02:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fix for case-sensitive filesystems\n\nThe HTML template is 'bulkUser.html'.","shortMessageHtmlLink":"Fix for case-sensitive filesystems"}},{"before":"84dc264fc28463309054674690fbf33e5c62476b","after":"a220a4ea38ff7b05182990db6d87edcd30faf6a9","ref":"refs/heads/master","pushedAt":"2024-06-24T21:20:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"More linux fixes.\n\nURL.path() is new is Mac OS 13; the path var is the deprecated version.","shortMessageHtmlLink":"More linux fixes."}},{"before":"b41dee77bc0f83c6f9b8255efa7a2a9d2d5f6085","after":"84dc264fc28463309054674690fbf33e5c62476b","ref":"refs/heads/master","pushedAt":"2024-06-24T20:31:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"More Linux fixes\n\nAgain with URL.appending(path:) instances.","shortMessageHtmlLink":"More Linux fixes"}},{"before":"c826c72adf40608b4c94836b0e0d5e3d6884dc55","after":"b41dee77bc0f83c6f9b8255efa7a2a9d2d5f6085","ref":"refs/heads/master","pushedAt":"2024-06-24T19:57:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Fixing Linux compilation errors\n\nLooks like the build errors are being caused by new-ish additions to Foundation (marked new as of Mac OS 13). URL.append(path:), for example, is documented as part Xcode's Foundation lib, but isn't in swift-corelibs-foundation.","shortMessageHtmlLink":"Fixing Linux compilation errors"}},{"before":"8bd928ebaad1c40c26b8443c82c82e0236ae7ad0","after":"c826c72adf40608b4c94836b0e0d5e3d6884dc55","ref":"refs/heads/master","pushedAt":"2024-06-23T23:52:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Added a new class of registration codes for Discord users\n\nThese codes are only for preproduction instances of Twitarr and will not function on boat. These registration codes are a separate pool marked for this use case, and there's admin UI to 'allocate' a code by tying it to a particular user on the JoCo Cruise discord. The use case is a user on Discord who wants to check out Twitarr before the cruise (often to familiarize themselves with the moderation features). Now any TwitarrTeam member can allocate a registration code for that Discord user and DM them a reg code they can use to create an account. And, unlike previous years, we'll have at least some idea who that Twitarr user is on the pre-production server.\n\nAPI changes: A few admin-level structs were changed: RegistrationCodeUserData has new fields used for RegistrationCodes marked for Discord users. RegistrationCodeStatsData has new fields showing totals for Discord users.\n\nThis commit has 2 new migrations which must be run for these new features to work.","shortMessageHtmlLink":"Added a new class of registration codes for Discord users"}},{"before":"80a172500f2b618988079057b9425eab5abb4422","after":"8bd928ebaad1c40c26b8443c82c82e0236ae7ad0","ref":"refs/heads/master","pushedAt":"2024-05-19T02:00:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Change home menu item to \"Home\"\n\nAlso fix the color of the photostream link on wider breakpoints.","shortMessageHtmlLink":"Change home menu item to \"Home\""}},{"before":"8ad6000a5d3e54f68c2af21eebe744e2a2ed04c3","after":"80a172500f2b618988079057b9425eab5abb4422","ref":"refs/heads/master","pushedAt":"2024-05-19T01:59:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Update Bootstrap to version 5.3.3\n\nBootstrap is the CSS and JS package that we use for the web UI. This just updates to the latest version of the kit.","shortMessageHtmlLink":"Update Bootstrap to version 5.3.3"}},{"before":"580a1faede52bb99ec9dad85ad22622daf0e9261","after":"8ad6000a5d3e54f68c2af21eebe744e2a2ed04c3","ref":"refs/heads/master","pushedAt":"2024-05-19T01:03:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Merge branch 'master' of github.com:jocosocial/swiftarr","shortMessageHtmlLink":"Merge branch 'master' of github.com:jocosocial/swiftarr"}},{"before":"ce5e67411b662977515efe01ee6d0073d2e88fb9","after":null,"ref":"refs/heads/swift-5.10","pushedAt":"2024-05-18T03:21:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"}},{"before":"9bbe38cba3339c07aebfa95dd7173bfde451960e","after":"580a1faede52bb99ec9dad85ad22622daf0e9261","ref":"refs/heads/master","pushedAt":"2024-05-18T03:21:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Finish update to Swift 5.10 (#304)\n\n* Update Dockerfile\r\n\r\n* Update .swift-version\r\n\r\n* Update .jazzy.yaml\r\n\r\n* Update publish_docs.yml","shortMessageHtmlLink":"Finish update to Swift 5.10 (#304)"}},{"before":"1993fab0074d77ddea4934739c386fe6e48fe40b","after":"ce5e67411b662977515efe01ee6d0073d2e88fb9","ref":"refs/heads/swift-5.10","pushedAt":"2024-05-18T02:32:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Update publish_docs.yml","shortMessageHtmlLink":"Update publish_docs.yml"}},{"before":"63bdb5b6373669e4c50edaf100a33beeef8eca64","after":"1993fab0074d77ddea4934739c386fe6e48fe40b","ref":"refs/heads/swift-5.10","pushedAt":"2024-05-18T02:31:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Update .jazzy.yaml","shortMessageHtmlLink":"Update .jazzy.yaml"}},{"before":"d6303ee9275a1298ef6ffa9791487bebbe93573d","after":"63bdb5b6373669e4c50edaf100a33beeef8eca64","ref":"refs/heads/swift-5.10","pushedAt":"2024-05-18T02:29:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Update .swift-version","shortMessageHtmlLink":"Update .swift-version"}},{"before":null,"after":"d6303ee9275a1298ef6ffa9791487bebbe93573d","ref":"refs/heads/swift-5.10","pushedAt":"2024-05-18T02:29:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"hendricksond","name":"Dustin Hendrickson","path":"/hendricksond","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1521835?s=80&v=4"},"commit":{"message":"Update Dockerfile","shortMessageHtmlLink":"Update Dockerfile"}},{"before":"5c64c20a0276aaae1eefb15fab9a8c11942ab38f","after":"9bbe38cba3339c07aebfa95dd7173bfde451960e","ref":"refs/heads/master","pushedAt":"2024-05-18T00:16:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Vapor package updates, related fixes\n\nReplaced main.swift with entrypoint.swift. The new file and its contents are based off of a Vapor template project generated by Vapor 4.100.0.\n\nConfigure() is now broken into pre-boot and post-boot methods. Post-boot configure() should get called after services are up and running but before we start servicing requests from clients.\n\nFixed a few cases where we were calling wait() where we shouldn't (thread blocking), a few cases where we used the (no longer available) `app` global variable, and fixed a few deprecation warnings.","shortMessageHtmlLink":"Vapor package updates, related fixes"}},{"before":"bcea3d2e50bade33edb252edcac4271af5814f53","after":"5c64c20a0276aaae1eefb15fab9a8c11942ab38f","ref":"refs/heads/master","pushedAt":"2024-05-16T22:58:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"challfry","name":"Chall Fry","path":"/challfry","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8335266?s=80&v=4"},"commit":{"message":"Added Photostream feature; reworked main menu\n\nFirst, the pulldown menu in the upper-left is gone, all of its menu items are now on the Home page. Hopefully this will simplify navigation.\n\nSecond, the home screen now has a Photostream cell that shows a rotating carousel of photos tagged with the place onboard where the photo was taken (and the timestamp for the photo).\n\nPhotos should only be added to the Photostream by native apps, as we want uploaded photos to be freshly taken by the camera and not pulled from a user's photo roll. Native apps should also use OCR to blur out any text identified in the photo.","shortMessageHtmlLink":"Added Photostream feature; reworked main menu"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOFQxNjoxNTo1My4wMDAwMDBazwAAAASwLg1J","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wOFQxNjoxNTo1My4wMDAwMDBazwAAAASwLg1J","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xNlQyMjo1ODoxOC4wMDAwMDBazwAAAARMIjNc"}},"title":"Activity ยท jocosocial/swiftarr"}