{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":7569578,"defaultBranch":"main","name":"discourse","ownerLogin":"discourse","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-01-12T00:25:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3220138?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716825975.0","currentOid":""},"activityList":{"items":[{"before":"f1e6efd0b7f352b821bbe8ba2a6733b8b02752b9","after":"54081f8ff3c480f84daecb639b3304995bfcadeb","ref":"refs/heads/formtoolkit","pushedAt":"2024-05-27T16:49:42.000Z","pushType":"push","commitsCount":25,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"Merge branch 'main' into formtoolkit","shortMessageHtmlLink":"Merge branch 'main' into formtoolkit"}},{"before":"3b6d4c830fd1560dc9642c58371a57ddd9c95040","after":"2a28cda15c4aef23850e780a63f60c47964839de","ref":"refs/heads/tests-passed","pushedAt":"2024-05-27T16:24:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"discoursebuild","name":"Discourse Build","path":"/discoursebuild","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2087059?s=80&v=4"},"commit":{"message":"DEV: Update to lastest rubocop-discourse","shortMessageHtmlLink":"DEV: Update to lastest rubocop-discourse"}},{"before":"a4eeac51473aad9431c494d52676fbeff3238810","after":null,"ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T16:06:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"}},{"before":"3b6d4c830fd1560dc9642c58371a57ddd9c95040","after":"2a28cda15c4aef23850e780a63f60c47964839de","ref":"refs/heads/main","pushedAt":"2024-05-27T16:06:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"DEV: Update to lastest rubocop-discourse","shortMessageHtmlLink":"DEV: Update to lastest rubocop-discourse"}},{"before":"c9f62b22fe268c433e02646f56abce66fb5b01cc","after":"28333dcaf5f9fb358e08bc23543ac7735b9eb358","ref":"refs/heads/0-a-timer","pushedAt":"2024-05-27T16:04:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CvX","name":"Jarek Radosz","path":"/CvX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/66961?s=80&v=4"},"commit":{"message":"lint","shortMessageHtmlLink":"lint"}},{"before":null,"after":"c9f62b22fe268c433e02646f56abce66fb5b01cc","ref":"refs/heads/0-a-timer","pushedAt":"2024-05-27T15:58:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"CvX","name":"Jarek Radosz","path":"/CvX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/66961?s=80&v=4"},"commit":{"message":"DEV: Work around topic-timer data flow issues","shortMessageHtmlLink":"DEV: Work around topic-timer data flow issues"}},{"before":null,"after":"788d516ea0e695d5dfd5b6c2c5b0dc93a7f4931e","ref":"refs/heads/fix-digest-since","pushedAt":"2024-05-27T15:33:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ZogStriP","name":"Régis Hanol","path":"/ZogStriP","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/362783?s=80&v=4"},"commit":{"message":"FIX: correctly compute the window for email summaries\n\nIn https://github.com/discourse/discourse/commit/958437e7ddce6e015725522d25c3f8327ff4064a we ensured that the email summaries are properly sent based on 'digest_attempted_at' for people who barely/never visit the forum.\n\nThis fixed the \"frequency\" of the email summaries but introduced a bug where the digest would be sent even though there wasn't anything new since for some users.\n\nThe logic we use to compute the threshold date for the content to be included in the digest was\n\n```ruby\n@since = opts[:since] || user.last_seen_at || user.user_stat&.digest_attempted_at || 1.month.ago\n```\n\nIt was working as expected for users who haven never been seen but for users who have connected at least once, we would use their \"last_seen_at\" date as the \"threshold date\" for the content to be sent in a summary 😬\n\nThis fix changes the logic to be the most recent date amongst the `last_seen_at`, `digest_attempted_at` and `1.month.ago` so it's correctly handling cases where\n\n- user has never been seen nor emailed a summary\n- user has been seen in a while but has recently been sent a summary\n- user has been sent a summary recently but hasn't been seen in a while.","shortMessageHtmlLink":"FIX: correctly compute the window for email summaries"}},{"before":"3fe84b219dea9b8526779a7f2f33fb7a6bc4898c","after":null,"ref":"refs/heads/0-ember-bump","pushedAt":"2024-05-27T15:29:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"CvX","name":"Jarek Radosz","path":"/CvX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/66961?s=80&v=4"}},{"before":"361992bb74768667bdd9e78fb1d0f47f87f211a3","after":"3b6d4c830fd1560dc9642c58371a57ddd9c95040","ref":"refs/heads/tests-passed","pushedAt":"2024-05-27T14:52:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"discoursebuild","name":"Discourse Build","path":"/discoursebuild","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2087059?s=80&v=4"},"commit":{"message":"DEV: correctly delete custom scheme (#27203)\n\nWe were adding the custom scheme as a symbol, but trying to delete the string. Which would result in the symbol to not be removed.\r\n\r\nThis was causing errors in others test:\r\n\r\n```\r\nError encountered while proccessing /admin/color_schemes.json I18n::MissingTranslationData: Translation missing: en.color_schemes.baseschemewithnohighlightcolor\r\n```\r\n\r\nReproducible with (probably possible to have a simpler repro):\r\n\r\n```\r\nbundle exec rspec --order random:27167 spec/integration/invalid_request_spec.rb spec/integration/spam_rules_spec.rb spec/jobs/bulk_invite_spec.rb spec/jobs/change_display_name_spec.rb spec/jobs/cleanup_imap_sync_log_spec.rb spec/jobs/download_backup_email_spec.rb spec/jobs/fix_primary_emails_for_staged_users_spec.rb spec/jobs/fix_s3_etags_spec.rb spec/jobs/pending_users_reminder_spec.rb spec/jobs/periodical_updates_spec.rb spec/jobs/pull_hotlinked_images_spec.rb spec/jobs/regular/group_smtp_email_spec.rb spec/jobs/reindex_search_spec.rb spec/jobs/update_topic_hot_scores_spec.rb spec/jobs/user_email_spec.rb spec/lib/admin_confirmation_spec.rb spec/lib/backup_restore/database_restorer_multisite_spec.rb spec/lib/backup_restore/system_interface_spec.rb spec/lib/bookmark_reminder_notification_handler_spec.rb spec/lib/color_math_spec.rb spec/lib/content_buffer_spec.rb spec/lib/discourse_spec.rb spec/lib/discourse_tagging_spec.rb spec/lib/discourse_webauthn/registration_service_spec.rb spec/lib/email/renderer_spec.rb spec/lib/email_updater_spec.rb spec/lib/ember_cli_spec.rb spec/lib/feed_element_installer_spec.rb spec/lib/file_helper_spec.rb spec/lib/final_destination/resolver_spec.rb spec/lib/freedom_patches/schema_migration_details_spec.rb spec/lib/guardian/post_guardian_spec.rb spec/lib/guardian/topic_guardian_spec.rb spec/lib/message_id_service_spec.rb spec/lib/onebox/domain_checker_spec.rb spec/lib/onebox/engine/google_maps_onebox_spec.rb spec/lib/onebox/engine/google_play_app_onebox_spec.rb spec/lib/onebox/engine/json_spec.rb spec/lib/onebox/engine/reddit_media_onebox_spec.rb spec/lib/onebox/engine/video_onebox_spec.rb spec/lib/onebox/engine/wikipedia_onebox_spec.rb spec/lib/onebox/engine/wistia_onebox_spec.rb spec/lib/post_destroyer_spec.rb spec/lib/post_locker_spec.rb spec/lib/s3_helper_spec.rb spec/lib/s3_inventory_spec.rb spec/lib/scss_checker_spec.rb spec/lib/site_icon_manager_spec.rb spec/lib/site_setting_extension_multisite_spec.rb spec/lib/summarization/base_spec.rb spec/lib/trashable_spec.rb spec/lib/validators/category_search_priority_weights_validator_spec.rb spec/lib/validators/max_username_length_validator_spec.rb spec/lib/validators/regex_presence_validator_spec.rb spec/lib/validators/regexp_list_validator_spec.rb spec/lib/validators/topic_title_length_validator_spec.rb spec/lib/validators/url_validator_spec.rb spec/lib/work_queue_spec.rb spec/mailers/test_mailer_spec.rb spec/mailers/version_mailer_spec.rb spec/models/badge_grouping_spec.rb spec/models/category_featured_topic_spec.rb spec/models/color_scheme_spec.rb spec/models/flag_spec.rb spec/models/given_daily_like_spec.rb spec/models/plugin_store_spec.rb spec/models/screened_url_spec.rb spec/models/site_setting_spec.rb spec/models/tag_spec.rb spec/models/theme_svg_sprite_spec.rb spec/models/top_menu_item_spec.rb spec/models/topic_allowed_user_spec.rb spec/models/topic_converter_spec.rb spec/models/topic_timer_spec.rb spec/models/translation_override_spec.rb spec/models/user_archived_message_spec.rb spec/models/user_email_spec.rb spec/models/user_search_spec.rb spec/models/user_status_spec.rb spec/models/web_hook_event_spec.rb spec/multisite/pausable_multisite_spec.rb spec/multisite/pausable_spec.rb spec/requests/about_controller_spec.rb spec/requests/admin/backups_controller_spec.rb spec/requests/admin/color_schemes_controller_spec.rb spec/requests/admin/email_templates_controller_spec.rb spec/requests/admin/form_templates_controller_spec.rb spec/requests/admin/screened_ip_addresses_controller_spec.rb spec/requests/admin/site_texts_controller_spec.rb spec/requests/api/categories_spec.rb spec/requests/api/site_spec.rb spec/requests/api/tags_spec.rb spec/requests/api/uploads_spec.rb spec/requests/api/users_spec.rb spec/requests/associate_accounts_controller_spec.rb spec/requests/badges_controller_spec.rb spec/requests/csp_reports_controller_spec.rb spec/requests/edit_directory_columns_controller_spec.rb spec/requests/slugs_controller_spec.rb spec/requests/steps_controller_spec.rb spec/requests/stylesheets_controller_spec.rb spec/requests/topic_view_stats_controller_spec.rb spec/requests/user_avatars_controller_spec.rb spec/requests/users_controller_spec.rb spec/script/import_scripts/vanilla_body_parser_spec.rb spec/serializers/basic_reviewable_queued_post_serializer_spec.rb spec/serializers/found_user_serializer_spec.rb spec/serializers/reviewable_flagged_post_serializer_spec.rb spec/serializers/reviewable_queued_post_serializer_spec.rb spec/serializers/reviewable_user_serializer_spec.rb spec/serializers/theme_objects_setting_metadata_serializer_spec.rb spec/serializers/topic_tracking_state_item_serializer_spec.rb spec/serializers/user_summary_serializer_spec.rb spec/serializers/user_with_custom_fields_serializer_spec.rb spec/services/color_scheme_revisor_spec.rb spec/services/email_settings_exception_handler_spec.rb spec/services/notification_emailer_spec.rb spec/services/problem_check/email_polling_errored_recently_spec.rb spec/services/problem_check/missing_mailgun_api_key_spec.rb spec/services/problem_check/unreachable_themes_spec.rb spec/services/site_settings_spec.rb spec/services/topic_timestamp_changer_spec.rb spec/services/username_changer_spec.rb\r\n```","shortMessageHtmlLink":"DEV: correctly delete custom scheme (#27203)"}},{"before":"e53ae388deabe9f117c0c53206ff2f215f13ceb2","after":"a4eeac51473aad9431c494d52676fbeff3238810","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T14:39:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"DEV: Update to lastest rubocop-discourse","shortMessageHtmlLink":"DEV: Update to lastest rubocop-discourse"}},{"before":"ca4b813d29bc14b888d8ed63c48c3c72ca1c6a77","after":"3b6d4c830fd1560dc9642c58371a57ddd9c95040","ref":"refs/heads/main","pushedAt":"2024-05-27T14:35:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"DEV: correctly delete custom scheme (#27203)\n\nWe were adding the custom scheme as a symbol, but trying to delete the string. Which would result in the symbol to not be removed.\r\n\r\nThis was causing errors in others test:\r\n\r\n```\r\nError encountered while proccessing /admin/color_schemes.json I18n::MissingTranslationData: Translation missing: en.color_schemes.baseschemewithnohighlightcolor\r\n```\r\n\r\nReproducible with (probably possible to have a simpler repro):\r\n\r\n```\r\nbundle exec rspec --order random:27167 spec/integration/invalid_request_spec.rb spec/integration/spam_rules_spec.rb spec/jobs/bulk_invite_spec.rb spec/jobs/change_display_name_spec.rb spec/jobs/cleanup_imap_sync_log_spec.rb spec/jobs/download_backup_email_spec.rb spec/jobs/fix_primary_emails_for_staged_users_spec.rb spec/jobs/fix_s3_etags_spec.rb spec/jobs/pending_users_reminder_spec.rb spec/jobs/periodical_updates_spec.rb spec/jobs/pull_hotlinked_images_spec.rb spec/jobs/regular/group_smtp_email_spec.rb spec/jobs/reindex_search_spec.rb spec/jobs/update_topic_hot_scores_spec.rb spec/jobs/user_email_spec.rb spec/lib/admin_confirmation_spec.rb spec/lib/backup_restore/database_restorer_multisite_spec.rb spec/lib/backup_restore/system_interface_spec.rb spec/lib/bookmark_reminder_notification_handler_spec.rb spec/lib/color_math_spec.rb spec/lib/content_buffer_spec.rb spec/lib/discourse_spec.rb spec/lib/discourse_tagging_spec.rb spec/lib/discourse_webauthn/registration_service_spec.rb spec/lib/email/renderer_spec.rb spec/lib/email_updater_spec.rb spec/lib/ember_cli_spec.rb spec/lib/feed_element_installer_spec.rb spec/lib/file_helper_spec.rb spec/lib/final_destination/resolver_spec.rb spec/lib/freedom_patches/schema_migration_details_spec.rb spec/lib/guardian/post_guardian_spec.rb spec/lib/guardian/topic_guardian_spec.rb spec/lib/message_id_service_spec.rb spec/lib/onebox/domain_checker_spec.rb spec/lib/onebox/engine/google_maps_onebox_spec.rb spec/lib/onebox/engine/google_play_app_onebox_spec.rb spec/lib/onebox/engine/json_spec.rb spec/lib/onebox/engine/reddit_media_onebox_spec.rb spec/lib/onebox/engine/video_onebox_spec.rb spec/lib/onebox/engine/wikipedia_onebox_spec.rb spec/lib/onebox/engine/wistia_onebox_spec.rb spec/lib/post_destroyer_spec.rb spec/lib/post_locker_spec.rb spec/lib/s3_helper_spec.rb spec/lib/s3_inventory_spec.rb spec/lib/scss_checker_spec.rb spec/lib/site_icon_manager_spec.rb spec/lib/site_setting_extension_multisite_spec.rb spec/lib/summarization/base_spec.rb spec/lib/trashable_spec.rb spec/lib/validators/category_search_priority_weights_validator_spec.rb spec/lib/validators/max_username_length_validator_spec.rb spec/lib/validators/regex_presence_validator_spec.rb spec/lib/validators/regexp_list_validator_spec.rb spec/lib/validators/topic_title_length_validator_spec.rb spec/lib/validators/url_validator_spec.rb spec/lib/work_queue_spec.rb spec/mailers/test_mailer_spec.rb spec/mailers/version_mailer_spec.rb spec/models/badge_grouping_spec.rb spec/models/category_featured_topic_spec.rb spec/models/color_scheme_spec.rb spec/models/flag_spec.rb spec/models/given_daily_like_spec.rb spec/models/plugin_store_spec.rb spec/models/screened_url_spec.rb spec/models/site_setting_spec.rb spec/models/tag_spec.rb spec/models/theme_svg_sprite_spec.rb spec/models/top_menu_item_spec.rb spec/models/topic_allowed_user_spec.rb spec/models/topic_converter_spec.rb spec/models/topic_timer_spec.rb spec/models/translation_override_spec.rb spec/models/user_archived_message_spec.rb spec/models/user_email_spec.rb spec/models/user_search_spec.rb spec/models/user_status_spec.rb spec/models/web_hook_event_spec.rb spec/multisite/pausable_multisite_spec.rb spec/multisite/pausable_spec.rb spec/requests/about_controller_spec.rb spec/requests/admin/backups_controller_spec.rb spec/requests/admin/color_schemes_controller_spec.rb spec/requests/admin/email_templates_controller_spec.rb spec/requests/admin/form_templates_controller_spec.rb spec/requests/admin/screened_ip_addresses_controller_spec.rb spec/requests/admin/site_texts_controller_spec.rb spec/requests/api/categories_spec.rb spec/requests/api/site_spec.rb spec/requests/api/tags_spec.rb spec/requests/api/uploads_spec.rb spec/requests/api/users_spec.rb spec/requests/associate_accounts_controller_spec.rb spec/requests/badges_controller_spec.rb spec/requests/csp_reports_controller_spec.rb spec/requests/edit_directory_columns_controller_spec.rb spec/requests/slugs_controller_spec.rb spec/requests/steps_controller_spec.rb spec/requests/stylesheets_controller_spec.rb spec/requests/topic_view_stats_controller_spec.rb spec/requests/user_avatars_controller_spec.rb spec/requests/users_controller_spec.rb spec/script/import_scripts/vanilla_body_parser_spec.rb spec/serializers/basic_reviewable_queued_post_serializer_spec.rb spec/serializers/found_user_serializer_spec.rb spec/serializers/reviewable_flagged_post_serializer_spec.rb spec/serializers/reviewable_queued_post_serializer_spec.rb spec/serializers/reviewable_user_serializer_spec.rb spec/serializers/theme_objects_setting_metadata_serializer_spec.rb spec/serializers/topic_tracking_state_item_serializer_spec.rb spec/serializers/user_summary_serializer_spec.rb spec/serializers/user_with_custom_fields_serializer_spec.rb spec/services/color_scheme_revisor_spec.rb spec/services/email_settings_exception_handler_spec.rb spec/services/notification_emailer_spec.rb spec/services/problem_check/email_polling_errored_recently_spec.rb spec/services/problem_check/missing_mailgun_api_key_spec.rb spec/services/problem_check/unreachable_themes_spec.rb spec/services/site_settings_spec.rb spec/services/topic_timestamp_changer_spec.rb spec/services/username_changer_spec.rb\r\n```","shortMessageHtmlLink":"DEV: correctly delete custom scheme (#27203)"}},{"before":"361992bb74768667bdd9e78fb1d0f47f87f211a3","after":"ca4b813d29bc14b888d8ed63c48c3c72ca1c6a77","ref":"refs/heads/main","pushedAt":"2024-05-27T14:35:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"DEV: linting (#27205)","shortMessageHtmlLink":"DEV: linting (#27205)"}},{"before":"4b7d9b9232e9db25dcd9f27e1211acb54ca546c2","after":"e53ae388deabe9f117c0c53206ff2f215f13ceb2","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T14:11:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"DEV: Update to lastest rubocop-discourse","shortMessageHtmlLink":"DEV: Update to lastest rubocop-discourse"}},{"before":"fcc671bc6044aea0f3f8e2a4222c04137552ee47","after":"4b7d9b9232e9db25dcd9f27e1211acb54ca546c2","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T14:03:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"WIP: try changing path","shortMessageHtmlLink":"WIP: try changing path"}},{"before":"6ddc2c5d084d0563db56b5519d79cda3fdf07d49","after":"b92f7aeb6e2b4f61a98f4912dc7d743a15392987","ref":"refs/heads/category_definition","pushedAt":"2024-05-27T13:53:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"gschlager","name":"Gerhard Schlager","path":"/gschlager","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/473736?s=80&v=4"},"commit":{"message":"wip","shortMessageHtmlLink":"wip"}},{"before":"51e02e0d31b904c998f988908d3c8e29d68cdb28","after":"361992bb74768667bdd9e78fb1d0f47f87f211a3","ref":"refs/heads/tests-passed","pushedAt":"2024-05-27T13:50:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"discoursebuild","name":"Discourse Build","path":"/discoursebuild","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2087059?s=80&v=4"},"commit":{"message":"FIX: Apply crawler rate limits to cached requests (#27174)\n\nThis commit moves the logic for crawler rate limits out of the application controller and into the request tracker middleware. The reason for this move is to apply rate limits to all crawler requests instead of just the requests that make it to the application controller. Some requests are served early from the middleware stack without reaching the Rails app for performance reasons (e.g. `AnonymousCache`) which results in crawlers getting 200 responses even though they've reached their limits and should be getting 429 responses.\r\n\r\nInternal topic: t/128810.","shortMessageHtmlLink":"FIX: Apply crawler rate limits to cached requests (#27174)"}},{"before":"fa12b0899153b80a41c4b0b25ef71740c3342d41","after":"fcc671bc6044aea0f3f8e2a4222c04137552ee47","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T13:50:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"WIP: install missing pg lib for macos runner","shortMessageHtmlLink":"WIP: install missing pg lib for macos runner"}},{"before":"f5516b8088bb4a95fc6d86252352b7a604522363","after":"51e02e0d31b904c998f988908d3c8e29d68cdb28","ref":"refs/heads/tests-passed","pushedAt":"2024-05-27T13:34:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"discoursebuild","name":"Discourse Build","path":"/discoursebuild","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2087059?s=80&v=4"},"commit":{"message":"DEV: Add reviewable id data attribute and plugin outlet for reviewable actions (#25311)","shortMessageHtmlLink":"DEV: Add reviewable id data attribute and plugin outlet for reviewabl…"}},{"before":"bfa721b9cbcbb65b2f803fc363a46537645cd3ce","after":"fa12b0899153b80a41c4b0b25ef71740c3342d41","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T13:31:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"WIP: fix Gemfile.lock path","shortMessageHtmlLink":"WIP: fix Gemfile.lock path"}},{"before":"4b7268c9d3a54df88bdc33e0fc1f276af5ae5d04","after":"bfa721b9cbcbb65b2f803fc363a46537645cd3ce","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T13:27:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"WIP: Fix migrations specs","shortMessageHtmlLink":"WIP: Fix migrations specs"}},{"before":"83bca53ef65a17a546325a225eec62895209c9a3","after":null,"ref":"refs/heads/fix/apply-crawler-rate-limits-to-cached-requests","pushedAt":"2024-05-27T13:26:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"OsamaSayegh","name":"Osama Sayegh","path":"/OsamaSayegh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17474474?s=80&v=4"}},{"before":"7992d7a65a39cf3bb57faa3c13c2f1414665a781","after":"361992bb74768667bdd9e78fb1d0f47f87f211a3","ref":"refs/heads/main","pushedAt":"2024-05-27T13:26:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"OsamaSayegh","name":"Osama Sayegh","path":"/OsamaSayegh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17474474?s=80&v=4"},"commit":{"message":"FIX: Apply crawler rate limits to cached requests (#27174)\n\nThis commit moves the logic for crawler rate limits out of the application controller and into the request tracker middleware. The reason for this move is to apply rate limits to all crawler requests instead of just the requests that make it to the application controller. Some requests are served early from the middleware stack without reaching the Rails app for performance reasons (e.g. `AnonymousCache`) which results in crawlers getting 200 responses even though they've reached their limits and should be getting 429 responses.\r\n\r\nInternal topic: t/128810.","shortMessageHtmlLink":"FIX: Apply crawler rate limits to cached requests (#27174)"}},{"before":"5147662b39791672ac1657afcf135606ea2250b1","after":null,"ref":"refs/heads/add-custom-emoji-sanitization-clean","pushedAt":"2024-05-27T13:24:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"}},{"before":"51e02e0d31b904c998f988908d3c8e29d68cdb28","after":"7992d7a65a39cf3bb57faa3c13c2f1414665a781","ref":"refs/heads/main","pushedAt":"2024-05-27T13:24:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"DEV: Refactor to add Custom emoji sanitization (#24368)\n\nCo-authored-by: Joffrey JAFFEUX ","shortMessageHtmlLink":"DEV: Refactor to add Custom emoji sanitization (#24368)"}},{"before":"f5516b8088bb4a95fc6d86252352b7a604522363","after":"51e02e0d31b904c998f988908d3c8e29d68cdb28","ref":"refs/heads/main","pushedAt":"2024-05-27T13:15:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"DEV: Add reviewable id data attribute and plugin outlet for reviewable actions (#25311)","shortMessageHtmlLink":"DEV: Add reviewable id data attribute and plugin outlet for reviewabl…"}},{"before":"af29c70b087722d8a8b6448bef524ad3b9017838","after":"83bca53ef65a17a546325a225eec62895209c9a3","ref":"refs/heads/fix/apply-crawler-rate-limits-to-cached-requests","pushedAt":"2024-05-27T13:14:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"OsamaSayegh","name":"Osama Sayegh","path":"/OsamaSayegh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17474474?s=80&v=4"},"commit":{"message":"shorten error message for bots","shortMessageHtmlLink":"shorten error message for bots"}},{"before":"8881affecf70c67cba8c118d19919a25b07a45af","after":"5147662b39791672ac1657afcf135606ea2250b1","ref":"refs/heads/add-custom-emoji-sanitization-clean","pushedAt":"2024-05-27T13:14:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"clean up PR","shortMessageHtmlLink":"clean up PR"}},{"before":"cf58e3c48d8cef8fbcab8cc2f51f7ef43984ac03","after":"8881affecf70c67cba8c118d19919a25b07a45af","ref":"refs/heads/add-custom-emoji-sanitization-clean","pushedAt":"2024-05-27T13:13:22.000Z","pushType":"push","commitsCount":2609,"pusher":{"login":"jjaffeux","name":"Joffrey JAFFEUX","path":"/jjaffeux","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/339945?s=80&v=4"},"commit":{"message":"Merge branch 'main' into add-custom-emoji-sanitization-clean","shortMessageHtmlLink":"Merge branch 'main' into add-custom-emoji-sanitization-clean"}},{"before":"3c0e672fc417994a8e959896036241c1374cc679","after":"f5516b8088bb4a95fc6d86252352b7a604522363","ref":"refs/heads/tests-passed","pushedAt":"2024-05-27T12:32:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"discoursebuild","name":"Discourse Build","path":"/discoursebuild","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2087059?s=80&v=4"},"commit":{"message":"DEV: clean after replacing flags spec (#27194)\n\nAfter flags are replaced, we need to bring the state back to the original. Otherwise, it causes flaky specs.","shortMessageHtmlLink":"DEV: clean after replacing flags spec (#27194)"}},{"before":"ccda8c99bc82e4b2c37f88b06e72ca5d0efada36","after":"4b7268c9d3a54df88bdc33e0fc1f276af5ae5d04","ref":"refs/heads/loic-update-rubocop-discourse","pushedAt":"2024-05-27T12:30:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Flink","name":"Loïc Guitaut","path":"/Flink","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5648?s=80&v=4"},"commit":{"message":"WIP: fix linting","shortMessageHtmlLink":"WIP: fix linting"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVRdXugA","startCursor":null,"endCursor":null}},"title":"Activity · discourse/discourse"}