Compare commits

...

1872 Commits

Author SHA1 Message Date
Claire 18eacc7a07
Merge pull request #2447 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
Renaud Chaput 5d9df170cf [Glitch] Do not display the navigation banner in the logo container 7 months ago
Claire cc000c8859 Merge commit '126cd7705dbeca5712da941a72661e26c189658b' into glitch-soc/merge-upstream 7 months ago
Claire 1c53aec00e
Merge pull request #2446 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
Brian Campbell 1a3248dc90 [Glitch] Consider shown and pending status in explore prompt calculation 7 months ago
Renaud Chaput 41f58e945c [Glitch] The `class` props should be `className` 7 months ago
Renaud Chaput 126cd7705d
Do not display the navigation banner in the logo container (#27476) 7 months ago
Claire 74fd46d3ab Merge commit '9f218c9924b883207a3463a29314c92032cf06df' into glitch-soc/merge-upstream 7 months ago
Claire 918137babc
Merge pull request #2444 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
Jeong Arm 68401fc426 [Glitch] Support "in:public" search filter 7 months ago
Matt Jankowski 9f218c9924
Refactor appeal partial to avoid brakeman XSS warning (#25880) 7 months ago
Matt Jankowski bcd0171e5e
Fix `Lint/UselessAssignment` cop (#27472) 7 months ago
Daniel M Brasil 7bc8f03162
Add test coverage for `Mastodon::CLI::Accounts#migrate` (#25284) 7 months ago
github-actions[bot] 1ffd5a98a9
New Crowdin Translations (automated) (#27465) 7 months ago
Brian Campbell f76e5111f0
Consider shown and pending status in explore prompt calculation (#27466) 7 months ago
Renaud Chaput 10df97c542
The `class` props should be `className` (#27462) 7 months ago
Claire 510845b6b9
Only enable github-rspec for pull_request events (#27456) 7 months ago
Matt Jankowski a1b27d8b61
Fix `Naming/VariableNumber` cop (#27447) 7 months ago
Emelia Smith 7c3fea7275
Feature: Allow token introspection without read scope (#27142) 7 months ago
github-actions[bot] 4612576c68
New Crowdin Translations (automated) (#27454) 7 months ago
Matt Jankowski 63a2a4b074
Fix `Performance/DeletePrefix` cop (#27448) 7 months ago
Daniel M Brasil 091a21e1bc
Add test coverage for `Mastodon::CLI::Accounts#prune` (#25204) 7 months ago
Claire e9dc30cdba
Fix duplicate github annotations for rspec failures (#27450) 7 months ago
Claire 0d18c47c18 Enable scheduled actions only on glitch-soc's repo 7 months ago
Claire 63179f0bf4 Merge commit '5ef26d8fd50081c642b858a82bf0c5431b1c7e83' into glitch-soc/merge-upstream 7 months ago
Stanislas Signoud 8bbbd012d4 [Glitch] Fix missing redirections to make sure /home redirect to the advanced UI 7 months ago
Claire c10a667ac2 Merge commit '935d54124e80e9fe5365c724e5c8827a2b3ed5b3' into glitch-soc/merge-upstream 7 months ago
Claire b867d4581e Merge commit 'c91c0175db1cc8b954a977d29472886234ce9586' into glitch-soc/merge-upstream 7 months ago
Claire 656a41db2a Merge commit '77098c6f1c25958960df98a1510b28352a39704f' into glitch-soc/merge-upstream 7 months ago
Nick Schonning 5ef26d8fd5
Add RSpec GitHub annotations gem (#24040) 7 months ago
Matt Jankowski 71447ab19f
Fix `Capybara/ClickLinkOrButtonStyle` cop in spec/features/admin area (#27445) 7 months ago
renovate[bot] 0036de46bc
Update dependency rubocop-performance to v1.19.1 (#26949) 7 months ago
Jeong Arm ad44d832b8
Support "in:public" search filter (#26976) 7 months ago
Matt Jankowski 2528a0721f
Update `rubocop-capybara` to version 2.19.0 (#26982) 7 months ago
renovate[bot] 1996fb6fd6
Update dependency puma to v6.4.0 (#27006) 7 months ago
Matt Jankowski 65cd0700e4
Refactor domains cli to remove model call from regex (#25878) 7 months ago
Claire b34a2b1b33
Fix errors in CLI specs (#27399) 7 months ago
Jeong Arm c0cda1adaf
Let use http_hidden_proxy on docker-compose (#27054) 7 months ago
Renaud Chaput 1fb4e40145
Run scheduled actions only on the main repo (#27343) 7 months ago
Stanislas Signoud 935d54124e
Fix missing redirections to make sure /home redirect to the advanced UI (#27378) 7 months ago
Victor Lee c4bddc9855
Add spec for poll model (#23399) 7 months ago
Matt Jankowski 12bb7be8b5
Spec speed ups on `AccountsController` spec (#25391) 7 months ago
Matt Jankowski d54fec24e5
Add coverage for `CLI::PreviewCards#remove` command (#27441) 7 months ago
Matt Jankowski 19900f647e
Add coverage for `UnreservedUsernameValidator` (#25590) 7 months ago
Claire 1084703417
Update changelog (#27440) 7 months ago
Matt Jankowski fc9ab61448
Expand spec coverage of `CLI::Media` (#27437) 7 months ago
Matt Jankowski 33b073f77d
Extract partials from `admin/reports/show` view (#27427) 7 months ago
Matt Jankowski 8d0f12f776
Extract partials from `admin/accounts/show` view (#27428) 7 months ago
Matt Jankowski 893b2f33fd
Extract shared example for cacheable response in specs (#25388) 7 months ago
Matt Jankowski 708299bb0d
Misc coverage improvements for `Admin::` and `Settings::` controllers (#25346) 7 months ago
Daniel M Brasil e0ed0f8c7c
Migrate to request specs in `/api/v1/notifications` (#25553) 7 months ago
Matt Jankowski 08a376cbcb
Fix `Style/CombinableLoops` cop (#27429) 7 months ago
Matt Jankowski c91c0175db
Extract `card` partial from `disputes/strikes/show` view (#27426) 7 months ago
Daniel M Brasil cafdaec6cf
Migrate to request specs in `/api/v1/lists/:id/accounts` (#25468) 7 months ago
Daniel M Brasil 8e6116503d
Migrate to request specs in `/api/v1/blocks` (#25517) 7 months ago
Daniel M Brasil d9caa6ed24
Migrate to request specs in `/api/v1/admin/accounts` (#25563) 7 months ago
Matt Jankowski f5bc1f20e2
Add coverage for `ExistingUsernameValidator` (#25592) 7 months ago
Matt Jankowski f8afa0f614
Remove unused stub json ld context (#25454) 7 months ago
Matt Jankowski 00e92b4038
Add coverage for `CLI::Statuses` command (#25321) 7 months ago
Claire 299aa71c8f
Fix handling of `inLanguage` attribute in preview card processing (#27423) 7 months ago
Wladimir Palant 23f8e93c64
Fixes #23135 - Allow cross origin request for /nodeinfo/2.0 API (#27413) 7 months ago
github-actions[bot] 13456efd7b
New Crowdin Translations (automated) (#27410) 7 months ago
renovate[bot] a00fc83701
Update dependency bufferutil to v4.0.8 (#27412) 7 months ago
renovate[bot] f0ef87b84d
Update dependency i18n-tasks to v1.0.13 (#27403) 7 months ago
Renaud Chaput e0da64bb4e
Fix empty ENV variables not using default nil value (#27400) 7 months ago
Daniel M Brasil 82beeb2f7e
Migrate to request specs in `/api/v1/admin/trends/links` (#25739) 7 months ago
Matt Jankowski 1b195ce115
Speed-up on `Rack::Attack` spec (#25542) 7 months ago
Claire 71cfdd7865
Fix duplicate tests (#27395) 7 months ago
Matt Jankowski cad8cc90ba
Speed-up on `MoveWorker` spec (#25528) 7 months ago
Daniel M Brasil 058f73a4f5
Add request specs for `/api/v1/reports` (#25475) 7 months ago
Matt Jankowski abf0e1fa39
Move `SignedReqestHelpers` rspec config to separate file (#25453) 7 months ago
Daniel M Brasil bc6cd27d9e
Migrate to request specs in `/api/v1/followed_tags` (#25472) 7 months ago
Matt Jankowski fd9dea21d0
DB speedup in `API::` controller/request specs (#25516) 7 months ago
Daniel M Brasil ecdb31d479
Migrate to request specs in `/api/v1/favourites` (#25518) 7 months ago
Daniel M Brasil 7664e3b692
Migrate to request specs in `/api/v1/statuses/:status_id/source` (#25634) 7 months ago
Daniel M Brasil 4230d1ee0a
Migrate to request specs in `/api/v1/timelines/tag/:hashtag` (#25797) 7 months ago
Renaud Chaput 77098c6f1c
Delete .github/FUNDING.yml (#27390) 7 months ago
renovate[bot] 5c287c4958
Update dependency rubocop to v1.57.1 (#27389) 7 months ago
KMY(雪あすか) 45bdd60f3c
Fix when unfollow a tag, my post also disappears from the home timeline (#27391) 7 months ago
github-actions[bot] 773d25e8df
New Crowdin Translations (automated) (#27388) 7 months ago
renovate[bot] 6a9aab38d7
Update dependency devise-two-factor to v4.1.1 (#27382) 7 months ago
Matt Jankowski 133f218a4d
Add system specs for admin area `batch` actions (#25027) 7 months ago
Claire c86ad45660
Change PWA start URL from `/home` to `/` (#27377) 7 months ago
Claire 45a19ddfe4
Merge pull request #2440 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
github-actions[bot] c348b904a5
New Crowdin Translations (automated) (#27376) 7 months ago
Matt Jankowski d4c2dca874
Fix haml-lint `InstanceVariables` rule for auth/sessions/two_factor/o… (#27372) 7 months ago
renovate[bot] 85b36fbbd3
Update dependency devise to v4.9.3 (#27373) 7 months ago
Matt Jankowski d7a8f6b658
Fix haml-lint `InstanceVariables` rule for relationships/account (#27342) 7 months ago
github-actions[bot] f1ae72ba46
New Crowdin Translations (automated) (#27364) 7 months ago
renovate[bot] d0a3331caa
Update dependency rubocop to v1.57.0 (#27371) 7 months ago
François Hodierne 608cd66239
Update README requirements from node 14 to node 16 (#27369) 7 months ago
renovate[bot] 1afb7f4104
Update dependency lograge to v0.14.0 (#27363) 7 months ago
Matt Jankowski f9abe700e7
Fix haml-lint `InstanceVariables` rule for auth/registrations/status (#27341) 7 months ago
renovate[bot] 0111e48893
Update dependency sidekiq to v6.5.12 (#27358) 7 months ago
Matt Jankowski 66becf9a1e
Fix haml-lint `InstanceVariables` rule for admin/reports/actions (#27339) 7 months ago
Claire 7d2cd7195b
Add variable delay before link verification of remote account links (#27351) 7 months ago
Claire 99c72830bc [Glitch] Fix scroll position in thread view reseting when closing a modal 7 months ago
Claire 3735e6f79d Merge commit '27e84c069112a3d2abfad947642457cc997a261a' into glitch-soc/merge-upstream 7 months ago
Claire 1a4a23b5c8
Merge pull request #2439 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
Claire 27e84c0691
Fix duplicate reports being sent when reporting some remote posts (#27355) 7 months ago
Claire 9d1c3d0678
Fix scroll position in thread view reseting when closing a modal (#27350) 7 months ago
github-actions[bot] 1a2a4c389f
New Crowdin Translations (automated) (#27347) 7 months ago
renovate[bot] 1745c582f8
Update dependency sidekiq to v6.5.11 (#27345) 7 months ago
Claire 05159d2f94 [Glitch] Fix clicking on already-loaded thread scrolling to the top of the thread 7 months ago
Claire 8ef1a95b1c Merge commit '4c2aca777f6ae6942d0cf11aee56a925694ccdef' into glitch-soc/merge-upstream 7 months ago
Renaud Chaput 7b325aa81b [Glitch] Autofix missing comma and indentation in JS files 7 months ago
Claire 4a9cdfb928 Merge commit '774e1189d26fffd914107a4236f6287043c988f8' into glitch-soc/merge-upstream 7 months ago
Claire b63d526590 [Glitch] Fix clicking on already-opened thread post scrolling to the top of the thread 7 months ago
Claire 3da7afdeed Merge commit 'c310374a2f83a890520ace50e41c1e3d046e15e1' into glitch-soc/merge-upstream 7 months ago
Claire 4c2aca777f
Fix clicking on already-loaded thread scrolling to the top of the thread (#27338) 7 months ago
Claire 9af24835f6
Merge pull request #2434 from ClearlyClaire/glitch-soc/merge-upstream 7 months ago
Renaud Chaput 774e1189d2
Change `eslint` config to autofix missing comma and indentation in JS files (#26711) 7 months ago
Claire c310374a2f
Fix clicking on already-opened thread post scrolling to the top of the thread (#27331) 7 months ago
github-actions[bot] 89b48681cf
New Crowdin Translations (automated) (#27321) 7 months ago
renovate[bot] 5fc5a548b4
Update DefinitelyTyped types (non-major) (#27327) 7 months ago
renovate[bot] eabe839744
Update eslint (non-major) (#27328) 7 months ago
Claire 967bd543bb [Glitch] Fix auto-loading-more when not scrolled 7 months ago
Claire 53f5b27bd1 Merge commit '640421f661ee4d7e76a2aab607e7b15687940b6f' into glitch-soc/merge-upstream 7 months ago
Claire 86c9c5afa0 Merge commit '40ba6e119b7457161fd43b449875d0fb9d473c1a' into glitch-soc/merge-upstream 7 months ago
Claire ac2370778a Merge commit 'c676bc91e9c3aa81eb7cfbce3c5c5e80b84d3d02' into glitch-soc/merge-upstream 7 months ago
Claire 74c27e33e3 Merge commit '37bbd3c1064380a756b4e821655d7697105f99f5' into glitch-soc/merge-upstream 7 months ago
Michael Stanclift 8eb09c6f72 [Glitch] Keep version string displayed without breakpoints in UI 7 months ago
Claire a5dbb1ee5a Merge commit '5a437edc7f22d5797e5af29d9b450a03eccec304' into glitch-soc/merge-upstream 7 months ago
Claire e83059fd9d [Glitch] Fix explore prompt appearing because of posts being received out of order 7 months ago
Claire e9a181c52c Merge commit 'e95d25e1013b6328457b81bd98e8d6a841d45ec2' into glitch-soc/merge-upstream 7 months ago
Claire 702d162998 Merge commit '5393be7a21331c8615ffb79c2271db92f6959458' into glitch-soc/merge-upstream 7 months ago
Claire d7fcd70023 Merge commit '2016c5d912f400ae98ee03ce269112de2f9ec62d' into glitch-soc/merge-upstream 7 months ago
Michael Stanclift cfc0da77ac [Glitch] Fix retention dashboard not displaying correct month 7 months ago
Claire 19ebf7797e Merge commit 'e6b903b21e0682c1156ffec583ac2836fda7d657' into glitch-soc/merge-upstream 7 months ago
Andy Piper 640421f661
Add 4.2.x to supported versions in SECURITY.md (#27317) 7 months ago
Claire 3262d1f1b6
Fix incorrect serialization of regional languages in `contentMap` (#27207) 7 months ago
Michael Stanclift 3171afc36a
Add Elasticsearch index size to Admin dashboard (#27301) 7 months ago
Claire 340c390849
Fix crash when filtering for “dormant” relationships (#27306) 7 months ago
Claire 4d59dfb1c6
Fix some remote posts getting truncated (#27307) 7 months ago
github-actions[bot] e0b54ed3e1
New Crowdin Translations (automated) (#27304) 7 months ago
renovate[bot] 027c1bef8d
Update dependency active_model_serializers to v0.10.14 (#27303) 7 months ago
Renaud Chaput c4cff3d762
Remove Capistrano (#27295) 7 months ago
Matt Jankowski 165ec6c779
Remove bundle audit skipping sidekiq CVE (#27291) 7 months ago
renovate[bot] 5606a17933
Update dependency sidekiq to v6.5.10 (#27287) 7 months ago
Claire 2b98e2ecd6
Fix auto-loading-more when not scrolled (#27286) 7 months ago
github-actions[bot] 32ab474472
New Crowdin Translations (automated) (#27277) 7 months ago
Claire 3c13d70600
Add mention of YJIT in admin dashboard if enabled (#27283) 7 months ago
renovate[bot] d22515861e
Update dependency @reduxjs/toolkit to v1.9.7 (#27275) 7 months ago
Claire 40ba6e119b
Fix Vary headers not being set on some redirects (#27272) 7 months ago
github-actions[bot] 8e4251f9e7
New Crowdin Translations (automated) (#27270) 7 months ago
Matt Jankowski 72cec47c13
Silence deprecation warning in CacheBuster spec (#27264) 7 months ago
gunchleoc 68ec1d180a
Fix language sorting in settings (#27158) 7 months ago
Matt Jankowski c676bc91e9
Dont match mention in url query string (#25656) 7 months ago
Matt Jankowski 2f8f92df48
Fix Elastic check deprecation warning about gem version (#27262) 7 months ago
Nick Schonning 85db392464
Autofix Rubocop cops for config/ (#24145) 7 months ago
Matt Jankowski e715da6d25
Fix haml-lint Rubocop `Rails/*` cops (#26042) 7 months ago
Nick Schonning 8bb4706e11
Move migration_helpers Rubocop ignore to config (#24236) 7 months ago
Claire 37bbd3c106
Fix double scroll bars in some columns in advanced interface (#27187) 7 months ago
Claire ceb365c419
Fix boosts of local users being filtered in account timelines (#27204) 7 months ago
Claire 4e55001e65
Add a short-lived lock to trend refresh scheduler (#27253) 7 months ago
Michael Stanclift 5a437edc7f
Keep version string displayed without breakpoints in UI (#26986) 7 months ago
David Aaron 6320c52630
Change min age of backup policy from 1 week to 6 days (#27200) 7 months ago
jsgoldstein ad637eacd1
Add a test case for ES8 (#27248) 7 months ago
renovate[bot] e836d078bb
Update dependency haml_lint to v0.51.0 (#27250) 7 months ago
Jakob Gillich 770fd993ec
Fix importer returning negative row estimates (#27258) 7 months ago
github-actions[bot] e95d25e101
New Crowdin Translations (automated) (#27260) 7 months ago
Claire 5e56f3db65
Change some worker lock TTLs (#27246) 7 months ago
Claire 7e7d6e695b
Fix incorrectly keeping outdated update notices absent from the API endpoint (#27021) 7 months ago
Claire 1e2d4975cf
Fix import progress not updating on certain failures (#27247) 7 months ago
github-actions[bot] ee866ec0e0
New Crowdin Translations (automated) (#27220) 7 months ago
Emelia Smith f68d540271
Fix websocket connections being incorrectly decremented twice on errors (#27238) 7 months ago
renovate[bot] 5f2d494f0d
Update dependency react-redux to v8.1.3 (#27229) 7 months ago
Jake Anto c2f13769cd
Add PWA shortcut to `/explore` page (#27235) 7 months ago
renovate[bot] bad1629dcd
Update dependency core-js to v3.33.0 (#27237) 7 months ago
renovate[bot] 73a92f9e7a
Update DefinitelyTyped types (non-major) (#27239) 7 months ago
renovate[bot] 829be02abe
Update Node.js to v20.8 (#27240) 7 months ago
Claire d80a819fc6
Fix explore prompt appearing because of posts being received out of order (#27211) 7 months ago
renovate[bot] 5393be7a21
Update eslint (non-major) to v6.7.3 (#27213) 7 months ago
renovate[bot] 48ef7d0f06
Update libretranslate/libretranslate Docker tag to v1.3.12 (#27214) 7 months ago
renovate[bot] 9b785877d2
Update DefinitelyTyped types (non-major) (#27212) 7 months ago
github-actions[bot] 695e42de0d
New Crowdin Translations (automated) (#27202) 7 months ago
renovate[bot] 665093a7b6
Update dependency postcss to v8.4.31 (#27199) 7 months ago
renovate[bot] a1becc9189
Update dependency node to 20.8 (#27201) 7 months ago
Matt Jankowski 340f1a68be
Simplify instance presenter view access (#26046) 7 months ago
Matt Jankowski 2016c5d912
Fix deprecation warning about `rewhere: true` being default behavior (Rails 7.1 prep) (#27190) 7 months ago
Matt Jankowski 99e289f03f
Fix include `Rails.application.routes.url_helpers` (Rails 7.1 prep) (#27189) 7 months ago
Matt Jankowski 89a17878ef
Fix haml-lint `InstanceVariables` rule for admin/roles/_form (#26063) 7 months ago
renovate[bot] f9eefb2785
Update dependency rubocop to v1.56.4 (#27188) 7 months ago
Matt Jankowski 9d56c1949b
Fix haml-lint `InstanceVariables` rule for admin/webhooks/_form (#26062) 7 months ago
Matt Jankowski 3060bfa4bd
Extract filename and csv helper methods from `Form::Import` (#26129) 7 months ago
Matt Jankowski 937dc42f10
Extract methods for file movement in `CLI::Upgrade` (#25120) 7 months ago
Matt Jankowski 56c0babc0b
Fix rubocop `Layout/ArgumentAlignment` cop (#26060) 7 months ago
Matt Jankowski e6b903b21e
Fix haml-lint `InstanceVariables` rule for invites/_form (#26064) 7 months ago
Claire 1da3c588ca
Fix link handling of mentions in user profiles when logged out (#27185) 7 months ago
Claire 686406cc2d
Fix filtering audit log for entries about disabling 2FA (#27186) 7 months ago
Claire f0c720cfc9
Bump version to v4.3.0-alpha.0 (#27022) 7 months ago
github-actions[bot] b93ce7d8b3
New Crowdin Translations (automated) (#27168) 7 months ago
Christian Schmidt 6d0767558a
Make notification respect reduce-motion (#27178) 7 months ago
renovate[bot] 66a7bc215c
Update dependency glob to v10.3.10 (#27169) 7 months ago
renovate[bot] 0f588a4a86
Update dependency axios to v1.5.1 (#27159) 7 months ago
Michael Stanclift 7fddeca190
Fix retention dashboard not displaying correct month (#27180) 7 months ago
renovate[bot] 2979a5924b
Update dependency @material-design-icons/svg to v0.14.13 (#27181) 7 months ago
gunchleoc ce79caca4e
Only strip country code when language not listed in SUPPORTED_LOCALES (#27099) 7 months ago
Georg Gadinger ebd2017524
fix Content-Security-Policy when using Azure storage (#2427) 8 months ago
Claire fde89a8fc0
Merge pull request #2426 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 1eeaa0d84f [Glitch] Fix width of large text icon buttons 8 months ago
gunchleoc ca7d16912e [Glitch] Fix line wrapping of language selection button with long locale codes 8 months ago
Claire 02e6d9f8f9 [Glitch] Fix explore prompt sometimes showing up when the home TL is loading 8 months ago
Renaud Chaput 919ed0e469 [Glitch] Convert `dropdown_menu` state to Typescript 8 months ago
Renaud Chaput b2d67fbe33 [Glitch] Improve modals reducer types 8 months ago
Claire abdb58840a Merge commit '57f592fed50747f3c97718a2761e17bafe6c8698' into glitch-soc/merge-upstream 8 months ago
Renaud Chaput 57f592fed5
Add Typescript types for some API objects (#26602) 8 months ago
renovate[bot] 2054ee7cd5
Update dependency glob to v10.3.9 (#27148) 8 months ago
Claire 82eaa26d87
Update `tootctl maintenance fix-duplicates` to Mastodon v4.2.0 (#27147) 8 months ago
renovate[bot] fdc9f971f7
Update dependency selenium-webdriver to v4.13.1 (#27141) 8 months ago
github-actions[bot] 5ea3e8e765
New Crowdin Translations (automated) (#27144) 8 months ago
renovate[bot] 33a066a952
Update dependency glob to v10.3.8 (#27145) 8 months ago
Essem bd810391d6
Properly remove tIME chunk from PNG uploads (#27111) 8 months ago
renovate[bot] 530f48610d
Update docker/setup-qemu-action action to v3 (#27124) 8 months ago
renovate[bot] cdd8c4eb2a
Update docker/setup-buildx-action action to v3 (#27123) 8 months ago
renovate[bot] 8ea98aa384
Update docker/metadata-action action to v5 (#27122) 8 months ago
renovate[bot] 19bc73b736
Update docker/login-action action to v3 (#27121) 8 months ago
renovate[bot] cf9230fa1c
Update docker/build-push-action action to v5 (#27120) 8 months ago
Claire 06444c86c7
Fix division by zero in video in bitrate computation code (#27129) 8 months ago
Claire a001ae2f39
Fix explore prompt sometimes showing up when the home TL is loading (#27062) 8 months ago
Claire 3de6dcf634
Add redirection on `/deck` URLs for logged-out users (#27128) 8 months ago
Claire 38753acaa5
Fix width of large text icon buttons (#27127) 8 months ago
Claire 1bd7455d81
Fix inefficient queries in “Follows and followers” as well as several admin pages (#27116) 8 months ago
gunchleoc 88fa8e710a
Fix line wrapping of language selection button with long locale codes (#27100) 8 months ago
renovate[bot] aeeddb9d46
Update DefinitelyTyped types (non-major) (#27109) 8 months ago
renovate[bot] 82c44f492d
Update dependency glob to v10.3.7 (#27078) 8 months ago
github-actions[bot] 736fe75346
New Crowdin Translations (automated) (#27080) 8 months ago
renovate[bot] c56d7d702f
Update dependency @reduxjs/toolkit to v1.9.6 (#27110) 8 months ago
renovate[bot] a4c29a4e51
Update Node.js to v20.7 (#27112) 8 months ago
renovate[bot] 1fa40cff70
Update eslint (non-major) (#27113) 8 months ago
Renaud Chaput 4b7bc1f07c
Convert `dropdown_menu` state to Typescript (#25585) 8 months ago
Renaud Chaput b93ffb74bb
Improve modals reducer types (#26610) 8 months ago
Claire 39da3d86f8
Fix ActiveRecord using two connection pools when no replica is defined (#27061) 8 months ago
github-actions[bot] e824585523
New Crowdin Translations (automated) (#27052) 8 months ago
Renaud Chaput 4aaaf0dde3
Fix the search documentation URL in system checks (#27036) 8 months ago
Renaud Chaput a011d3a7c6
Ignore CVE-2023-26141 (Sidekiq) from bundler audit (#27037) 8 months ago
Claire d0d06c99dc
Merge pull request #2422 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 86ec1e833e Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Claire 4fcc026f0f
Bump version to v4.2.0 (#27017) 8 months ago
Claire c04b08a34d
Merge pull request #2419 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire b57ec6ad6b Fix some settings not being properly migrated when set to `false` 8 months ago
Claire 6760e67c64 [Glitch] Fix search results temporarily disappearing while scrolling and loading more results 8 months ago
Claire f05985f8ec Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Eugen Rochko 0fbefb6f67
Update AUTHORS.md (#27018) 8 months ago
Claire 8acc75435b
Change S3 checksum mode to be disabled by default (#27007) 8 months ago
aaaaalbert bb6c59a399
Fix #27010: update the copyright year in README (#27016) 8 months ago
Claire 5356ddbcca
Fix search results temporarily disappearing while scrolling and loading more results (#27014) 8 months ago
Claire 890e334703
Add migration tests for negative settings (#27012) 8 months ago
renovate[bot] c74670b4d3
Update dependency glob to v10.3.5 (#27002) 8 months ago
github-actions[bot] effe4728cf
New Crowdin Translations (automated) (#27005) 8 months ago
renovate[bot] 4ed9d9ca6f
Update dependency autoprefixer to v10.4.16 (#27000) 8 months ago
Claire 828eebad48
Add `hide_collections`, `discoverable` and `indexable` attributes to credentials API (#26998) 8 months ago
github-actions[bot] 61fe25fe74
New Crowdin Translations (automated) (#26988) 8 months ago
Claire 889c4d4bbb
Update changelog (#26992) 8 months ago
Claire 5efa6ac771
Merge pull request #2417 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 6a9e93ae19 Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Claire abcc0b38fa
Fix incorrect PostgreSQL version check (#26979) 8 months ago
Claire 57f47e50f0
Merge pull request #2416 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire f546b0c999 Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Claire f4b780ba22
Bump version to v4.2.0-rc2 (#26974) 8 months ago
Claire eeab3560fc
Merge pull request from GHSA-v3xf-c9qf-j667 8 months ago
Claire ff32475f5f
Merge pull request from GHSA-2693-xr3m-jhqr 8 months ago
Claire 94893cf24f
Merge pull request from GHSA-hcqf-fw2r-52g4 8 months ago
github-actions[bot] 73ecc4de6e
New Crowdin Translations (automated) (#26978) 8 months ago
Claire 0cb343eec2
Tag nightly images as `latest` in glitch-soc, as it has no proper releases (#2414) 8 months ago
Claire 6f6586808e
Merge pull request #2413 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 22ee4e057d Merge commit 'a83615edc9fc1ce3363ddcf1fc676806421a5f65' into glitch-soc/merge-upstream 8 months ago
Claire 1e87575b70 Merge commit '6eb6209d02514c5271238a23601be643c7b9f52d' into glitch-soc/merge-upstream 8 months ago
Claire 7ea5a2c82c
Merge pull request #2411 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
renovate[bot] a83615edc9
Update eslint (non-major) (#26954) 8 months ago
Eugen Rochko 0f3f9b611f
Change video bitrate to always fit within size limit (#26970) 8 months ago
Claire 70cae19b6b
Fix hashtag bar being sometimes incorrectly hidden (#26960) 8 months ago
Emelia Smith fbfceb9c77
Add additional metrics for streaming (#26945) 8 months ago
renovate[bot] 6eb6209d02
Update DefinitelyTyped types (non-major) (#26953) 8 months ago
renovate[bot] c6a535a197
Update dependency node to 20.7 (#26963) 8 months ago
renovate[bot] 6f9f901153
Update dependency postcss to v8.4.30 (#26964) 8 months ago
github-actions[bot] 67eaaa4b90
New Crowdin Translations (automated) (#26966) 8 months ago
Rob Thomas 200312e8be
Fix crash when viewing a moderation appeal and the moderator account has been deleted (#25900) 8 months ago
github-actions[bot] 1b4902fabf
New Crowdin Translations (automated) (#26913) 8 months ago
Claire 31dedf4697 [Glitch] Fix Web UI making duplicate search queries when scrolling 8 months ago
Claire f61e29cc7e [Glitch] Fix error in Web UI when server rules cannot be fetched 8 months ago
Claire 9688c5fcc4 Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Claire 4c1518a6f3
Fix Web UI making duplicate search queries when scrolling (#26959) 8 months ago
Claire 893755f4cb
Fix error in Web UI when server rules cannot be fetched (#26957) 8 months ago
Claire 392c07f2bf
Fix `Setting.authorized_fetch` not being properly taken into consideration (#26958) 8 months ago
renovate[bot] 8b5c61ae3a
Update formatjs monorepo (#26955) 8 months ago
renovate[bot] 04623e2f34
Update babel monorepo to v7.22.20 (#26946) 8 months ago
Claire 743fede5be
Merge pull request #2406 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 60ecca6acb Revert tabs background color so they are easier to visually distinguish from contents 8 months ago
Claire d3f14dd7d4 [Glitch] Fix dismiss button overlapping with text in dismissable banners 8 months ago
Claire dfc05ec8df Merge commit '6273416292090b2f6bfda33f070cea325a1759df' into glitch-soc/merge-upstream 8 months ago
Claire 5ed72f668f Merge commit 'b90383d07388fe8513e59a6deb1a2391146c6561' into glitch-soc/merge-upstream 8 months ago
Claire cf8b242c4c [Glitch] Fix notification permissions being requested immediately after login 8 months ago
Santiago Kozak 0b5903af7c [Glitch] Fix recent search items not handling overflows correctly 8 months ago
Claire e193c848fe Merge commit '97e4011c3ce31c6d492d5f103e95a35b6ebdc9bd' into glitch-soc/merge-upstream 8 months ago
Eugen Rochko 7384015505 [Glitch] Add recent searches in web UI 8 months ago
Claire 263d601c25 [Glitch] Fix confusing behavior of mute button and volume slider in web UI 8 months ago
Eugen Rochko 58514651c3 [Glitch] Fix mute button and volume slider feeling disconnected in web UI 8 months ago
Eugen Rochko 15c865808a [Glitch] Change onboarding prompt to use full width of banner in web UI 8 months ago
Claire 08b495d95c Merge commit 'b1d89071384ef028c97a3d28cf8cf6bc0ca6c4ce' into glitch-soc/merge-upstream 8 months ago
Claire 9f3df3edee [Glitch] Add some information about Full-text search being disabled in search popout 8 months ago
Claire 5d8c65f2a7 Merge commit '398635c0c4987ec44d937e98431ff5dee331ea94' into glitch-soc/merge-upstream 8 months ago
Eugen Rochko 526f457ebc [Glitch] Add infinite scrolling for search results in web UI 8 months ago
Eugen Rochko f7a4d77d90 [Glitch] Add `in:` to search popout in web UI 8 months ago
Claire 3ca94f6d4a Merge commit '93d051e47d27b5bd10be922a81d4d4eb6c306330' into glitch-soc/merge-upstream 8 months ago
Claire e5269c6a65 [Glitch] Improve interaction modal error handling 8 months ago
Claire e14372c2d1 Merge commit '548c032dbb90ae9c06b05fc05724c49d0b552fd9' into glitch-soc/merge-upstream 8 months ago
Claire 6273416292
Fix post edits not being forwarded as expected (#26936) 8 months ago
Claire 2a4fcc51fd
Fix dismiss button overlapping with text in dismissable banners (#26935) 8 months ago
Claire e4f5114aaf
Fix obsolete cache key in status cache invalidation logic (#26934) 8 months ago
Renaud Chaput 5d93e98da4
Fix container build when cache is disabled (#26932) 8 months ago
Claire 9693c271f1
Fix processing of `min_id` and `max_id` parameters in `/api/v2/search` (#26927) 8 months ago
renovate[bot] 82015dbab6
Update dependency sass to v1.67.0 (#26914) 8 months ago
renovate[bot] 3103415364
Update dependency @babel/core to v7.22.19 (#26920) 8 months ago
Renaud Chaput ef8ca2fd72
Change Dockerfile to upgrade packages when building (#26922) 8 months ago
Claire b90383d073
Bump version to v4.2.0-rc1 (#26916) 8 months ago
Eugen Rochko fc6825055b
Change score half-life for trending posts from 2 hours to 1 hour (#26915) 8 months ago
Claire a04ae16201
Fix CSP when using `ONE_CLICK_SSO_LOGIN` (#26901) 8 months ago
github-actions[bot] 921c6fe654
New Crowdin Translations (automated) (#26498) 8 months ago
Robert R George 20666482ef
Added admin api for managing tags (#26872) 8 months ago
renovate[bot] 97e4011c3c
Update dependency rails to v7.0.8 (#26907) 8 months ago
Jeong Arm 97f3d7b662
Fix Version metadata have trailing dot (#2403) 8 months ago
Plastikmensch 075ee0b2d4
Fix wrong gradient color on collapsed private mentions (#2402) 8 months ago
Claire 520b570474
Fix notification permissions being requested immediately after login (#26472) 8 months ago
Claire 287520453c
Fix front-end bug when processing relationship-related account actions (#26902) 8 months ago
CSDUMMI 9a70cac9de
Fix #26849 by adding the domain of the current SSO provider to the form-action CSP (#26857) 8 months ago
renovate[bot] 93223633fc
Update dependency uuid to v9.0.1 (#26900) 8 months ago
Renaud Chaput 0712cc2b99
Fix Redux types (#26899) 8 months ago
renovate[bot] 9ac9aca142
Update dependency test-prof to v1.2.3 (#26894) 8 months ago
Jeong Arm 59af3c1310
Add PublicStatuses to tootctl search deploy --only option (#26896) 8 months ago
Santiago Kozak d2cfcdd09e
Fix recent search items not handling overflows correctly (#26893) 8 months ago
Claire 20ac5be1c1
Fix error on `status` type notification (bell icon) (#26884) 8 months ago
Renaud Chaput bd06c13204
Convert `actions/account_notes` into Typescript (#26601) 8 months ago
renovate[bot] 7730083611
Update dependency kt-paperclip to v7.2.1 (#26869) 8 months ago
renovate[bot] f3be4eb0dc
Update dependency @rails/ujs to v7.0.8 (#26871) 8 months ago
renovate[bot] 3679e67fad
Update dependency @babel/core to v7.22.17 (#26855) 8 months ago
renovate[bot] c10142ac3c
Update formatjs monorepo (#26874) 8 months ago
renovate[bot] 3d0331fc7a
Update actions/checkout action to v4 (#26882) 8 months ago
renovate[bot] b1d8907138
Update dependency @types/lodash to v4.14.198 (#26878) 8 months ago
renovate[bot] f333d1822b
Update docker.elastic.co/elasticsearch/elasticsearch Docker tag to v7.17.13 (#26879) 8 months ago
renovate[bot] 959ccf5682
Update eslint (non-major) (#26881) 8 months ago
renovate[bot] b98edfa4ba
Update dependency rubocop to v1.56.3 (#26883) 8 months ago
renovate[bot] d5155cbc21
Update dependency ws to v8.14.1 (#26862) 8 months ago
Claire 91040da871
Fix confusing behavior of mute button and volume slider in web UI (#26860) 8 months ago
Claire 33c8708a1a
Change `GET /api/v1/directory` to use database replica rather than primary (#26856) 8 months ago
jsgoldstein 4d9186a48c
Add search tests (#26703) 8 months ago
Eugen Rochko 3a679844e4
Fix `account_id`, `max_id` and `min_id` params not working in search (#26847) 8 months ago
Renaud Chaput e9b528eaee
Use NodeJS v20 by default (#26830) 8 months ago
renovate[bot] 712d96b207
Update dependency ws to v8.14.0 (#26821) 8 months ago
renovate[bot] d0f7d879a6
Update formatjs monorepo (#26844) 8 months ago
Claire 81caafbe84
Fix performances of profile directory (#26842) 8 months ago
renovate[bot] 858ad1f363
Update dependency core-js to v3.32.2 (#26841) 8 months ago
Claire 355e3fb529
Simplify `Account.by_recent_status` and `Account.by_recent_sign_in` scopes (#26840) 8 months ago
renovate[bot] b9e2eb5184
Update dependency @material-design-icons/svg to v0.14.12 (#26832) 8 months ago
Eugen Rochko 9b2bc3d1de
Add recent searches in web UI (#26834) 8 months ago
Eugen Rochko a90b0056cc
Fix `#hashtag` matching on individual components in search (#26835) 8 months ago
Colette Kerr 8a9d7aeb1e
Change DCT method used for JPEG encoding to float (#26675) 8 months ago
Eugen Rochko f3a2e15f8e
Fix mute button and volume slider feeling disconnected in web UI (#26827) 8 months ago
Eugen Rochko 1f141f656d
Change onboarding prompt to use full width of banner in web UI (#26829) 8 months ago
Eugen Rochko 398635c0c4
Fix paragraph margins resulting in irregular read-more cut-off in web UI (#26828) 8 months ago
renovate[bot] 9e3567bfbe
Update dependency webpack to v4.47.0 (#26825) 8 months ago
Claire 1f99d86287
Fix blocked domain appears from account feed (#26823) 8 months ago
gunchleoc 14f6798836
Link to hashtag timelines from the Trending hashtags moderation interface (#26724) 8 months ago
Claire 475783d567
Add timezone to datetimes in e-mails (#26822) 8 months ago
Claire 9c1ef8302a
Add some information about Full-text search being disabled in search popout (#26756) 8 months ago
Claire b83e487502
Fix moderator rights inconsistencies (#26729) 8 months ago
Claire 93d051e47d
Update FEDERATION.md (#26819) 8 months ago
Claire 223f9ca665
Fix crash when encountering invalid URL (#26814) 8 months ago
Claire 09ec9c6aa5
Downgrade signature verification debug logging from `warn` to `debug` (#26812) 8 months ago
Claire d881988372
Update supported versions in SECURITY.md (#26811) 8 months ago
renovate[bot] 8c321b8c3a
Update dependency pghero to v3.3.4 (#26808) 8 months ago
Claire ec48bc3610
Do not truncate backtrace when the `BACKTRACE` env variable is set (#26794) 8 months ago
Eugen Rochko d8bdba2f9f
Add `in:` to search popout in web UI (#26807) 8 months ago
Eugen Rochko 9d290c23d2
Remove obfuscation of reply count in web UI (#26768) 8 months ago
Eugen Rochko 5d20733d8d
Add infinite scrolling for search results in web UI (#26784) 8 months ago
Claire 548c032dbb
Improve interaction modal error handling (#26795) 8 months ago
Claire a1df9fdb06
Merge pull request #2397 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 77caba3789 Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
Claire ea7de25de0
Fix video player not being displayed in reports interface (#26801) 8 months ago
Michael Stanclift b749de766f
Migrate Dockerfile to Bookworm (#26802) 8 months ago
Claire cab4cbfa5c
Fix “Scoped order is ignored, it's forced to be batch order.” warnings (#26793) 8 months ago
Claire e80b36d8d4
Merge pull request #2396 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 87b5f84625 Merge commit 'f80f426c57d5a5e1d289372ef7c323741d27c768' into glitch-soc/merge-upstream 8 months ago
Claire f80f426c57
Bump version to v4.2.0-beta3 (#26753) 8 months ago
Stanislas Signoud d6f5c27fa9 [Glitch] Fix light mode colors for advanced interface banner 8 months ago
Claire e66f961e05 Merge branch 'main' into glitch-soc/merge-upstream 8 months ago
renovate[bot] ddeca3b37b
Update babel monorepo to v7.22.15 (#26790) 8 months ago
Claire cddef4c485
Fix language settings for users having selected the `kmr` language (#26787) 8 months ago
Eugen Rochko ece1ff77d6
Add `in:library` syntax to search (#26760) 8 months ago
gunchleoc ac3f310f4b
Remove kmr from language selection (#26014) 8 months ago
renovate[bot] 3e6a6439b5
Update dependency stylelint-config-standard-scss to v11 (#26780) 8 months ago
renovate[bot] 59361dfde2
Update dependency rubocop to v1.56.2 (#26568) 8 months ago
Eugen Rochko 68b4e36c82
Fix `#hashtag` matching non-hashtagged posts in search (#26781) 8 months ago
Stanislas Signoud a106c46478
Fix light mode colors for advanced interface banner (#26759) 8 months ago
Christian Schmidt ea31929776
Fix invalid Content-Type header for WebP images (#26773) 8 months ago
renovate[bot] 1f92436745
Update DefinitelyTyped types (non-major) (#26785) 8 months ago
Eugen Rochko e52d0494ee
Fix `before:`, `after:` and `during:` failing when time zone not set (#26782) 8 months ago
renovate[bot] 173041f02c
Update dependency typescript to v5.2.2 (#26786) 8 months ago
Plastikmensch 6b0702a3b5
Add `recent` to search props (#2394) 8 months ago
Claire ee02b10e06
Merge pull request #2392 from ClearlyClaire/glitch-soc/merge-upstream 8 months ago
Claire 5c7df20c13 [Glitch] Add admin notifications for new Mastodon versions 8 months ago
Claire c107512fa6 Merge commit '05093266e6e3c54f9096da9cdcdafdc83703c578' into glitch-soc/merge-upstream 8 months ago
Claire 4371df7fbe [Glitch] Add `authorized_fetch` server setting in addition to env var 8 months ago
Eugen Rochko 728eb6a153
Fix wrong color on active icons with counters in web UI (#26767) 8 months ago
Claire 4ed629cd7e Merge commit 'be991f1d18006a4820c1e9ca6625bf2bd2bfedac' into glitch-soc/merge-upstream 8 months ago
Claire 4adb12ca91 Fix test failures due to different default settings in glitch-soc 8 months ago
Claire 807c0591e1 [Glitch] Fix search popout including full-text search instructions when full-text search is disabled 8 months ago
Santiago Kozak 64e661b930 [Glitch] Allow filter form in profiles directory to wrap 8 months ago
Stanislas Signoud 6c05ac4068 [Glitch] Add an explanation banner on switching to single column mode 8 months ago
Claire ac2dae0d11 Merge commit '6c4c72497a5722870e4432ef41dd4c9ec36a8928' into glitch-soc/merge-upstream 8 months ago
Claire f5bd2014e2 [Glitch] Fix sign up steps progress layout in right-to-left locales 8 months ago
Tim Rogers beb5fcd0dc [Glitch] Fix bug with reblogged view on Toots only showing latest reblogging accounts 8 months ago
Tim Rogers 871ab84854 [Glitch] Fix bug with favourited view on Toots only showing latest favouriting accounts 8 months ago
Claire ffb486648c Merge commit 'cb9f96036cf78835e22aafb30b80717b5a8b7394' into glitch-soc/merge-upstream 8 months ago
Claire afc3b12217 Merge commit '4ad1c5aa7174e5cef4ba9608a44429916a119bee' into glitch-soc/merge-upstream 8 months ago
Claire 6ee3e382df Merge commit '0719216368bf3a90fdb7ab27201a0607b63ea203' into glitch-soc/merge-upstream 8 months ago
Claire fbbe9f1c12 Merge commit 'a7d96e6affd4a2da65f09f3f4ffa1b9350bb9a42' into glitch-soc/merge-upstream 8 months ago
Eugen Rochko cb50d95c06 [Glitch] Add search options to search popout in web UI 8 months ago
Claire c8aa3d6d06 Merge commit 'dd72a8d28b4479afdc19ac73cac83609d85b5f9e' into glitch-soc/merge-upstream 8 months ago
Claire 3c7dbf3a16 Merge commit '5694e24bbf9afccbbf1b44d3a405a4e2bc0ff08d' into glitch-soc/merge-upstream 8 months ago
Claire 023673c0d9 [Glitch] Add `data-nosnippet` attribute to remote posts and local posts with `noindex` 8 months ago
Claire 6b7c47311d Merge commit '072112867b9a3ec090ad2c92d6363b47b2265d74' into glitch-soc/merge-upstream 8 months ago
Eugen Rochko 05093266e6
Fix some video encoding failing due to uneven dimensions (#26766) 8 months ago
Claire 16681e0f20
Add admin notifications for new Mastodon versions (#26582) 8 months ago
Gabriel Simmer be991f1d18
Move to ioredis for streaming (#26581) 8 months ago
Claire 9e26cd5503
Add `authorized_fetch` server setting in addition to env var (#25798) 8 months ago
Claire 6c4c72497a
Fix search popout including full-text search instructions when full-text search is disabled (#26755) 8 months ago
Claire 5c0a9aac3b
Revert to using primary database in IndexingScheduler (#26754) 8 months ago
renovate[bot] bb0edb178f
Update dependency pg to v1.5.4 (#26750) 8 months ago
renovate[bot] 630e558677
Update dependency oj to v3.16.1 (#26749) 8 months ago
Eugen Rochko e754083e8a
Fix unmatched quotes and prefixes causing search to fail (#26701) 8 months ago
Eugen Rochko 872145d1c2
Fix not being able to invoke phrase search using unicode quotation marks (#26687) 8 months ago
Eugen Rochko 0008458128
Fix search queries with slash causing or-condition (#26699) 8 months ago
Claire 9bb2fb6b14
Change importers to avoid a few inefficiencies (#26721) 8 months ago
Eugen Rochko ecd76fa413
Fix videos not playing in some browsers due to unsupported color space (#26745) 8 months ago
Claire 1471be8225
Fix `AddUniqueIndexOnPreviewCardsStatuses` migration requiring PostgreSQL 12+ in some cases (#26737) 8 months ago
Claire 6b58cfd8dd
Fix searching by username by reverting account verbatim tokenizer to `standard` (#26739) 8 months ago
Renaud Chaput cffc5d2b01
Fix comment in build image workflow (#26740) 8 months ago
Santiago Kozak f1d250135c
Allow filter form in profiles directory to wrap (#26682) 8 months ago
Daniel M Brasil ccca542db1
Fix `/api/v1/timelines/tag/:hashtag` allowing for unauthenticated access when public preview is disabled (#26237) 8 months ago
Tyler Deitz 336ec503c2
Add avatar image to webfinger responses (#26558) 8 months ago
Stanislas Signoud 40b69cc1cd
Add an explanation banner on switching to single column mode (#26019) 8 months ago
gunchleoc cb9f96036c
Add suggestion for secure cyphers to nginx.conf (#26349) 8 months ago
renovate[bot] 430eac3eb1
Update dependency @babel/preset-env to v7.22.14 (#26732) 8 months ago
renovate[bot] ef9a85a2d8
Update dependency webpack-bundle-analyzer to v4.9.1 (#26733) 8 months ago
renovate[bot] 15949e42c2
Update dependency glob to v10.3.4 (#26734) 8 months ago
Claire 5c38c3a9a1
Change text extraction in `PlainTextFormatter` to be faster (#26727) 8 months ago
Claire 21ec596dab
Fix sign up steps progress layout in right-to-left locales (#26728) 8 months ago
Eugen Rochko bba76e7267
Change `language:` to attempt to match to a known value in search (#26663) 8 months ago
renovate[bot] 0e1bff178e
Update dependency chewy to v7.3.4 (#26717) 8 months ago
renovate[bot] 24deaf2e4a
Update dependency postcss to v8.4.29 (#26720) 8 months ago
renovate[bot] 168688ef1c
Update dependency webmock to v3.19.1 (#26722) 8 months ago
Claire 9e77ab7db2
Change private statuses index to index without crutches (#26713) 8 months ago
Tim Rogers 74eb7dbf2d
Fix bug with reblogged view on Toots only showing latest reblogging accounts (#26574) 8 months ago
Claire c0605747ad
Fix N+1 in `tootctl search deploy` (#26710) 8 months ago
Tim Rogers ae6cf33321
Fix bug with favourited view on Toots only showing latest favouriting accounts (#26577) 8 months ago
renovate[bot] 4ad1c5aa71
Update dependency aws-sdk-s3 to v1.133.0 (#26616) 8 months ago
renovate[bot] a67cf439ee
Update dependency axios to v1.5.0 (#26680) 8 months ago
Claire 25bf640629
Add debug logging on signature verification failure (#26637) 8 months ago
Christian Schmidt 075cc8e8a6
Improve Codespaces port forwarding (#26400) 8 months ago
Christian Schmidt 286a21afdc
Support webpacker live-reloading on Docker (#26419) 8 months ago
Christian Schmidt 0719216368
Remove dead code from public.jsx (#26547) 8 months ago
Lukas Martini a7d96e6aff
Improve error messages when DeepL quota is exceeded (#26704) 8 months ago
github-actions[bot] 786e586686
New Crowdin translations (#2388) 8 months ago
Eugen Rochko 10b06436d1
Fix colors and typography on hashtag bar in web UI (#26666) 9 months ago
Eugen Rochko 01b87a1632
Change video compression parameters (#26631) 9 months ago
renovate[bot] dd72a8d28b
Update dependency stoplight to v3.0.2 (#26698) 9 months ago
Eugen Rochko 2304cc6456
Fix bad search type heuristic (#26673) 9 months ago
Claire 0cce7fb617
Fix incorrect call to `PublicStatusesIndex.import` (#26697) 9 months ago
Eugen Rochko bceb893159
Add search options to search popout in web UI (#26662) 9 months ago
Eugen Rochko 67166de865
Add `from:me` syntax to search (#26660) 9 months ago
renovate[bot] 9d9de8d219
Update dependency @testing-library/jest-dom to v6 (#26479) 9 months ago
Eugen Rochko 7bd5ebb0c5
Fix multiple issues with status index mappings (#26686) 9 months ago
renovate[bot] 4ea5db90da
Update DefinitelyTyped types (non-major) (#26693) 9 months ago
renovate[bot] b42fe5e338
Update dependency haml_lint to v0.50.0 (#26665) 9 months ago
Eugen Rochko 822a35b9d5
Fix not being able to negate prefix clauses in search (#26672) 9 months ago
renovate[bot] fc14d1f3b0
Update eslint (non-major) (#26694) 9 months ago
Eugen Rochko e263db276f
Change indexing jobs to use database replica (#26692) 9 months ago
Eugen Rochko 5694e24bbf
Fix unnecessary condition causing seqscan when indexing (#26689) 9 months ago
Eugen Rochko f8d2fea2e6
Change queue of job when opting into search from `default` to `pull` (#26688) 9 months ago
github-actions[bot] efb1888320
New Crowdin translations (#2376) 9 months ago
Claire 925c16adea
Fix nightly build version (#26676) 9 months ago
Eugen Rochko 71641766f2
Fix toast saying "published" instead of "saved" after editing post in web UI (#26664) 9 months ago
Claire f39847476c
Change the pre-release versioning scheme and associated environment variables (#26653) 9 months ago
Claire 072112867b
Fix dashboard check for Elasticsearch suggested command including incorrect names (#26658) 9 months ago
jsgoldstein 8e8747c564
Update ordering to use `id` from body of document instead of deprecated `_id` (#26659) 9 months ago
renovate[bot] e4c0ce18a3
Update dependency immutable to v4.3.4 (#26655) 9 months ago
Claire 82ec6f162b
Fix statuses search Elasticsearch query (#26657) 9 months ago
Claire f2ec2876a4
Add Elasticsearch/OpenSearch version to “Software” in admin dashboard (#26652) 9 months ago
Claire e3825a13c1
Add PublicStatusesCheck to Elasticsearch index check on admin dashboard (#26650) 9 months ago
Claire c3a42e1280
Add `data-nosnippet` attribute to remote posts and local posts with `noindex` (#26648) 9 months ago
renovate[bot] c66f756522
Update babel monorepo to v7.22.11 (#26640) 9 months ago
Claire d847c2060e
Merge pull request #2383 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Claire 685270f3f7 [Glitch] Fix clicking “Explore” or “Live feeds” column headers to scroll in advanced mode 9 months ago
Claire 66e82cb8e1 [Glitch] Fix selecting domains to forward reports to not passing the information correctly 9 months ago
Claire 941a9df28a Merge commit '96bcee66fba582666259d1d7785c3a7f2a72b8aa' into glitch-soc/merge-upstream 9 months ago
Claire 80f89f9cf2 Merge commit '9974163776b3e65e7cfa41e6293876909a1635b7' into glitch-soc/merge-upstream 9 months ago
Antonin Del Fabbro 406f3942a9 [Glitch] Change opacity of the delete icon in the search field to be more visible 9 months ago
Claire 32e67e78a3 Merge commit 'e3fd07197379f1ac7fd4a761b3ff55effa1a2a6c' into glitch-soc/merge-upstream 9 months ago
Christian Schmidt def58f8ac3 [Glitch] Fix some React warnings 9 months ago
Claire b6b68b44a1 Merge commit 'b91724fb9d0839365391310e20c2589ff6062d4f' into glitch-soc/merge-upstream 9 months ago
Claire d65aa507ca Merge commit 'bd023a2637ce4df2102c4f760ca1d05ff2302d9f' into glitch-soc/merge-upstream 9 months ago
Claire bdce78187c [Glitch] Fix layout of the closed registrations modal 9 months ago
Christian Schmidt 9b094f3653 [Glitch] Fix profile picture preview 9 months ago
Claire 296b3d1560 Merge commit 'dc09c10fa8cc9230bf14e48d790c8f0c26043f8f' into glitch-soc/merge-upstream 9 months ago
Claire 389b7d23db
Fix changelog wording and missing items (#26638) 9 months ago
Claire 88ff45a3b2 Merge commit 'facfec1ba36cee27f232ebff90b990933719235a' into glitch-soc/merge-upstream 9 months ago
Claire fbfc4145fd Merge commit '1cdcd9dc08c91321f80ffe4822f6a3da15abeb2c' into glitch-soc/merge-upstream 9 months ago
Claire 1b5d3fdc5e Merge commit 'ee702e36e58d638bcf75b2eae2ca86499693465e' into glitch-soc/merge-upstream 9 months ago
Christian Schmidt e67c28a5fe [Glitch] Remove redundant ready() wrapper 9 months ago
Claire 7b09f585fa Merge commit 'bb51c0676d0cf27babc2c01ee337ca5fd24ae37c' into glitch-soc/merge-upstream 9 months ago
jsgoldstein 30c191aaa0
Add new public status index (#26344) 9 months ago
Claire 96bcee66fb
Change nightlies versioning from `v4.2.0+2023-08-23` to `v4.2.0-nightly.2023-08-23` (#26626) 9 months ago
Claire 163b004bb1
Change admin e-mail notification settins to be their own settings group (#26596) 9 months ago
Claire e90649b064
Fix clicking “Explore” or “Live feeds” column headers to scroll in advanced mode (#26633) 9 months ago
Claire b2ac93dd73
Fix selecting domains to forward reports to not passing the information correctly (#26636) 9 months ago
Jaehong Kang 2dbbeedc94
Fix: Workaround to load MASTODON_VERSION_* in Docker. (#26591) 9 months ago
renovate[bot] 24ea6f851f
Update dependency redis to v4.6.8 (#26630) 9 months ago
Matt Jankowski 9974163776
Consolidate inclusion of `admin` js pack link (#26628) 9 months ago
renovate[bot] e3fd071973
Update dependency rspec-sidekiq to v4 (#26627) 9 months ago
Claire 8eb09466aa
Merge pull request #2380 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Antonin Del Fabbro 9a8190da4a
Change opacity of the delete icon in the search field to be more visible (#26449) 9 months ago
Daniel M Brasil f337008819
Fix timeout on invalid set of exclusionary parameters in `/api/v1/timelines/public` (#26239) 9 months ago
jsgoldstein b91724fb9d
Add elastic search installation into Vagrantfile (#26512) 9 months ago
renovate[bot] 34f5b90dc7
Update dependency sass to v1.66.1 (#26534) 9 months ago
renovate[bot] 060b554a9d
Update dependency oj to v3.16.0 (#26520) 9 months ago
renovate[bot] de8c2427a5
Update dependency immutable to v4.3.3 (#26622) 9 months ago
Claire 613cfd625c
Change hashtag bar tags to be de-emphasized (#26606) 9 months ago
Christian Schmidt 152b10b624
Fix some React warnings (#26609) 9 months ago
Renaud Chaput 44ba785242
Change the hashtag bar to be hidden when there is a CW and the post is not expanded (#26615) 9 months ago
jsgoldstein 85057865b4
Update Account Search to prioritize username over display name (#26623) 9 months ago
yufushiro 3aac12981c
Fix unexpected audio stream transcoding when uploaded video is eligible to passthrough (#26608) 9 months ago
Robert R George cf6f70799b
Add support for federating `memorial` attribute (#26583) 9 months ago
renovate[bot] ea1a221e2d
Update dependency react-textarea-autosize to v8.5.3 (#26607) 9 months ago
renovate[bot] 74b8b8ea14
Update dependency rails to v7.0.7.2 (#26612) 9 months ago
Renaud Chaput 58acaa9ae6
Better hashtag normalization when processing a post (#26614) 9 months ago
Claire 452f15be78 Move glitch-soc's “Hide followers count” setting to “Show followers count” under “Privacy and reach” tab 9 months ago
Claire c053bfc45a [Glitch] Fix “legal” report category not showing up in moderation interface 9 months ago
Claire bd023a2637
Fix admin dashboard check when using Elasticsearch with `ES_PREFIX` (#26605) 9 months ago
Claire 10404aece8 Merge commit '1cb978bcc3d291a045f367e072ca0af1a1c4dbbc' into glitch-soc/merge-upstream 9 months ago
Claire 245fe855be [Glitch] Fix unfollow icon styling in advanced column 9 months ago
Claire 2126812f65 Merge commit 'd9c21293aa6e105cedeff6b5e469af40a20909d9' into glitch-soc/merge-upstream 9 months ago
Claire 128daefc7a
Remove leftover `.orig` files that were mistakenly included (#2379) 9 months ago
gunchleoc 25dc01660d
Add Kalmyk to languages dropdown (#26013) 9 months ago
gunchleoc c01ecd0879
Add cherokee to languages dropdown (#26012) 9 months ago
renovate[bot] dc09c10fa8
Update dependency mime-types to v3.5.1 (#26595) 9 months ago
Renaud Chaput 3249c06c73
Update `SECURITY.md` to indicate issues can be reported on Github (#26599) 9 months ago
Renaud Chaput bb2db2aec0
Add `circular-dependency-plugin` to detect any circular deps issues (#26600) 9 months ago
Claire 4f1d22628d
Merge pull request #2378 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Nick Schonning b970ed6098
Update rubocop and rubocop-rspec (#26329) 9 months ago
Claire fe31571965
Fix layout of the closed registrations modal (#26593) 9 months ago
mogaminsk 724d773844 [Glitch] Fix "Create Account" button in interaction modal 9 months ago
Claire 7e25e311d5 Merge commit '3a8370e1f459f5cf9695a610102ae6e53df36714' into glitch-soc/merge-upstream 9 months ago
Claire facfec1ba3
Bump version to v4.2.0-beta2 (#26579) 9 months ago
Renaud Chaput 061fd66ee6
Remove hashtags from the last line of a status if it only contains hashtags (#26499) 9 months ago
Claire ac0eb0533e
Add Elasticsearch cluster health check and indexes mismatch check to dashboard (#26448) 9 months ago
Claire 9ed0c91a37
Add auto-refresh of accounts we get new messages/edits of (#26510) 9 months ago
Claire 191d302b7f
Refactor `Api::V1::ProfilesController` into two separate controllers (#26573) 9 months ago
renovate[bot] 1cdcd9dc08
Update eslint (non-major) (#26567) 9 months ago
renovate[bot] d3b4422b94
Update dependency core-js to v3.32.1 (#26548) 9 months ago
Christian Schmidt 872fe2d62d
Do not start LibreTranslate and Elasticsearch on GitHub Codespaces (#26382) 9 months ago
Daniel M Brasil d24a87ce4f
Add ability to delete avatar or header picture via the API (#25124) 9 months ago
Christian Schmidt bb23116e8d
Fix profile picture preview (#26538) 9 months ago
Claire ee702e36e5
Change follow recommendation materialized view to be faster in most cases (#26545) 9 months ago
Claire e7bea8f004
Fix already initialized constant warning (#26542) 9 months ago
Emelia Smith 6375e390af
Fix: support both DATABASE_URL and DB_PASS (#26295) 9 months ago
Christian Schmidt bb51c0676d
Remove redundant ready() wrapper (#26533) 9 months ago
renovate[bot] 1cb978bcc3
Update dependency @material-design-icons/svg to v0.14.11 (#26536) 9 months ago
renovate[bot] 581ebf2bb5
Update dependency puma to v6.3.1 (#26537) 9 months ago
Nicolai Søborg 13ffe91c81
Fix `frame_rate` for videos where `ffprobe` reports 0/0 (#26500) 9 months ago
Renaud Chaput b95867ad1f
Allow setting a custom HTTP method in CacheBuster (#26528) 9 months ago
renovate[bot] b5acf13886
Update dependency pg to v8.11.3 (#26519) 9 months ago
Claire 60b9fa641d
Fix cached posts including stale stats (#26409) 9 months ago
Claire 3ed2bf92d0
Fix case-insensitive comparison of hashtags to do case-folding (#26525) 9 months ago
Claire cc4560d95b
Change “privacy and reach” settings so that unchecking boxes always increase privacy and checking them always increase reach (#26508) 9 months ago
Claire 0446394465
Fix “legal” report category not showing up in moderation interface (#26509) 9 months ago
Claire f0862bcf98
Fix hashtag bar sometimes including tags that appear in the post's body (#26506) 9 months ago
renovate[bot] 26eaf058e2
Update dependency postcss to v8.4.28 (#26502) 9 months ago
Santiago Kozak 85ecadb630
Fix hashtag bar display when status is in a thread (#26497) 9 months ago
Claire df6e719898
Add display of out-of-band hashtags in the web interface (#26492) 9 months ago
Claire d9c21293aa
Fix unfollow icon styling in advanced column (#26482) 9 months ago
Claire dd049fc37a
Fix ES_PRESET not being applied to Chewy's internal index (#26489) 9 months ago
Claire 90ec88d58b
Add support for `indexable` attribute on remote actors (#26485) 9 months ago
Claire fc5ab2dc83
Add privacy tab in profile settings (#26484) 9 months ago
Claire 3a8370e1f4
Fix `repo:changelog` task matching strings that are not Pull Request identifiers (#26280) 9 months ago
Claire f5778caa3a
Add `ES_PRESET` option to customize numbers of shards and replicas (#26483) 9 months ago
github-actions[bot] c452ccd913
New Crowdin Translations (automated) (#26444) 9 months ago
Renaud Chaput 9262cfc57f
Fix `lint:json` not processing `json5` extension (#26481) 9 months ago
renovate[bot] 07f43daadc
Update dependency nokogiri to v1.15.4 (#26476) 9 months ago
renovate[bot] c65032fb11
Update dependency autoprefixer to v10.4.15 (#26473) 9 months ago
renovate[bot] 273730c4e8
Update dependency faker to v3.2.1 (#26474) 9 months ago
HonkingGoose c48506d8d4
Improve Renovate configuration (#26306) 9 months ago
mogaminsk a664e15702
Fix "Create Account" button in interaction modal (#26459) 9 months ago
Renaud Chaput 1eac3a60de
Upgrade `@types/react` (#26457) 9 months ago
Claire 8c7f3c5332
Remove old non-unique index on preview_cards statuses join table (#26447) 9 months ago
Claire 86ba8d3e14
Merge pull request #2368 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Claire 987f190839 [Glitch] Fix reply not preserving the language from the replied-to post 9 months ago
Claire 92df185be7 Merge commit '496eb6f7a4fa7de54f26da9642a76e6884648102' into glitch-soc/merge-upstream 9 months ago
Claire e28727aab3 [Glitch] Change the hashtag column to not display the hashtag header on pinned columns 9 months ago
Claire 7c4b115e7d [Glitch] Fix interaction modal layout 9 months ago
Eugen Rochko 0f8ddf367c [Glitch] Change header of hashtag timelines in web UI 9 months ago
Claire d9451feef0 [Glitch] Fix report modal secondary buttons style 9 months ago
Claire 2f50b77ae8 [Glitch] Fix confirmation when closing media edition modal with unsaved changes 9 months ago
Trevor Wolf f0ad745506 [Glitch] Fix light theme select option for hashtags 9 months ago
Eugen Rochko 03ae73bdc5 [Glitch] Change design of hidden media overlay (again) in web UI 9 months ago
Eugen Rochko 8247df3a8d [Glitch] Change reblogs to be excluded from "Posts and replies" tab in web UI 9 months ago
CSDUMMI 64fc66d3db [Glitch] Add direct link to the Single-Sign On provider if there is only one sign up method available (#26083) 9 months ago
Christian Schmidt 1461cc53ed [Glitch] Add alt text for preview card thumbnails 9 months ago
Claire 6530f9709c Merge commit '121443c0fca383268b8022c048dd137994785aff' into glitch-soc/main 9 months ago
Jeong Arm 496eb6f7a4
Add missing instances option to tootctl search deploy (#26461) 9 months ago
Claire 678fa1e6af
Merge pull request #2366 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Eugen Rochko 57a4e7927a [Glitch] Add client-side timeout on resend confirmation button 9 months ago
Claire ea8802a05a Merge commit '3a4d3e9d4b573c400eec1743471d54cdccae50a5' into glitch-soc/merge-upstream 9 months ago
Claire 150cfcf3ae
Fix border-radius on “sensitive media” overlay for full-width media (#2364) 9 months ago
Claire 0dfc6ea3ef
Merge pull request #2365 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Claire 34f3001278
Fix reply not preserving the language from the replied-to post (#26452) 9 months ago
Claire 882e770400 [Glitch] Change interaction modal input to disable browser spell-checking, capitalization and autocomplete 9 months ago
Claire 44a5f1b64a Merge commit '425d77f8124a50fc033e8fb3bdf7b89a6a25f4fa' into glitch-soc/merge-upstream 9 months ago
github-actions[bot] 3378bdb01f
New Crowdin translations (#2354) 9 months ago
Renaud Chaput 121443c0fc
Upgrade JS dev dependencies (#26442) 9 months ago
Nick Schonning 9dff838edc
Merge duplicate Gemfile groups (#26441) 9 months ago
Claire 4bc0dd751c
Add `S3_DISABLE_CHECKSUM_MODE` environment variable for compatibility with some S3-compatible providers (#26435) 9 months ago
renovate[bot] 3dd3c50811
Update dependency pg-connection-string to v2.6.2 (#26427) 9 months ago
renovate[bot] 27d8e9be4a
Update dependency eslint-import-resolver-typescript to v3.6.0 (#26429) 9 months ago
renovate[bot] 7572fa21a3
Update babel monorepo to v7.22.10 (#26421) 9 months ago
renovate[bot] 05022c9218
Update dependency pg to v8.11.2 (#26426) 9 months ago
renovate[bot] 700f948fc9
Update dependency @rails/ujs to v7.0.7 (#26422) 9 months ago
renovate[bot] 1a308d1a22
Update dependency rails to v7.0.7 (#26428) 9 months ago
renovate[bot] 54dfacafcb
Update dependency regenerator-runtime to ^0.14.0 (#26432) 9 months ago
renovate[bot] 43741ba2b9
Update dependency mime-types to '~> 3.5.0' (#26431) 9 months ago
renovate[bot] ba318a42fe
Update dependency sass to v1.65.1 (#26433) 9 months ago
renovate[bot] c645308c6e
Update dependency eslint-config-prettier to v9 (#26434) 9 months ago
renovate[bot] 65f56bd849
Update dependency haml_lint to v0.49.3 (#26424) 9 months ago
renovate[bot] 74c422ad0a
Update dependency immutable to v4.3.2 (#26425) 9 months ago
renovate[bot] 426ca4f76c
Update dependency aws-sdk-s3 to v1.132.1 (#26423) 9 months ago
github-actions[bot] 8cbf4a5296
New Crowdin Translations (automated) (#26373) 9 months ago
renovate[bot] 26fa4a6e82
Update eslint (non-major) (#26323) 9 months ago
renovate[bot] 59678c6d5d
Update dependency sass to v1.64.2 (#26315) 9 months ago
Claire 4caa9f0e69
Change the hashtag column to not display the hashtag header on pinned columns (#26416) 9 months ago
Matt Jankowski d9a9323968
Avoid connecting to a running ES instance in ES search check spec (#26413) 9 months ago
Foritus 405f141fe0
Change: Block GPTBot (#26396) 9 months ago
Matt Jankowski 2c88364222
Restore console behavior in `test` env (#26401) 9 months ago
Matt Jankowski 271d384fd0
Use migration classes in migrations where current definition conflicts with older (#26390) 9 months ago
Claire b12d75ef4f
Fix blocking subdomains of an already-blocked domain (#26392) 9 months ago
Claire dab54ccbba
Prepare v4.2.0-beta1 (#26339) 9 months ago
Claire 8b37dd2c86
Fix Content Security Policy sometimes unnecessarily allowing hCaptcha scripts (#26388) 9 months ago
Claire 2c204d904b
Change `DB_REPLICA_*` environment variables to `REPLICA_DB_*` (#26386) 9 months ago
Claire 4773d7b9aa
Fix `preview_cards_statuses_pkey` not being reindexed concurrently (#26384) 9 months ago
Eugen Rochko 0e2a4d3897
Fix adding column with default value taking longer on Postgres >= 11 (#26375) 9 months ago
Eugen Rochko 72423bc8f6
Change account search tokenizer and queries (#26378) 9 months ago
Matt Jankowski 60fbb0fe91
Omniauth 2.0 version bump (#24209) 9 months ago
Claire 30c64bf616
Fix list import concurrently creating lists of the same name (#26372) 9 months ago
Claire cd6f2b3cbc
Fix interaction modal layout (#26368) 9 months ago
Matt Jankowski c363978782
Spec media attachment speedups (#25416) 9 months ago
Eashwar Ranganathan 11f5a8e54b
Make mastodon-streaming systemd unit templated (#24751) 9 months ago
github-actions[bot] d2dbaba407
New Crowdin Translations (automated) (#26209) 9 months ago
Eugen Rochko e325443b02
Change header of hashtag timelines in web UI (#26362) 9 months ago
Claire 79936c584f
Fix report modal secondary buttons style (#26341) 9 months ago
Claire d5bee37c57
Fix missing cached preview cards attributes (#26343) 9 months ago
Emelia Smith 65096c1ccd
Change streaming `/metrics` to include additional metrics (#26299) 9 months ago
Claire b59053ff8c
Fix confirmation when closing media edition modal with unsaved changes (#26342) 9 months ago
Trevor Wolf 93372fee1e
Fix light theme select option for hashtags (#26311) 9 months ago
Claire 9405e9af58
Fix incorrect model annotation for List#exclusive (#26313) 9 months ago
Eugen Rochko 04e7efac3f
Change design of hidden media overlay (again) in web UI (#26330) 9 months ago
Eugen Rochko 9d719bcd85
Change reblogs to be excluded from "Posts and replies" tab in web UI (#26302) 9 months ago
Claire 12c43e4ab5
Re-add StatsD support through the `nsa` gem (#26310) 9 months ago
CSDUMMI 120f5802c0
Add direct link to the Single-Sign On provider if there is only one sign up method available (#26083) 9 months ago
renovate[bot] a5768d3ea6
Update dependency rack-attack to v6.7.0 (#26319) 9 months ago
renovate[bot] 912bc4655c
Update dependency selenium-webdriver to v4.10.0 (#26322) 9 months ago
Claire 3105fef21a
Rename “read” database to “replica” for consistency (#26326) 9 months ago
renovate[bot] 51cee42117
Update dependency lograge to v0.13.0 (#26318) 9 months ago
renovate[bot] f6e4137d7c
Update dependency core-js to v3.32.0 (#26317) 9 months ago
renovate[bot] a615c0cfc2
Update dependency test-prof to v1.2.2 (#26316) 9 months ago
renovate[bot] 670dae371a
Update dependency react-redux to v8.1.2 (#26314) 9 months ago
renovate[bot] 091c2f2e44
Update dependency rack to v2.2.8 (#26312) 9 months ago
Christian Schmidt 8da99ffb0d
Add alt text for preview card thumbnails (#26184) 9 months ago
renovate[bot] ca19ea30d4
Update dependency aws-sdk-s3 to v1.132.0 (#26227) 9 months ago
Daniel M Brasil 3a4d3e9d4b
Add `GET /api/v1/instance/languages` to REST API (#24443) 9 months ago
Claire 6b896b20cc
Add primary key to preview_cards_statuses join table (includes deduplication migration) (#25243) 9 months ago
Eugen Rochko a0fad5c8bb
Change indexing frequency from 5 minutes to 1 minute, add locks to schedulers (#26304) 9 months ago
Val Lorentz f55f0ab0c3
Allow spaces around commas in ALLOWED_PRIVATE_ADDRESSES (#26297) 9 months ago
Eugen Rochko 2f932cb2bb
Add client-side timeout on resend confirmation button (#26300) 9 months ago
Claire 425d77f812
Fix crash in `tootctl status remove` and some old migrations (#26210) 9 months ago
Trevor Wolf 6308dca76a
change column link to add a better keyboard focus indicator (#26278) 9 months ago
Emelia Smith e258b4cb64
Refactor: replace whitelist_mode mentions with limited_federation_mode (#26252) 9 months ago
Christian Schmidt 8891d8945d
Fix request URL normalisation for bare domain and 8-bit characters (#26285) 9 months ago
Eugen Rochko 2cbdff97ce
Change design of role badges in web UI (#26281) 9 months ago
Eugen Rochko 01f0cffc2c
Fix line clamp for link previews in web UI (#26286) 9 months ago
Eugen Rochko 4c999a736c
Fix wrong border radius on link cards in web UI (#26287) 9 months ago
Christian Schmidt ca342d4838
Add List-Unsubscribe email header (#26085) 9 months ago
Christian Schmidt f2257069b2
Fix AVIF attachments (#26264) 9 months ago
Claire 71fd70335a
Change interaction modal input to disable browser spell-checking, capitalization and autocomplete (#26267) 9 months ago
Claire 6c39125761
Change /api/v1/peers/search to be case-insensitive when using Elasticsearch (#26268) 9 months ago
Christian Schmidt fd284311e7
Do not normalize URL before fetching it (#26219) 9 months ago
Claire 51768de16e
Bump version to v4.1.6 (#26272) 9 months ago
Claire d82abc877a
Fix `Importer::BaseImporter#clean_up!` not using proper primary key (#26269) 9 months ago
github-actions[bot] 3b49b5a880
New Crowdin translations (#2348) 9 months ago
Plastikmensch e02510c428
Remove .orig files (#2347) 9 months ago
Claire e96a90480b
Merge pull request #2339 from ClearlyClaire/glitch-soc/merge-upstream 9 months ago
Plastikmensch ebfa184e74
Port search popout changes from upstream (#2333) 9 months ago
Claire 73a3228e0f Fix CSP tests in glitch-soc 9 months ago
Claire 403a5c0f3f [Glitch] Change the wording of the dismissable explore prompt 9 months ago
Claire aa1789f0dd [Glitch] Change interaction modal in web UI 9 months ago
Claire a1f1424e76 Fix interaction modal being broken because of glitch-soc's theming system 9 months ago
Claire 92fa9d34b0 Merge commit '3554c527954441fd924586a49c7d99a89101ac7e' into glitch-soc/merge-upstream 9 months ago
Christian Schmidt 879c7ed2d3 [Glitch] Fix missing GIF badge in account gallery 9 months ago
Christian Schmidt 88ba538aad [Glitch] Preserve translation on status re-import 9 months ago
Claire 454d8567d4 Merge commit '1814990a3d117555153321216fa593e4d9e84de3' into glitch-soc/merge-upstream 9 months ago
Eugen Rochko 450f75b6f7 [Glitch] Add published date and author to news on the explore screen in web UI 9 months ago
Claire 887a17bb83 [Glitch] Revert poll colors to green outside of compose form 9 months ago
Trevor Wolf e92dde0b16 [Glitch] fix poll input active style 9 months ago
Eugen Rochko e48a6a5f2c [Glitch] Fix missing action label on sensitive videos and embeds in web UI 9 months ago
Eugen Rochko 4b26e44ef4 [Glitch] Fix missing border on error screen in light theme in web UI 9 months ago
gol-cha 168fadb6b9 [Glitch] Fix UI Overlap with the loupe icon in the Explore Tab 9 months ago
Christian Schmidt 1d4df97049 [Glitch] Add `lang` attribute to trending links 9 months ago
Trevor Wolf f3bd96c91c [Glitch] change poll form element colors to fit with the rest of the ui 9 months ago
Claire bd349cb850 Merge commit 'ce1f35d7e213327549b960bb64f63c67a141ea40' into glitch-soc/merge-upstream 9 months ago
gunchleoc 09ebf7e37c [Glitch] Replace 'favourite' by 'favorite' for American English 9 months ago
Claire b2515feb29 Merge commit 'cfd50f30bb5dda4dd90e1ad01f3e62c99135c36f' into glitch-soc/merge-upstream 9 months ago
Claire 5914dfdd69 [Glitch] Change thread view to scroll to the selected post rather than the post being replied to 9 months ago
Claire 42f36aa55a Merge commit '5b457961fc1189a71599dc6c06b3f159b195a455' into glitch-soc/merge-upstream 9 months ago
Claire 7635c67450 Merge commit '144a406d332b034caa812ade2629df03ed4898d7' into glitch-soc/merge-upstream 9 months ago
Stanislas Signoud f05effeb8f [Glitch] Fix a missing redirection on getting-started in multi column mode 9 months ago
Christian Schmidt d3d6147286 [Glitch] Wrong count in response when removing favourite/reblog 9 months ago
Claire 993d0a9950 Merge commit '1e3b19230a48174acf524cf1a9f5a498e220ea7d' into glitch-soc/merge-upstream 9 months ago
github-actions[bot] 3a14104411
New Crowdin translations (#2338) 9 months ago
Eugen Rochko d4807a5e64
Change aspect ratios on link previews in web UI (#26250) 9 months ago
Christian Schmidt d76f79f647
Remove obsolete backport from Rails 7 (#26254) 9 months ago
Plastikmensch 4d3a129212
Fix public TL not indicating new toots when `onlyRemote` is enabled (#26247) 10 months ago
Plastikmensch 1cc3fcf7d0
Fix Public TL not indicating new toots when `onlyRemote` or `allowLocalOnly` is enabled (#2336) 10 months ago
Plastikmensch feaf3cf780
Fix firehose not indicating new toots in "All" (#2335) 10 months ago
Matt Jankowski 74903af7ce
Ignore the brakeman `PermitAttributes` check (#25915) 10 months ago
Matt Jankowski 8ac9e446df
Load `rspec-rails` gem in `test` + `development` (#25768) 10 months ago
Matt Jankowski 7581b1ff96
Profiling tools configuration improvement (#25383) 10 months ago
Matt Jankowski 6f1fa1364f
Fix `RSpec/EmptyExampleGroup` cop (#24735) 10 months ago
Matt Jankowski 660993b415
Add coverage for `URLValidator` (#25591) 10 months ago
Matt Jankowski 6602edf064
Add coverage for `LanguageValidator` (#25593) 10 months ago
Matt Jankowski ad81be6c8e
Update rubocop rules for linelength (#26190) 10 months ago
Matt Jankowski 30f5ec7303
Rubocop fix: `Perfomance/UnfreezeString` (#26217) 10 months ago
Renaud Chaput 4d1b67f664
Add end-to-end (system) tests (#25461) 10 months ago
Jay Prakash Kalia 8d5d707cc1
Update README.md (#25435) 10 months ago
gunchleoc b0134db6ff
Allow filtering for Chinese languages (#26066) 10 months ago
Christian Schmidt f96e4b3047
Use original URL in preview if it redirects to 4xx page (#26200) 10 months ago
Renaud Chaput 3554c52795
Fix missing return values in streaming (#26233) 10 months ago
Claire 446821a0dc
Swap debug statements in streaming server (#26231) 10 months ago
Emelia Smith 81cdc0f972
Fix: Streaming server memory leak in HTTP EventSource cleanup (#26228) 10 months ago
renovate[bot] 255606d2da
Update dependency haml_lint to v0.49.2 (#26222) 10 months ago
Plastikmensch e69fe94669
Fix "All" live feed not loading automatically. (#2332) 10 months ago
github-actions[bot] 8864d5b580
New Crowdin translations (#2327) 10 months ago
Claire 6256cee034
Change error boundary to upstream's (#2323) 10 months ago
Claire a4ec187a20
Change the wording of the dismissable explore prompt (#25917) 10 months ago
Claire bbea052935
Fix emoji picker button scrolling with textarea content in single-column view (#25304) 10 months ago
Emelia Smith 317cd26fba
Remove queued_at value from pubsub payloads (#26173) 10 months ago
Misty De Méo 12a6cf569e
Storage: add :azure to remaining callers (#26080) 10 months ago
Claire 6c3c5bbbc3
Fix crash when processing Flag activity with no status (#26189) 10 months ago
Claire b4e739ff0f
Change interaction modal in web UI (#26075) 10 months ago
Claire 1e4ccc655a
Add role badges to the WebUI (#25649) 10 months ago
Emelia Smith ddaf200c78
Refactor streaming's filtering logic & improve documentation (#26213) 10 months ago
Claire 1814990a3d
Fix wrong filters sometimes applying in streaming (#26159) 10 months ago
Daniel M Brasil 812a84ff5f
Migrate to request specs in `/api/v2/filters` (#25721) 10 months ago
Matt Jankowski f48d345de1
Use correct naming on controller concern specs (#26197) 10 months ago
Matt Jankowski b06763dc11
Remove the `sr` locale override .rb files (#25927) 10 months ago
github-actions[bot] b9adea9695
New Crowdin Translations (automated) (#26072) 10 months ago
Matt Jankowski 84d520ee80
Extract private methods in `StatusCacheHydrator` (#26177) 10 months ago
Matt Jankowski a2dca50ef3
Use heredoc SQL blocks in `AddFromAccountIdToNotifications` migration (#26178) 10 months ago
Matt Jankowski 8ac5a93a7d
Reformat large hash in `ContextHelper` module (#26180) 10 months ago
Matt Jankowski 2d9808f648
Reformat large key values in service specs (#26181) 10 months ago
Matt Jankowski bada7a65aa
Ignore long line in regex initializer (#26182) 10 months ago
Matt Jankowski 7d62e3b198
Reformat large text arg in `FetchLinkCardService` spec (#26183) 10 months ago
Christian Schmidt a4b69bec2e
Fix missing GIF badge in account gallery (#26166) 10 months ago
Christian Schmidt 6781dc6462
Preserve translation on status re-import (#26168) 10 months ago
Claire ce1f35d7e2
Revert poll colors to green outside of compose form (#26164) 10 months ago
renovate[bot] edc104c9ef
Update dependency sass to v1.64.1 (#26146) 10 months ago
Eugen Rochko 7bd8ef355c
Add `published_at` attribute to preview cards (#26153) 10 months ago
Trevor Wolf 49d2e8979f
fix poll input active style (#26162) 10 months ago
Matt Jankowski 50ff3d3342
Coverage for `Auth::OmniauthCallbacks` controller (#26147) 10 months ago
Eugen Rochko f826a95f6e
Add published date and author to news on the explore screen in web UI (#26155) 10 months ago
Christian Schmidt 4299208487
Fix `lang` for UI texts in link preview (#26149) 10 months ago
Eugen Rochko 714a20697f
Fix missing action label on sensitive videos and embeds in web UI (#26135) 10 months ago
Eugen Rochko d1a9f601c7
Fix missing border on error screen in light theme in web UI (#26152) 10 months ago
gol-cha 9a567ec1d1
Fix UI Overlap with the loupe icon in the Explore Tab (#26113) 10 months ago
Claire 2dfa8f797a
Fix LinkCrawlWorker crashing on `null` `created_at` (#26151) 10 months ago
Vyr Cossont 394d1f19b1
Add report.updated webhook (#24211) 10 months ago
renovate[bot] 173a268025
Update dependency aws-sdk-s3 to v1.131.0 (#26145) 10 months ago
Claire b629e21515
Fix unexpected redirection to /explore after sign-in (#26143) 10 months ago
renovate[bot] 3cbc69f13d
Update dependency postcss to v8.4.27 (#26144) 10 months ago
renovate[bot] e56dc936e3
Update dependency brakeman to v6.0.1 (#26141) 10 months ago
renovate[bot] d31b31afee
Update dependency rdf-normalize to v0.6.1 (#26130) 10 months ago
Christian Schmidt 76fce34ebb
Add `lang` attribute to trending links (#26111) 10 months ago
Trevor Wolf 80809ef33e
change poll form element colors to fit with the rest of the ui (#26139) 10 months ago
Eugen Rochko 6b2952d1dd
Change design of link previews in web UI (#26136) 10 months ago
Eugen Rochko 4d01d1a1ee
Remove 16:9 cropping from web UI (#26132) 10 months ago
Plastikmensch cf9affdeac
Apply padding to all notifications in notif-cleaning mode (#2325) 10 months ago
Eugen Rochko 5e8cbb5f82
Remove back button from bookmarks, favourites and lists screens in web UI (#26126) 10 months ago
Eugen Rochko cfd50f30bb
Fix focus and hover styles in web UI (#26125) 10 months ago
Nick Schonning 67016dd29d
Update haml-lint 0.49.1 (#26118) 10 months ago
Plastikmensch 51311c1978
Fix CW icon being on wrong side in app settings in RTL languages (#2324) 10 months ago
Christian Schmidt 3abe0fc5c8
Use valid email address for first account (#26114) 10 months ago
mogaminsk db310f383d
Fix missing translation strings for importing lists (#26120) 10 months ago
Jeong Arm 944c29033d
Fix relationship-tag background color (#2322) 10 months ago
github-actions[bot] 9ec43107f2
New Crowdin translations (#2319) 10 months ago
Claire 49767d20bd
Fix glitch local settings navigation items not being proper buttons (#2320) 10 months ago
Claire dd09535bda
Annotate doodle parameters to please eslint (#2321) 10 months ago
Claire 0078e7e760
Fix incorrect connect timeout in outgoing requests (#26116) 10 months ago
Claire 52500965cc
Fix “Open in advanced web interface” being shown on mobile view (#2318) 10 months ago
github-actions[bot] 9a45198ab0
New Crowdin translations (#2317) 10 months ago
Claire f2c683336b
Bump version to v4.1.5 (#26108) 10 months ago
наб 1b4cf0eba0
Favourits -> Favorites (#26109) 10 months ago
Christian Schmidt 296ec6cf57
Override default Action Mailer `preview_path` (#26110) 10 months ago
gunchleoc 217ef7f2af
Replace 'favourite' by 'favorite' for American English (#26009) 10 months ago
Claire 5b457961fc
Fix linting issue (#26106) 10 months ago
Claire e5f1000ad1
Fix CSP headers being unintendedly wide (#26105) 10 months ago
Claire 14fad60384
Use username as display name for suspended users or users with blank display names (#25276) 10 months ago
Trevor Wolf 59478a1b46
change focus ui for keyboard only input (#25935) 10 months ago
Claire 934c7b33d1
Change default KeyGenerator digest to SHA1 to fix cookies in rolling upgrades (#26023) 10 months ago
Claire e4ea80d808
Change thread view to scroll to the selected post rather than the post being replied to (#24685) 10 months ago
Claire 144a406d33
Clean up unused application records (#24871) 10 months ago
Claire 5cbc402687
Fix replica being used even if not explicitly defined (#26074) 10 months ago
Renaud Chaput 42698b4c5c
Fix the crossorigin attribute (#26096) 10 months ago
Renaud Chaput 4ea041fe67
Improve the bug report templates (#25621) 10 months ago
github-actions[bot] e7cb6c6c44
New Crowdin translations (#2314) 10 months ago
Claire 1e3b19230a
Add stricter protocol fields validation for accounts (#25937) 10 months ago
Matt Jankowski 1cceb62afd
Fix `Lint/Void` cop (#25922) 10 months ago
Matt Jankowski a5842df123
Fix haml-lint Rubocop `Lint/UnusedBlockArguments` cop (#26039) 10 months ago
Matt Jankowski 285a3df56c
Move localized subject mailer shared example to separate file (#25889) 10 months ago
gunchleoc cabe1ea560
Change casing for 'Server Settings' string (#26011) 10 months ago
Matt Jankowski df05ece265
Fix haml-lint Rubocop `Style/NumericPredicate` cop (#26040) 10 months ago
Stanislas Signoud 586b1c9dca
Fix a missing redirection on getting-started in multi column mode (#26070) 10 months ago
Misty De Méo b848ba3867
Paperclip: add support for Azure blob storage (#23607) 10 months ago
Christian Schmidt 4c18928a93
Wrong count in response when removing favourite/reblog (#24365) 10 months ago
Matt Jankowski 6edd404482
Cleanup unused portions of statuses/status partial (#26045) 10 months ago
github-actions[bot] 2649fbce04
New Crowdin translations (#2310) 10 months ago
Claire 949f1fc343
Fix Crowdin Github Action (#2311) 10 months ago
Claire a04a30f852
Merge pull request #2309 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire 0092fe50ac Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Claire 111686c38b
New Crowdin updates (#2306) 10 months ago
github-actions[bot] 47832a1ac0
New Crowdin Translations (automated) (#26054) 10 months ago
Claire ff41e5426a
Change request timeout handling to use a longer deadline (#26055) 10 months ago
Matt Jankowski 6657695ec6
Fix haml-lint `InstanceVariables` rule for auth/registrations/edit (#26061) 10 months ago
Matt Jankowski f6dda59e5d
Fix haml-lint Rubocop `Style/SymbolProc` cop (#26059) 10 months ago
Matt Jankowski 39d9804119
Fix haml-lint Rubocop `Style/WordArray` cop (#26058) 10 months ago
Matt Jankowski b3f48089e6
Fix haml-lint rubocop style negation cops (#26057) 10 months ago
Renaud Chaput b8931311a0
Fixes to the new Image build actions (#26056) 10 months ago
Renaud Chaput 626a7b6a77
Add a Github Action to send translations to Crowdin for each merge in main (#25869) 10 months ago
Renaud Chaput d184524233
Rework the container image build actions (#26007) 10 months ago
Daniel M Brasil 59b38f9ee4
Migrate to request specs in `/api/v1/mutes` (#25622) 10 months ago
Matt Jankowski e663e6d2c2
Fix haml-lint `ConsecutiveSilentScripts` rule (#26043) 10 months ago
renovate[bot] 6245cec185
Update dependency ox to v2.14.17 (#26044) 10 months ago
Daniel M Brasil 58bfe8c43a
Migrate to request specs in `/api/v1/bookmarks` (#25520) 10 months ago
Daniel M Brasil 5a7c6c6597
Migrate to request specs in `/api/v1/timelines/public` (#25746) 10 months ago
forsamori 55cf18b689
Add MacOS M1/2 setup steps to README (#25682) 10 months ago
Claire 1a33f1df17
Merge pull request #2305 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire 0c45bed333 [Glitch] Fix “Back” button sometimes redirecting out of Mastodon 10 months ago
Claire c04f2d0cf7 Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Claire 0e1d2e15a3
Merge pull request #2302 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Matt Jankowski 4207c95d4f
Fix haml-lint Rubocop `Style/SlicingWithRange` cop (#25947) 10 months ago
Claire a442a1d1c6
Fix “Back” button sometimes redirecting out of Mastodon (#25281) 10 months ago
Matt Jankowski d0f00206dc
Fix haml-lint Rubocop `Style/StringLiterals` cop (#25948) 10 months ago
Daniel M Brasil 19208aa422
Migrate to request specs in `/api/v1/statuses/:status_id/favourite` (#25626) 10 months ago
Daniel M Brasil 6fb4a756ff
Migrate to request specs in `/api/v1/statuses/:status_id/bookmark` (#25624) 10 months ago
Daniel M Brasil 4859958a0c
Migrate to request specs in `/api/v1/polls` (#25596) 10 months ago
Daniel M Brasil 1aea938d3d
Migrate to request specs in `/api/v1/statuses/:status_id/pin` (#25635) 10 months ago
Daniel M Brasil 6cdc8408a9
Migrate to request specs in `/api/v1/emails/confirmations` (#25686) 10 months ago
Daniel M Brasil 8a1aabaac1
Migrate to request specs in `/api/v1/timelines/home` (#25743) 10 months ago
Nick Schonning c80ecf2ff7
Increase PR Rebase job retries (#25926) 10 months ago
Jeong Arm 664b0ca8cb
Check if json body is null on Activitipub::ProcessingWorker (#26021) 10 months ago
Matt Jankowski bd33efdf16
Fix haml-lint Rubocop `Style/MinMaxComparison` cop (#25974) 10 months ago
Matt Jankowski 361dd43235
Fix haml-lint Rubocop `lambda` cop (#25946) 10 months ago
Matt Jankowski 5096deb818
Fix haml lint Rubocop `Style/RedundantStringCoercion` cop (#25975) 10 months ago
renovate[bot] 2a9063e36a
Update dependency react-select to v5.7.4 (#26033) 10 months ago
Claire 943f27f437
Remove unfollowed hashtag posts from home feed (#26028) 10 months ago
Claire f18618d7f9
Fix some incorrect tests (#26035) 10 months ago
Michael Stanclift 12e7f5fabd [Glitch] Fix for "follows you" indicator in light web UI not readable 10 months ago
Terence Eden 27f7e5b0f3 [Glitch] Prevent split line between icon and number on reposts & favourites 10 months ago
Claire c943f17b1b Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
renovate[bot] 626f9cf831
Update dependency public_suffix to v5.0.3 (#26032) 10 months ago
Nick Schonning bf9c1a65fa
Update rubocop 1.54.2 (#26002) 10 months ago
renovate[bot] cf18bfa090
Update dependency aws-sdk-s3 to v1.130.0 (#25967) 10 months ago
fusagiko / takayamaki ee8c8dbc6f
remove some file paths from rubocop_tobo.yml (#26022) 10 months ago
renovate[bot] 7b7a26c895
Update dependency postcss to v8.4.26 (#26030) 10 months ago
Claire c667fc5a4a
Fix ArgumentError in mailers when a user's timezone is blank (#26025) 10 months ago
Michael Stanclift 97ce47e451
Fix for "follows you" indicator in light web UI not readable (#25993) 10 months ago
renovate[bot] f17acbca33
Update dependency immutable to v4.3.1 (#26029) 10 months ago
renovate[bot] cdaca7a08b
Update babel monorepo to v7.22.9 (#26017) 10 months ago
Renaud Chaput 84ce94b100
Try to improve Renovatebot config (#26005) 10 months ago
Eugen Rochko 26e522ac55
Fix not actually connecting to the configured replica (#25977) 10 months ago
Claire 23197cebce
Reduce dropdown menu margin and padding (#2301) 10 months ago
Terence Eden b923a4c755
Prevent split line between icon and number on reposts & favourites (#26004) 10 months ago
Claire 2f6ac6b432
Merge pull request #2300 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire c45a965bf7 [Glitch] Change “About” and “Privacy policy” links to open in a new tab in advanced interface 10 months ago
Stanislas Signoud 9bd012b7cb [Glitch] Change links in multi-column mode so tabs are open in single-column mode 10 months ago
Claire 0d61985713 Remove layout glitch-soc settings 10 months ago
Eugen Rochko f0d3267fbf [Glitch] Fix dropdowns being disabled for logged out users in web UI 10 months ago
Claire a98b5c2246 [Glitch] Fix embed dropdown menu item for unauthenticated users 10 months ago
Claire d9adda1a99 Merge commit '71db616fed817893d0efa363f0e7dbfcf23866a0' into glitch-soc/merge-upstream 10 months ago
Plastikmensch a0047184d7
Add eslint rule to forbid vanilla imports in glitch (#2293) 10 months ago
Plastikmensch 470ded3687
Fix notifications not loading when slow mode active (#2292) 10 months ago
Claire 3952d17518
Merge pull request #2296 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire e271d018b7 Fix home timeline's regexp field 10 months ago
Claire 71db616fed
Change “About” and “Privacy policy” links to open in a new tab in advanced interface (#25973) 10 months ago
Stanislas Signoud 5fad7bd58a
Change links in multi-column mode so tabs are open in single-column mode (#25893) 10 months ago
Claire 41f65edb21
Fix embed dropdown menu item for unauthenticated users (#25964) 10 months ago
Matt Jankowski 644c5fddd8
Refactor `Status.tagged_with_all` for brakeman SQL injection warning (#25941) 10 months ago
Claire 98e5589ed4 [Glitch] Fix follow link style in embeds 10 months ago
Renaud Chaput 18f55567b0 [Glitch] Upgrade to `typescript-eslint` v6 10 months ago
Claire 3be4f4266d Fix incorrect types in DisplayName 10 months ago
Claire 25571b18ed Merge commit '5a3f174d561cbdc79a597cd2b9502ed058d372da' into glitch-soc/merge-upstream 10 months ago
Renaud Chaput 447ab7ab24 [Glitch] Convert Home timeline components to Typescript 10 months ago
Claire 177497b367 Merge commit '3ed9b55cb3987e3d32c56f857cb6903ca8bec3d4' into glitch-soc/merge-upstream 10 months ago
Claire 0870c7c95e [Glitch] Upgrade to Prettier 3 10 months ago
Claire 95a1fde6b6 Merge commit '73b64b89170cb72854a1709186c62ce31f476889' into glitch-soc/merge-upstream 10 months ago
Claire 2d09653d50 Merge commit '0d7340380cf3094335d8bc67f7c465e2b154566a' into glitch-soc/merge-upstream 10 months ago
Renaud Chaput 70cc7bdbba
Remove some recently-updated packages from Renovabot ignore config (#25960) 10 months ago
Claire 5a3f174d56
Fix follow link style in embeds (#25965) 10 months ago
renovate[bot] ba0649f042
Update dependency postcss to v8.4.25 (#25961) 10 months ago
renovate[bot] a4e6ff0d53
Update dependency react-textarea-autosize to v8.5.2 (#25962) 10 months ago
Renaud Chaput a7253075d1
Upgrade to `typescript-eslint` v6 (#25904) 10 months ago
renovate[bot] 3ed9b55cb3
Update dependency rubocop-rails to v2.20.1 (#25493) 10 months ago
Renaud Chaput a75138d073
Convert Home timeline components to Typescript (#25583) 10 months ago
Renaud Chaput 73b64b8917
Upgrade to Prettier 3 (#25902) 10 months ago
renovate[bot] 0d7340380c
Update dependency glob to v10.3.3 (#25959) 10 months ago
renovate[bot] 6be9f95a22
Update dependency core-js to v3.31.1 (#25958) 10 months ago
Michael Stanclift 063482a63f
Fix trending publishers table not rendering correctly on narrow screens (#25945) 10 months ago
Nick Schonning 1a6c2e450a
Update rubocop to v1.54.1 (#25627) 10 months ago
renovate[bot] e7b0d1e23c
Update dependency chewy to v7.3.3 (#25940) 10 months ago
Matt Jankowski ce43ed144c
Rails 7.0 update (#25668) 10 months ago
Claire bb98d970e3
Merge pull request #2291 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire c2bfbf53a1 Fix various CSS issues 10 months ago
Eugen Rochko 8d0c69529a
Change markers API to use a replica (#25851) 10 months ago
Eugen Rochko fdc3ff7c2d
Change notifications API to use a replica (#25874) 10 months ago
Claire 9ae60f8738 Merge commit '82e477b184b5666fff7fb55933dce22ca2925db8' into glitch-soc/merge-upstream 10 months ago
Stanislas Signoud ec95f62cb4 [Glitch] Fix sounds not being loaded from assets host 10 months ago
Claire 2aadebc769 Merge commit '8e0fd2d619dac93c193da6a762564244e5622498' into glitch-soc/merge-upstream 10 months ago
Trevor Wolf 15f6fa8d47 [Glitch] fix buttons showing inconsistent styles 10 months ago
Claire c3af91ce48 [Glitch] Fix filters not applying to explore tab 10 months ago
Claire c699dc0908 [Glitch] Add `forward_to_domains` parameter to `POST /api/v1/reports` 10 months ago
Claire 075887e1d6 Merge commit 'ea10febd257b5b729a50aeb3218389763f5f4b97' into glitch-soc/merge-upstream 10 months ago
Eugen Rochko 71f8c45c18 [Glitch] Change label and design of sensitive and unavailable media in web UI 10 months ago
Claire dd0002e1fe Merge commit '610cf6c3713e414995ea1a57110db400ccb88dd2' into glitch-soc/merge-upstream 10 months ago
Eugen Rochko c250b37f0a [Glitch] Fix explore page being inaccessible when opted-out of trends in web UI 10 months ago
Claire 82eebd0482 Merge commit '41a505513fb36f7c28c8d8a4270d5ee192169462' into glitch-soc/merge-upstream 10 months ago
fusagiko / takayamaki 9e311f95aa [Glitch] simplify counters 10 months ago
alfe 5b9e43187c [Glitch] Rewrite `<ShortNumber />` as FC and TS 10 months ago
Renaud Chaput 55ea79165a [Glitch] Convert `<DismissableBanner>` to Typescript 10 months ago
Renaud Chaput 0bfa4a990f [Glitch] Fix translate button position 10 months ago
Claire 7e54a30f06 Merge commit '4534498a8e43f59980ee56e9938efab8580c78c8' into glitch-soc/merge-upstream 10 months ago
Claire 67055b0343
Fix import order inconsistencies (#2289) 10 months ago
renovate[bot] 82e477b184
Update dependency capistrano-rails to v1.6.3 (#25934) 10 months ago
Matt Jankowski 1ef014802b
Refactor `Trends::Query` to avoid brakeman sql injection warnings (#25881) 10 months ago
Renaud Chaput ecd8e0d612
Update Stylelint (#25819) 10 months ago
Renaud Chaput be34b437ed
Update `haml-lint` (#25929) 10 months ago
Matt Jankowski f831452037
Refactor `Snowflake` to avoid brakeman sql injection warnings (#25879) 10 months ago
Matt Jankowski 6c5a2233a8
Fix `RSpec/StubbedMock` cop (#25552) 10 months ago
Matt Jankowski 2e1391fdd2
Fix `Naming/MemoizedInstanceVariableName` cop (#25928) 10 months ago
Matt Jankowski 5134fc65e2
Fix `Naming/AccessorMethodName` cop (#25924) 10 months ago
Matt Jankowski b8b2470cf8
Fix `Style/SlicingWithRange` cop (#25923) 10 months ago
Matt Jankowski 658742b3cd
Fix `Lint/AmbiguousBlockAssociation` cop (#25921) 10 months ago
Matt Jankowski b786911c55
Fix `Lint/SendWithMixinArgument` cop (#25920) 10 months ago
Matt Jankowski 74806deb2c
Fix `RSpec/SubjectStub` cop (#25550) 10 months ago
Matt Jankowski 7824df0eca
Exclude `lib/linter` from simplecov report (#25916) 10 months ago
Matt Jankowski c75df62ccc
Fix `RSpec/SubjectDeclaration` cop (#25312) 10 months ago
Nick Schonning f134a5f9d8
Run Rubocop on Rakefile (#23871) 10 months ago
Nick Schonning 1d557305d2
Enable Rubocop Style/FrozenStringLiteralComment (#23793) 10 months ago
Nick Schonning 9e8bc56d5a
Enable Rubocop Style/Semicolon with config (#23652) 10 months ago
renovate[bot] 8e0fd2d619
Update babel monorepo (#25930) 10 months ago
Stanislas Signoud 1392f31ed8
Fix sounds not being loaded from assets host (#25931) 10 months ago
Stanislas Signoud ca955ada0b
Use invariant colors on notification toasts (#25919) 10 months ago
Claire 3b92499cbc
Fix incorrect syntax in Github action configuration (#25918) 10 months ago
Matt Jankowski a02ae37766
Run the rebase conflict checker once an hour (#25914) 10 months ago
Claire 9411fa4d36
Update brakeman ignores (#25912) 10 months ago
Nick Schonning e11032585b
Run brakeman in GitHub Actions (#23713) 10 months ago
trwnh 3aa153694e
Fix changelog referencing wrong API version (#25857) 10 months ago
Renaud Chaput 518890a9f1
Fixes `latest` Docker tag (#25812) 10 months ago
Trevor Wolf ea10febd25
fix buttons showing inconsistent styles (#25903) 10 months ago
jsgoldstein 99be47f8b9
Change searching with # to include account index (#25638) 10 months ago
Claire af54bf52c8
Fix filters not applying to explore tab (#25887) 10 months ago
Claire 999c343946
Fix remote accounts being possibly persisted to database with incomplete protocol values (#25886) 10 months ago
Claire 4b5851974c
Fix moderation interface for remote instances with a .zip TLD (#25885) 10 months ago
Claire c27b82a437
Add `forward_to_domains` parameter to `POST /api/v1/reports` (#25866) 10 months ago
Matt Jankowski f3fca78756
Refactor `NotificationMailer` to use parameterization (#25718) 10 months ago
Eugen Rochko a1f5188c8c
Change feed merge, unmerge and regeneration workers to use a replica (#25849) 10 months ago
Eugen Rochko 610cf6c371
Fix trend calculation working on too many items at a time (#25835) 10 months ago
Eugen Rochko 338a0e70cc
Change label and design of sensitive and unavailable media in web UI (#25712) 10 months ago
Matt Jankowski d6b387a0c4
Remove unused `NotificationMailer#digest` preview (#25719) 10 months ago
Matt Jankowski cf33028f35
Admin mailer parameterization (#25759) 10 months ago
Renaud Chaput 41a505513f
Remove unused `missed_update` state (#25832) 10 months ago
Eugen Rochko a7ca33ad96
Add toast with option to open post after publishing in web UI (#25564) 10 months ago
Eugen Rochko a8edbcf963
Fix dropdowns being disabled for logged out users in web UI (#25714) 10 months ago
Eugen Rochko ceeb2b8c41
Fix explore page being inaccessible when opted-out of trends in web UI (#25716) 10 months ago
Eugen Rochko 93e8a15415
Add forwarding of reported replies to servers being replied to (#25341) 10 months ago
Kurtis Rainbolt-Greene e4cfe4b3db
First pass at multi-database for read replica using Rails native adapter (#25693) 10 months ago
Renaud Chaput 4534498a8e
Convert `<DismissableBanner>` to Typescript (#25582) 10 months ago
alfe 20e85c0e83
Rewrite `<ShortNumber />` as FC and TS (#25492) 10 months ago
fusagiko / takayamaki e0d230fb37
simplify counters (#25541) 10 months ago
Matt Jankowski 0f9b803eb3
Regenerate brakeman ignore, pruning warnings (#25749) 10 months ago
Renaud Chaput 9f078e238d
Fix translate button position (#25807) 10 months ago
Claire a40529fa79
Merge pull request #2279 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire b9aa228c54 Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Claire 0051128387
Bump version to v4.1.4 (#25805) 10 months ago
Renaud Chaput d481e72e85
Tag images with the latest tag only when running against the latest stable branch (#25803) 10 months ago
Claire b6d173b459
Fix crash in admin interface when viewing a remote user with verified links (#25796) 10 months ago
Claire 71d44949bf
Fix branding:generate_app_icons failing because of disallowed ICO coder (#25794) 10 months ago
nemobis dfedf0ec64
Fix typo in CHANGELOG.md (#25764) 10 months ago
renovate[bot] 8b624553ef
Update dependency sanitize to v6.0.2 [SECURITY] (#25777) 10 months ago
Claire 94fbac77e7
Fix processing of media files with unusual names (#25788) 10 months ago
Claire 513078de7a
Fix incorrect secondary button size (#2276) 10 months ago
Claire c25ba31e95
Merge pull request #2274 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire ff7aae3037 Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Claire 5e1752ce3f
Bump version to v4.1.3 (#25757) 10 months ago
Claire 610731b03d
Merge pull request from GHSA-55j9-c3mp-6fcq 10 months ago
Claire c5929798bf
Merge pull request from GHSA-9pxv-6qvf-pjwc 10 months ago
Claire dc8f1fbd97
Merge pull request from GHSA-9928-3cp5-93fm 10 months ago
Claire 6d8e0fae3e
Merge pull request from GHSA-ccm4-vgcc-73hp 10 months ago
Claire fed9cbfd2b
Add hardened headers to user-uploaded files (#25756) 10 months ago
Claire 30ad9d976b
Merge pull request #2272 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Eugen Rochko c0fa85b8dd [Glitch] Fix regression of icon button colors in web UI 10 months ago
Trevor Wolf 4719d88117 [Glitch] Change button colors to increase hover/focus contrast and consistency 10 months ago
Eugen Rochko a117c953d0 [Glitch] Add button to see results for polls in web UI 10 months ago
Eugen Rochko b3f209370b [Glitch] Add canonical link tags in web UI 10 months ago
mogaminsk c6246807f5 [Glitch] Fix local live feeds does not expand 10 months ago
forsamori ac74374311 [Glitch] Add at-symbol prepended to mention span title 10 months ago
Eugen Rochko 0a5271629c [Glitch] Change labels of live feeds tabs in web UI 10 months ago
Claire 5de49e74d4 Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Eugen Rochko 000b835803
Add canonical link tags in web UI (#25715) 10 months ago
Eugen Rochko b7910bc751
Add button to see results for polls in web UI (#25726) 10 months ago
Claire eb2417ce99
Fix OAuth apps page crashing when listing apps with certain admin API scopes (#25713) 10 months ago
Claire 4658263b4a
Fix re-activated accounts being deleted by AccountDeletionWorker (#25711) 10 months ago
Trevor Wolf 182fd93a07
fix read more button overlapping thread line bug (#25706) 10 months ago
Claire 12fa24a885
Fix forgotten unconfirmed_email migration file (#25702) 10 months ago
mogaminsk 6268188543
Fix local live feeds does not expand (#25694) 10 months ago
forsamori d9a5c1acfa
Add at-symbol prepended to mention span title (#25684) 10 months ago
Eugen Rochko 54a10523e2
Change labels of live feeds tabs in web UI (#25683) 10 months ago
Daniel M Brasil 383c00819c
Fix `/api/v2/search` not working with following query param (#25681) 10 months ago
Eugen Rochko 69e124e2ed
Fix regression of icon button colors in web UI (#25679) 10 months ago
Plastikmensch ed15893eed
Add regex filter back to firehose (#2266) 10 months ago
Trevor Wolf 54cb679c19
Change button colors to increase hover/focus contrast and consistency (#25677) 10 months ago
Plastikmensch b422b5eebd
Fix showing local only toots in "All" (#2265) 10 months ago
Claire ed567c9de6
Merge pull request #2263 from ClearlyClaire/glitch-soc/merge-upstream 10 months ago
Claire 9f3c3f5209 Show local-only posts in “All” by default, and add back option to toggle it 10 months ago
Claire e6a8faae81
Add users index on unconfirmed_email (#25672) 10 months ago
Claire 933ba1a3eb
Add superapp index on `oauth_applications` (#25670) 10 months ago
Claire 180f0e6715
Fix inefficient query when requesting a new confirmation email from a logged-in account (#25669) 10 months ago
mogaminsk 587ddc2c7f [Glitch] Prevent duplicate concurrent calls of `/api/*/instance` in web UI 10 months ago
Eugen Rochko c49e339c89 [Glitch] Change dropdown icon above compose form from ellipsis to bars in web UI 10 months ago
Claire 7cc2c1be29 [Glitch] Change local and federated timelines to be in a single firehose column 10 months ago
Renaud Chaput eb1cb8224a [Glitch] Use an Immutable Record as the root state 10 months ago
Claire 2ba4773ebe [Glitch] Fix onboarding prompt being displayed because of disconnection gaps 10 months ago
Claire b75aa6b819 [Glitch] Remove the search button from UI header when logged out 10 months ago
Claire 44e98a2740 Merge branch 'main' into glitch-soc/merge-upstream 10 months ago
Eugen Rochko ba06a2f104
Revert "Rails 7 update" (#25667) 10 months ago
mogaminsk 5b46345459
Prevent duplicate concurrent calls of `/api/*/instance` in web UI (#25663) 10 months ago
Eugen Rochko 0512537eb6
Change dropdown icon above compose form from ellipsis to bars in web UI (#25661) 10 months ago
Matt Jankowski 50c2a03695
Rails 7 update (#24241) 10 months ago
Daniel M Brasil 4fe2d7cb59
Fix HTTP 500 in `/api/v1/emails/check_confirmation` (#25595) 10 months ago
Claire cea9db5a0b
Change local and federated timelines to be in a single firehose column (#25641) 10 months ago
Matt Jankowski 0139b1c8e1
Update uri to version 0.12.2 (CVE fix) (#25657) 10 months ago
Vivianne 155fc459e3
Fixing an issue with a missing argument (#2261) 10 months ago
Matt Jankowski f8bd581126
Remove unused routes (#25578) 10 months ago
Matt Jankowski 683ba5ecb1
Fix rails `rewhere` deprecation warning in directories api controller (#25625) 10 months ago
Matt Jankowski c47cdf6e17
Add index to backups on `user_id` column (#25647) 10 months ago
Renaud Chaput 78ba12f0bf
Use an Immutable Record as the root state (#25584) 10 months ago
Claire 9934949fc4
Fix onboarding prompt being displayed because of disconnection gaps (#25617) 10 months ago
Eugen Rochko 8bfbd19d2b Update Crowdin configuration file 10 months ago
Renaud Chaput c4a8c332b2
Remove `pkg-config` gem dependency (#25615) 10 months ago
Claire a209d1e683
Fix ResolveURLService not resolving local URLs for remote content (#25637) 11 months ago
jsgoldstein 4581a528f7
Change account search to match by text when opted-in (#25599) 11 months ago
Claire 285a691936
Remove the search button from UI header when logged out (#25631) 11 months ago
Claire 8b4df95dbe
Merge pull request #2258 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Renaud Chaput c43cfd2406 [Glitch] Improve dismissable banner buttons when they dont fit on 1 line 11 months ago
Eugen Rochko 4faa4eb3c4 [Glitch] Fix onboarding prompt flashing while home feed is loading in web UI 11 months ago
Eugen Rochko 2f996375e5 [Glitch] Fix search not being easily findable on smaller screens in web UI 11 months ago
Claire 80a5c16ae1 Merge branch 'main' into glitch-soc/merge-upstream 11 months ago
Claire c7c6f02ae6
Fix suspending an already-limited domain (#25603) 11 months ago
renovate[bot] ceca93d0d1
Update dependency glob to v10.3.0 (#25608) 11 months ago
renovate[bot] a9ba8263a0
Update mcr.microsoft.com/devcontainers/ruby Docker tag to v1 (#25613) 11 months ago
renovate[bot] dbd37f129d
Update dependency pg to v8.11.1 (#25604) 11 months ago
renovate[bot] b7f6280ef4
Update dependency pg-connection-string to v2.6.1 (#25605) 11 months ago
renovate[bot] a90190f813
Update dependency react-textarea-autosize to v8.5.0 (#25610) 11 months ago
renovate[bot] ccaa676452
Update dependency sass to v1.63.6 (#25607) 11 months ago
renovate[bot] d9b07b6a11
Update dependency rails to v6.1.7.4 (#25606) 11 months ago
Claire 0ccf6c0eb7
Fix batch attachment deletion leaving empty directories (#25587) 11 months ago
renovate[bot] 9caa0475f8
Update dependency react-redux to v8.1.1 (#25432) 11 months ago
S.H 7a25af64dd
Remove media attachment only when file was exist (#25586) 11 months ago
Eugen Rochko bb4756c823
Change files to be deleted in batches instead of one-by-one (#23302) 11 months ago
Renaud Chaput ae30a60b1f
Improve dismissable banner buttons when they dont fit on 1 line (#25580) 11 months ago
Claire ed96e28c9e
Fix compose form not being shown when clicking “Make your first post” on mobile (#25581) 11 months ago
Eugen Rochko 7b024baf50
Change header backgrounds to use fewer different colors in web UI (#25577) 11 months ago
Eugen Rochko 65aa04647a
Fix onboarding prompt flashing while home feed is loading in web UI (#25579) 11 months ago
Eugen Rochko 2b78c07ef1
Fix search not being easily findable on smaller screens in web UI (#25576) 11 months ago
Claire b052a7ed95
Merge pull request #2256 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Claire 5def74a436 [Glitch] Remove unique accounts condition from Home onboarding prompt 11 months ago
Eugen Rochko 6fb34258a4 [Glitch] Add onboarding prompt when home feed too slow in web UI 11 months ago
Claire 7d160d2272 [Glitch] Fix j/k keyboard shortcuts on some status lists 11 months ago
mogaminsk 222713a768 [Glitch] Fix custom signup URL may not loaded 11 months ago
Ian 6fe345c383 [Glitch] Change emoji picker icon 11 months ago
たいち ひ c71fc42f4e [Glitch] Rewrite `<AutosuggestHashtag />` as FC and TS 11 months ago
Claire 178e151019 Merge commit '55e7c08a83547424024bac311d5459cb82cf6dae' into glitch-soc/merge-upstream 11 months ago
Claire 55e7c08a83
Fix verified badge in account lists potentially including rel="me" links (#25561) 11 months ago
Eugen Rochko a985d587e1
Change labels and styles on the onboarding screen in web UI (#25559) 11 months ago
Claire 0842a68532
Remove unique accounts condition from Home onboarding prompt (#25556) 11 months ago
Eugen Rochko 00ec43914a
Add onboarding prompt when home feed too slow in web UI (#25267) 11 months ago
Claire 1d622c8033
Add POST /api/v1/conversations/:id/unread (#25509) 11 months ago
Matt Jankowski c9cd634184
Use default `bootsnap/setup` in boot.rb (#25502) 11 months ago
Claire a8c1c8bd37
Fix j/k keyboard shortcuts on some status lists (#25554) 11 months ago
Claire a5b6f6da80
Change /api/v1/statuses/:id/history to always return at least one item (#25510) 11 months ago
Matt Jankowski 05f9e39b32
Fix `RSpec/VerifiedDoubles` cop (#25469) 11 months ago
Matt Jankowski 38433ccd0b
Reduce `Admin::Reports::Actions` spec db activity (#25465) 11 months ago
Claire 602c458ab6
Add finer permission requirements for managing webhooks (#25463) 11 months ago
Matt Jankowski 63d15d5330
Speed-up on `StatusesController` spec (#25549) 11 months ago
mogaminsk 8d2c26834f
Fix custom signup URL may not loaded (#25531) 11 months ago
Matt Jankowski 0b39b9abee
Speed-up on `BackupService` spec (#25527) 11 months ago
Daniel M Brasil 6ac271c2a0
Migrate to request specs in `/api/v1/suggestions` (#25540) 11 months ago
Ian 69db507924
Change emoji picker icon (#25479) 11 months ago
Claire 37a9c2258a
Add per-test timeouts to AutoStatusesCleanupScheduler tests (#24841) 11 months ago
Claire ebfeaebedb
Fix /api/v1/conversations sometimes returning empty accounts (#25499) 11 months ago
Claire ec91ea4457
Fix missing validation on `default_privacy` setting (#25513) 11 months ago
Daniel M Brasil e53eb38a8d
Migrate to request specs in `/api/v1/admin/account_actions` (#25514) 11 months ago
Claire fd23f50243
Fix wrong view being displayed when a webhook fails validation (#25464) 11 months ago
Claire c78280a8ce
Add translate="no" to outgoing mentions and links (#25524) 11 months ago
Emelia Smith 3a91603b15
Prevent UserCleanupScheduler from overwhelming streaming (#25519) 11 months ago
Plastikmensch eba3411bfa
Re-allow title attribute in <abbr> (#2254) 11 months ago
Claire dd07393e75
Fix user settings not getting validated (#25508) 11 months ago
たいち ひ 804488d38e
Rewrite `<AutosuggestHashtag />` as FC and TS (#25481) 11 months ago
Matt Jankowski e1c9d52e91
Reduce `sleep` time in request pool spec (#25470) 11 months ago
renovate[bot] cec4f1d506
Update dependency dotenv to v16.2.0 (#25506) 11 months ago
Matt Jankowski 3a65fb044f
Add coverage for `UserMailer` methods (#25484) 11 months ago
Matt Jankowski e835198b26
Combine assertions in api/v1/notifications spec (#25486) 11 months ago
Matt Jankowski 155ec185b2
Remove unused `picture_hint` helper method (#25485) 11 months ago
renovate[bot] a0d7ae257d
Update dependency aws-sdk-s3 to v1.126.0 (#25480) 11 months ago
Daniel M Brasil b9bc9d0bda
Fix incorrect pagination headers in `/api/v2/admin/accounts` (#25477) 11 months ago
Daniel M Brasil 0a0a1f1495
Migrate to request specs in `/api/v1/tags` (#25439) 11 months ago
Claire 4ddb736d95
Merge pull request #2252 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Claire dc68306b8e Merge branch 'main' into glitch-soc/merge-upstream 11 months ago
Claire f3c2035fce
Merge pull request #2251 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Claire 64f7a11658
Fix cross-origin loading of locales (#25498) 11 months ago
Claire 3b04e39534 [Glitch] Fix non-interactive upload container being given a `button` role and tabIndex 11 months ago
Claire e5978184a6 Fix glitch-soc-only test being broken by refactor of the surrounding tests 11 months ago
Claire 6c99479ef4 Merge commit '9e245d147bcb2c72cc552ff8c276a1c34e2f686d' into glitch-soc/merge-upstream 11 months ago
Eugen Rochko d795c2c70c [Glitch] Fix CAPTCHA page not following design pattern of sign-up flow 11 months ago
たいち ひ b1b95ddd1f [Glitch] Rewrite `emoji_mart_data_light` as TS 11 months ago
alfe 9bf63257fb [Glitch] Rewrite `<LoadingIndicator/>` as FC and TS (#25364) 11 months ago
Renaud Chaput 0a212cfa7f [Glitch] Add missing report category translation 11 months ago
alfe cdec45eca9 [Glitch] Rewrite <LoadPending /> as FC and TS 11 months ago
Eugen Rochko f815bd5fd9 [Glitch] Change "bot" label to "automated" 11 months ago
Claire 65cbcce997 Merge commit '39110d1d0af5e3d9cf452ae47496a52797249fd0' into glitch-soc/merge-upstream 11 months ago
renovate[bot] 9e245d147b
Update dependency aws-sdk-s3 to v1.125.0 (#25458) 11 months ago
Claire c9d06d10d4
Fix non-interactive upload container being given a `button` role and tabIndex (#25462) 11 months ago
Matt Jankowski b276b3bb83
Remove Ruby GC config from spec helper (#25455) 11 months ago
renovate[bot] e686a54064
Update dependency better_errors to v2.10.1 (#25445) 11 months ago
Daniel M Brasil b10c05e702
Migrate to request specs in `/api/v1/lists` (#25443) 11 months ago
renovate[bot] 8b2048d0c8
Lock file maintenance (#25434) 11 months ago
renovate[bot] a6d7abb29d
Update dependency intl-messageformat to v10.5.0 (#25431) 11 months ago
renovate[bot] 36566e9245
Update dependency core-js to v3.31.0 (#25430) 11 months ago
renovate[bot] 478687fc49
Update libretranslate/libretranslate Docker tag to v1.3.11 (#25428) 11 months ago
renovate[bot] 841e35e291
Update devDependencies (non-major) (#25427) 11 months ago
Matt Jankowski 4c5aa0e470
Update rubocop-rspec to version 2.22.0, fix `RSpec/IndexedLet` cop (#24698) 11 months ago
Daniel M Brasil 24015ef0cc
Migrate to request specs in `/api/v1/domain_blocks` (#25414) 11 months ago
Daniel M Brasil 87aff5aad8
Migrate to request specs in `/api/v1/follow_requests` (#25411) 11 months ago
Daniel M Brasil d9c6f70cc6
Fix `ArgumentError` in `/api/v1/admin/accounts/:id/action` (#25386) 11 months ago
renovate[bot] b9e8d2b352
Update dependency sass to v1.63.3 (#25422) 11 months ago
renovate[bot] 95b84874f3
Update dependency redis-namespace to v1.11.0 (#25421) 11 months ago
renovate[bot] 360759df7b
Update formatjs monorepo (#25418) 11 months ago
renovate[bot] f10f4f2359
Update dependency glob to v10.2.7 (#25417) 11 months ago
Matt Jankowski ae9f5379d1
Reduce factory data created in spec/models/trends/statuses spec (#25410) 11 months ago
Matt Jankowski 31d5bc89d1
Speed improvement for `AccountsStatusesCleanupScheduler` spec (#25406) 11 months ago
Daniel M Brasil a5b62e56d0
Migrate to request specs in `/api/v1/apps/verify_credentials` (#25404) 11 months ago
Daniel M Brasil a6407aa662
Migrate to request specs in `/api/v1/apps` (#25401) 11 months ago
Matt Jankowski 4c5f62de99
Extract shared examples from api specs (#25387) 11 months ago
renovate[bot] ae2790d84f
Update babel monorepo to v7.22.5 (#25405) 11 months ago
renovate[bot] a99201c735
Update dependency capybara to v3.39.2 (#25407) 11 months ago
renovate[bot] 780d54e5c3
Update dependency aws-sdk-s3 to v1.124.0 (#25297) 11 months ago
Eugen Rochko f20698000f
Fix always redirecting to onboarding in web UI (#25396) 11 months ago
Claire ec59166844
Fix ArgumentError when loading newer Private Mentions (#25399) 11 months ago
Eugen Rochko bca649ba79
Change edit profile page (#25413) 11 months ago
Eugen Rochko 39110d1d0a
Fix CAPTCHA page not following design pattern of sign-up flow (#25395) 11 months ago
たいち ひ 3b5e302f7f
Rewrite `emoji_mart_data_light` as TS (#25138) 11 months ago
alfe a86886b1fd
Rewrite `<LoadingIndicator/>` as FC and TS (#25364) 11 months ago
Nick Schonning 72590e601a
Update Rubocop 1.52.1 (#25376) 11 months ago
Renaud Chaput 1cb4514d0e
Add missing report category translation (#25400) 11 months ago
Matt Jankowski 10746af82f
Remove unused shared examples for scoped settings (#25389) 11 months ago
Matt Jankowski 25c66fa640
Enable paperclip for account attachment examples (#25381) 11 months ago
Eugen Rochko 6637ef7852
Add unsubscribe link to e-mails (#25378) 11 months ago
Plastikmensch fefdc3244c
[Glitch] Change "direct message" nomenclature to "private mention" in web UI (#2158) 11 months ago
Claire af97a6ac5a
Merge pull request #2246 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
alfe dfaf59d99a
Rewrite <LoadPending /> as FC and TS (#25363) 11 months ago
Eugen Rochko 432a5d2d4b
Change "bot" label to "automated" (#25356) 11 months ago
Claire 20718a8b59 Fix some translation strings inconsistencies 11 months ago
Claire 42a0898f16 Merge commit '3a2a15c6ea4d4603469861ed9be09da12a122e45' into glitch-soc/merge-upstream 11 months ago
Matt Jankowski 62c996b52d
Reduce `RSpec/MultipleExpectations` cop max to 8 (#25313) 11 months ago
Matt Jankowski b5675e265e
Add coverage for `CLI::Feeds` command (#25319) 11 months ago
Matt Jankowski 07933db788
Add coverage for `CLI::Cache` command (#25238) 11 months ago
Emelia Smith 215081240f
Add logging of websocket send errors (#25280) 11 months ago
fusagiko / takayamaki b19a695608
migrate test for `GET /api/v1/accounts/{account_id}` to request spec (#25322) 11 months ago
Daniel M Brasil 99216e34e5
Migrate to request specs in `/api/v1/admin/canonical_email_blocks` (#25330) 11 months ago
Daniel M Brasil b4e19f9610
Migrate to request specs in `/api/v1/admin/ip_blocks` (#25331) 11 months ago
Daniel M Brasil 4301d8cbb3
Migrate to request specs in `/api/v1/admin/domain_allows` (#25333) 11 months ago
Daniel M Brasil 841c220c40
Migrate to request specs in `/api/v1/admin/domain_blocks` (#25335) 11 months ago
Daniel M Brasil 0e200d4e2f
Migrate to request specs in `/api/v1/admin/reports` (#25355) 11 months ago
Matt Jankowski 3a2a15c6ea
Use `build` where possible in fabricators (#25360) 11 months ago
Matt Jankowski c94bb9ba9a
Disable paperclip processing in specs (#25359) 11 months ago
Emelia Smith c81f59583c
Fix logging of messages that are binary before closing their connection (#25361) 11 months ago
Claire 34efd1a24c Switch to using a `common` runtime chunk rather than `locales` 11 months ago
Claire 8c26d49cbd Merge commit '16dd3f08c1e5396d5f9ff3f13417901bc4e4b8b9' into glitch-soc/merge-upstream 11 months ago
Eugen Rochko fb0d2de8fe [Glitch] Change design of dropdowns in web UI 11 months ago
alfe 83ae40e192 [Glitch] Rewrite `<LoadMore />` as FC and TS 11 months ago
Claire c48ec9cb8c Merge commit 'b85c387c5c0527b0ad31c27031a09d361826c5fc' into glitch-soc/merge-upstream 11 months ago
Claire 88c5ad3136 [Glitch] Add data-nosnippet so Google doesn't use trending posts in snippets for / 11 months ago
S.H 5a961f84cf [Glitch] Fix not shown announcements in hometimeline. 11 months ago
Claire 475185a2ee [Glitch] Fix design issues with recent react-intl upgrade 11 months ago
Darius Kazemi a8a30f1298 [Glitch] Add exclusive lists 11 months ago
Claire bf23afa059 [Glitch] Add card with who invited you to join when displaying rules on sign-up 11 months ago
Jed Fox 753385d3e0 [Glitch] Fix spacing of middle dots in the detailed status meta section 11 months ago
Claire d8b0a732aa Merge commit '1483a3ddfe74e4fb81d87447a1781943eab86c60' into glitch-soc/merge-upstream 11 months ago
Renaud Chaput 9e66c07be7 [Glitch] Fix `/share` and cleanup and reorganize frontend locale loading 11 months ago
Claire 734e186717 Merge commit 'b0780cfeeda641645ea65da257a72ec507e71647' into glitch-soc/merge-upstream 11 months ago
S.H a4d7a17089 [Glitch] Fix using Date.now() instead of intl.now() 11 months ago
Claire aa57f7e3e2 Merge commit '5fae2de454806730742b7be7435ae1c4fb97cf3c' into glitch-soc/merge-upstream 11 months ago
Claire 9af04d5a46 [Glitch] Add a confirmation screen when suspending a domain 11 months ago
Claire b27a9a5903 Merge commit 'e9385e93e9b4601c87d1f5d6b8ddfd815f7aedcb' into glitch-soc/merge-upstream 11 months ago
Renaud Chaput 8188522bde [Glitch] Fix prev/next buttons color in media viewer 11 months ago
Christian Schmidt 7e25fd9b0c [Glitch] Translate CW, poll options and media descriptions 11 months ago
Claire 93c714417f Merge commit 'b922ad7a1b4bc8d968d0df2c7f307d4fec53435d' into glitch-soc/merge-upstream 11 months ago
Renaud Chaput 9e133e2527 [Glitch] Upgrade react-intl 11 months ago
Claire 85722a918d Merge commit '44cd88adc4e2f4028dcc2b08b98368f0dc90cee4' into glitch-soc/merge-upstream 11 months ago
Eugen Rochko 4c9406bdb0
Add time zone preference (#25342) 11 months ago
Emelia Smith 16dd3f08c1
Fix performance of streaming by parsing message JSON once (#25278) 11 months ago
Renaud Chaput e34142782f
Add Ruby & Bundler versions to Gemfile.lock (#25317) 11 months ago
Matt Jankowski 75e299f440
Remove unused `redis_info` method Admin::Dashboard (#25345) 11 months ago
Daniel M Brasil 4aff1d2974
Migrate to request specs in `/api/v1/admin/email_domain_blocks` (#25337) 11 months ago
jsgoldstein 18f092d927
Fix translations for changing theme (#25340) 11 months ago
Matt Jankowski b85c387c5c
Remove reference to deleted statsd config file (#25336) 11 months ago
renovate[bot] db047e323b
Update dependency webpack-bundle-analyzer to v4.9.0 (#25327) 11 months ago
renovate[bot] 5265655549
Update dependency dotenv to v16.1.3 (#25302) 11 months ago
renovate[bot] 7e22287caa
Update dependency sass-loader to v10.4.1 (#25315) 11 months ago
Claire f378f10404
Fix compatibility of recent migration with PostgreSQL 10 (#25324) 11 months ago
Eugen Rochko 67d17ce194
Add `legal` as report category (#23941) 11 months ago
Eugen Rochko e4fd9503ec
Change design of dropdowns in web UI (#25107) 11 months ago
Renaud Chaput ed04c277b4
Configure RenovateBot to add proper language labels (#25316) 11 months ago
Matt Jankowski 6c0e3f490a
Fix RSpec/MissingExampleGroupArgument cop (#25310) 11 months ago
Matt Jankowski b74c3cd708
Fix `RSpec/DescribedClass` cop missed items (#25309) 11 months ago
Nick Schonning c66250abf1
Autofix Rubocop Regex Style rules (#23690) 11 months ago
renovate[bot] 9a653899e9
Update dependency redis to v4.6.7 (#25300) 11 months ago
Matt Jankowski c42591356d
Fix `RSpec/DescribedClass` cop (#25104) 11 months ago
Matt Jankowski 1e243e2df7
Misc spec coverage for `Admin::` area controllers (#25282) 11 months ago
Daniel M Brasil eb6f8181e1
Add test coverage for `Mastodon::CLI::Accounts#reset_relationships` (#25194) 11 months ago
Matt Jankowski b22bfae4f9
Add coverage for `DomainBlock#public_domain` method (#25283) 11 months ago
alfe fb5bf5cbf8
Rewrite `<LoadMore />` as FC and TS (#25259) 11 months ago
renovate[bot] 50a8f5b8a7
Update dependency react-redux to v8.0.7 (#25298) 11 months ago
Claire 6833732852
Fix autocomplete suggestions being cut off in compose form (#25275) 11 months ago
Eugen Rochko 4eda233e09
Add webhook templating (#23289) 11 months ago
renovate[bot] a80efb449e
Configure Renovate (#25255) 11 months ago
Eugen Rochko 0ddc895282
Change follow button in account row to be more obvious in web UI (#24956) 11 months ago
Claire d907e79140
Merge pull request #2242 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Matt Jankowski af135bddd0
Update `Admin::Metrics::Measure` classes for Rails 7 (#25236) 11 months ago
Claire e428670e61
Fix CSP headers when S3_ALIAS_HOST includes a path component (#25273) 11 months ago
Claire 1483a3ddfe
Add data-nosnippet so Google doesn't use trending posts in snippets for / (#25279) 11 months ago
Matt Jankowski 3b21c13dcc
Rails 7 compatibility fix for `Admin::Metrics::Dimension` classes (#25277) 11 months ago
Daniel M Brasil 70cd2d6000
Add test coverage for `Mastodon::CLI::Accounts#cull` (#25250) 11 months ago
S.H a6c898f501
Fix not shown announcements in hometimeline. (#25251) 11 months ago
Nick Schonning a8310b15ed
Update kt-paperclip 7.2 from sha (#25274) 11 months ago
dependabot[bot] 7fc1297c3e [Glitch] Bump eslint-plugin-jsdoc from 44.2.5 to 45.0.0 11 months ago
Claire 5e876c2901 [Glitch] Fix `null` signUp URL in various places 11 months ago
y.takahashi 4993b6e800 [Glitch] Handle Surrogate Pairs in truncate() 11 months ago
Claire c22fc2fa80 Merge commit '00c222377db0e305ac3f4a15bf1c18eb89c1f45f' into glitch-soc/merge-upstream 11 months ago
Claire c2c396157f
Fix design issues with recent react-intl upgrade (#25272) 11 months ago
Darius Kazemi bacb674921
Add exclusive lists (#22048) 11 months ago
Matt Jankowski 0daf78f903
Add `allow_other_host: true` to backups controller (#25266) 11 months ago
Matt Jankowski 5c87c66504
Add coverage for CLI::CanonicalEmailBlocks command (#25239) 11 months ago
Daniel M Brasil 03a707f6a6
Add test coverage for `Mastodon::CLI::Accounts#merge` (#25199) 11 months ago
Matt Jankowski e49819142f
Remove unmaintained `nsa` gem (#25265) 11 months ago
Eugen Rochko 4a5464f360
Change "Follow 7 people" to "Find at least 7 people to follow" in web UI (#24954) 11 months ago
Claire ee771f5bad
Fix closeModal invocation (#2239) 11 months ago
Nick Schonning aea67d448b
Cleanup old translationRunner (#25241) 11 months ago
Jed Fox 768b00c4d0
Consistently use middle dot (·) instead of bullet (•) to separate items (#25248) 11 months ago
Claire 0766c9a631
Add card with who invited you to join when displaying rules on sign-up (#23475) 11 months ago
Claire 94329f28e1
Change wording of “Content cache retention period” setting to highlight destructive implications (#23261) 11 months ago
Jed Fox acc419b81b
Fix spacing of middle dots in the detailed status meta section (#25247) 11 months ago
Renaud Chaput b0780cfeed
Fix `/share` and cleanup and reorganize frontend locale loading (#25240) 11 months ago
Claire 5fae2de454
Fix overflow behavior of account rows (#25131) 11 months ago
Claire 8884d1ece0
Add support for importing lists (#25203) 11 months ago
dependabot[bot] d91607feee
Bump sidekiq-scheduler from 5.0.2 to 5.0.3 (#25228) 11 months ago
Matt Jankowski cd4f0feab8
Extract verify options method in search cli (#25121) 11 months ago
Nick Schonning b489c200a6
Update yarn.lock for audit issues (#25152) 11 months ago
Matt Jankowski 35c1c3e57a
Add CLI area progress bar helper (#25208) 11 months ago
Daniel M Brasil 2a353200ad
Add test coverage for `Mastodon::CLI::Accounts#rotate` (#25212) 11 months ago
dependabot[bot] 3182ecc24c
Bump puma from 6.2.2 to 6.3.0 (#25229) 11 months ago
S.H b3f9a0da52
Fix using Date.now() instead of intl.now() (#25234) 11 months ago
Renaud Chaput 942d850b0a
Allow carets in URL search params (#25216) 11 months ago
Claire dac460f43f
Bump workbox from 6.6.1 to 7.0.0 (#25232) 11 months ago
dependabot[bot] c15c8c7aa8
Bump rspec-rails from 6.0.2 to 6.0.3 (#25223) 11 months ago
Daniel M Brasil f906e21a4f
Add test coverage for `Mastodon::CLI::Accounts#refresh` (#25196) 11 months ago
Claire fe84f7e323
Add missing primary keys to `accounts_tags` and `statuses_tags` (#25210) 11 months ago
Matt Jankowski f84037ae2b
Remove unused #hash_to_object method in SettingsHelper (#25213) 11 months ago
dependabot[bot] e7e1b46ce8
Bump aws-sdk-s3 from 1.122.0 to 1.123.0 (#25230) 11 months ago
dependabot[bot] 5a50983654
Bump eslint-plugin-jsdoc from 45.0.0 to 46.1.0 (#25222) 11 months ago
dependabot[bot] b05bbd91d0
Bump @types/jest from 29.5.1 to 29.5.2 (#25220) 11 months ago
Claire e9385e93e9
Add a confirmation screen when suspending a domain (#25144) 11 months ago
Claire fca2dff2e2
Merge pull request #2237 from ClearlyClaire/glitch-soc/merge-upstream 11 months ago
Claire b922ad7a1b
Fix crash when S3_ALIAS_HOST or S3_CLOUDFRONT_HOST have a path component (#25018) 11 months ago
Claire 2b45fecde1
Fix multiple N+1s in ConversationsController (#25134) 11 months ago
Renaud Chaput 675672feb6
Fix prev/next buttons color in media viewer (#25231) 11 months ago
Nick Schonning d39bce963f
Add fix/lint helper dev targets (#23561) 11 months ago
Christian Schmidt 69057467cb
Translate CW, poll options and media descriptions (#24175) 11 months ago
Renaud Chaput 44cd88adc4
Upgrade react-intl (#24906) 11 months ago
Matt Jankowski 00c222377d
Remove unused Settings::Extend module (#25214) 11 months ago
Renaud Chaput b7d995cb00
Disable some metrics cops (#25215) 11 months ago
Matt Jankowski b0104e4c33
Silence output to stdout during cli specs (#25211) 11 months ago
Matt Jankowski dc26140d54
Use thor methods instead of tty prompt in maintenance cli (#25207) 11 months ago
Daniel M Brasil 3c41547f49
Add test coverage for `Mastodon::CLI::Accounts#backup` (#25163) 11 months ago
Matt Jankowski 8b1bfaed3e
Add specs for admin/webhooks CRUD actions (#25133) 11 months ago
Matt Jankowski 665bb237a8
Increase spec coverage for controllers - admin/ip_blocks, admin/relays, admin/rules (#25192) 11 months ago
dependabot[bot] 82f6d4c418
Bump @babel/core and @types/babel__core (#25183) 11 months ago
Claire b6519ab3f5
Fix inconsistent naming of Instance.by_domain_and_subdomain (#25159) 11 months ago
dependabot[bot] b86f3596ba
Bump @babel/plugin-transform-runtime from 7.21.4 to 7.22.4 (#25173) 11 months ago
dependabot[bot] e24adacea1
Bump @babel/preset-react from 7.18.6 to 7.22.3 (#25171) 11 months ago
dependabot[bot] e1d0343354
Bump @babel/runtime from 7.21.5 to 7.22.3 (#25170) 11 months ago
dependabot[bot] 0ed8164777
Bump @babel/preset-env from 7.21.5 to 7.22.4 (#25167) 11 months ago
Daniel M Brasil bf9a7ce8e8
Add test coverage for `Mastodon::CLI::Accounts#unfollow` (#25162) 11 months ago
Renaud Chaput 98e5e011aa
Upgrade Workbox to 6.6.0 (#25197) 11 months ago
dependabot[bot] 89d6341c80
Bump eslint-plugin-jsdoc from 44.2.5 to 45.0.0 (#25172) 11 months ago
Renaud Chaput c2ea0dc65f
Drop support for Node.js 14 (#25198) 11 months ago
Claire 14bb6bb29a
Fix `null` signUp URL in various places (#25190) 12 months ago
Matt Jankowski 1baf40077b
Fix FormatStringToken cop in CLI (#25122) 12 months ago
Daniel M Brasil dbc44be0ca
Add test coverage for `Mastodon::CLI::Accounts#follow` (#25161) 12 months ago
Matt Jankowski 80c7de9984
Fix Rails/WhereExists cop in CLI (#25123) 12 months ago
Matt Jankowski b7b96efd17
Extract helper method for error report in cli/accounts command (#25119) 12 months ago
Matt Jankowski 2cecb2dc9e
Increment index which was previously not used in maintenance CLI loop (#25118) 12 months ago
Matt Jankowski ec9bc7e604
Consistent usage of CLI `dry_run?` method (#25116) 12 months ago
Daniel M Brasil 3d253b9830
Add test coverage for `Mastodon::CLI::Accounts#approve` (#25160) 12 months ago
Daniel M Brasil bbbcdc083f
Add test coverage for `Mastodon::CLI::Accounts#delete` (#25146) 12 months ago
dependabot[bot] 44eaa979d4
Bump @types/react from 18.2.6 to 18.2.7 (#25166) 12 months ago
dependabot[bot] 4869384fa0
Bump jsdom from 22.0.0 to 22.1.0 (#25178) 12 months ago
dependabot[bot] 05c2d4dab2
Bump nokogiri from 1.14.3 to 1.15.2 (#25177) 12 months ago
dependabot[bot] 66c1ad8be9
Bump @types/react-motion from 0.0.33 to 0.0.34 (#25185) 12 months ago
dependabot[bot] 5f1a03fdba
Bump @typescript-eslint/parser from 5.59.7 to 5.59.8 (#25175) 12 months ago
dependabot[bot] 6d41cdcc6a
Bump @typescript-eslint/eslint-plugin from 5.59.7 to 5.59.8 (#25182) 12 months ago
dependabot[bot] 8ff2d61add
Bump @types/lodash from 4.14.194 to 4.14.195 (#25184) 12 months ago
dependabot[bot] b91aeeb94f
Bump sidekiq from 6.5.8 to 6.5.9 (#25176) 12 months ago
dependabot[bot] 37dc48c3a1
Bump postcss from 8.4.23 to 8.4.24 (#25169) 12 months ago
S.H 8c183a9831
Align argument type to keyword argument for private process method in FetchResourceService (#25189) 12 months ago
Daniel M Brasil bdc7548652
Add test coverage for `Mastodon::CLI::Accounts#modify` (#25145) 12 months ago
y.takahashi 64b960b6b3
Handle Surrogate Pairs in truncate() (#25148) 12 months ago
Daniel M Brasil 11b8336418
Add test coverage for `Mastodon::CLI::Accounts#create` (#25143) 12 months ago
Claire 5ed48e6878 Fix extraneous newlines 12 months ago
fusagiko / takayamaki 382b2a506a [Glitch] Rewrite actions/modal and reducers/modal with typescript 12 months ago
たいち ひ 6a592083f1 [Glitch] Fix export style of `<LoadGap />` based on `<Domain />` 12 months ago
Renaud Chaput 0009b4b574 [Glitch] Update inconsistent `defaultMessage` 12 months ago
Claire 0669783da8 Merge branch 'main' into glitch-soc/merge-upstream 12 months ago
Eugen Rochko e7dc375aab [Glitch] Change share action from being in action bar to being in dropdown in web UI 12 months ago
Renaud Chaput 7bec63e6e2 [Glitch] Fix `null` signUp URL handling from #25014 12 months ago
たいち ひ 017fbc7a74 [Glitch] Rewrite `<LoadGap />` as FC and TS 12 months ago
Claire 0e7466717f Merge commit '391c089d0db58d731765dba730a5e1f2fe8570a6' into glitch-soc/merge-upstream 12 months ago
Claire 7d7db8977b Fix import order with ESLint 12 months ago
Claire 1cd7f5ff17 Merge commit 'd27216dc4616d80659c0cc5d2a55394e0e1ae874' into glitch-soc/merge-upstream 12 months ago
Claire 9e5278ea7b [Glitch] Add support for custom sign-up URLs 12 months ago
Claire 8f380a33fc [Glitch] Fix video player offering to expand in a lightbox when it's in an iframe 12 months ago
Claire 6dbd44faea Merge commit 'b896b16cb3c8626fbee12a7eda7f882114b1a040' into glitch-soc/merge-upstream 12 months ago
Claire a0bc0619ca [Glitch] Use JSX syntax for Fragments 12 months ago
Claire 8278907ff7 Merge commit '5a16bd7bf4591feb852364da9b84407438c9b7d6' into glitch-soc/merge-upstream 12 months ago
Claire 6001f5ff36 [Glitch] Use the new JSX transform everywhere 12 months ago
Claire 9381f78166 Merge commit '8f66126b1010e0aaaa8b5f2a2f4ea8a28824e2b7' into glitch-soc/merge-upstream 12 months ago
Claire 0222df6047
Merge pull request #2236 from ClearlyClaire/glitch-soc/merge-upstream 12 months ago
Claire 1347ca6eb0 fixup! [Glitch] Upgrade to React 18 12 months ago
Matt Jankowski 55785b1603
Extract methods for user de-duping in maintenance CLI (#25117) 12 months ago
Matt Jankowski 0f2c16ac4b
Fix RSpec/NoExpectationExample cop (#25103) 12 months ago
Claire 61f6cd45e3 Fix glitch-soc-only tests being broken because of test refactor 12 months ago
たいち ひ 60c7e559d8 [Glitch] Rewrite `<TimelineHint />` as FC and TS 12 months ago
たいち ひ 6746e5d430 [Glitch] Rewrite `<Skeleton/>` as FC and TS 12 months ago
Claire 892b3c16f5 [Glitch] Allow scripts in post embed previews 12 months ago
Claire e2ab9d4dad Merge commit 'e387175fc9a3ebfd72ab45ebfe43ecfabef7b0c3' into glitch-soc/merge-upstream 12 months ago
Renaud Chaput 3b375ee395 [Glitch] Upgrade to React 18 12 months ago
Claire 45d7358100 Merge commit '8d6aea33260dedeacb3d22ac1a6d2f9cc3856a5e' into glitch-soc/merge-upstream 12 months ago
Claire 2e02d03524 Merge commit '4a22e72b9b1b8f14792efcc649b0db8bc27f0df2' into glitch-soc/merge-upstream 12 months ago
Claire ad1098970b Merge commit 'bec6a1cad4c509c53deb378c7ba984ba7e2de5a9' into glitch-soc/merge-upstream 12 months ago
Claire ba73f0ea3a [Glitch] Add polling and automatic redirection to `/start` on email confirmation 12 months ago
Claire f959f6cdbb Merge commit 'e60414792d86a99c0f401f3c1bab92ee37835d39' into glitch-soc/merge-upstream 12 months ago
Claire b0ec3bfcf9 [Glitch] Fix being unable to load past a full page of filtered posts in Home timeline 12 months ago
Christian Schmidt 4a1f4cb6a2 [Glitch] Fix UI crash in moderation interface when opening the media modal 12 months ago
Eugen Rochko d728222121 [Glitch] Change "Sign in" to "Login" 12 months ago
Claire 602ae7f2f6 [Glitch] Fix videos being improperly positioned on safari 12 months ago
Renaud Chaput e6a7cfd12e [Glitch] Add stricter ESLint rules for Typescript files 12 months ago
Nick Schonning e8fc445e14 [Glitch] Enable ESLint react/no-deprecated 12 months ago
Renaud Chaput 79c43b61a6 [Glitch] Disable RTK safety middlewares 12 months ago
fusagiko / takayamaki 7d9b7f28b8 [Glitch] Add type annotation for DisplayName component 12 months ago
fusagiko / takayamaki ea1f9b4223 [Glitch] Rename Image component to ServerHeroImage 12 months ago
Claire b735954971 Merge commit '2ce0b666a139726dc406e6c1887728553b947e59' into glitch-soc/merge-upstream 12 months ago
Claire 646cde71d1
Change captcha to be presented even for invited users (#2227) 12 months ago
Claire 69903b5830
Fix margins around small avatars (reply indicators, autocompletion suggestion) (#2231) 12 months ago
Claire cb6f445b90
Greatly simplify history management code (#2230) 12 months ago
Claire 2f2f74efd8
[Glitch] Update style of captcha confirmation page to match sign-up form (#2226) 12 months ago
fusagiko / takayamaki 38c6216082
Rewrite actions/modal and reducers/modal with typescript (#24833) 12 months ago
たいち ひ 4197b5e4c8
Fix export style of `<LoadGap />` based on `<Domain />` (#25128) 12 months ago
Claire 1d588d58f1
Improve various queries against account domains (#25126) 12 months ago
Renaud Chaput e58c36d308
Update inconsistent `defaultMessage` (#25114) 12 months ago
dependabot[bot] 391c089d0d
Bump eslint from 8.40.0 to 8.41.0 (#25081) 12 months ago
Matt Jankowski 384345b0de
Add CLI Base class for command line code (#25106) 12 months ago
Matt Jankowski d2e5430d4a
Fix RSpec/ExpectChange cop (#25101) 12 months ago
Eugen Rochko 1caa5ff39e
Change share action from being in action bar to being in dropdown in web UI (#25105) 12 months ago
dependabot[bot] f7d93f95e1
Bump capistrano from 3.17.2 to 3.17.3 (#25113) 12 months ago
dependabot[bot] 2e3b1ef13e
Bump eslint-plugin-jsdoc from 44.2.4 to 44.2.5 (#25112) 12 months ago
dependabot[bot] ac98e9fdbc
Bump fastimage from 2.2.6 to 2.2.7 (#25111) 12 months ago
Renaud Chaput 342daeb389
Update `react-redux` (#25110) 12 months ago
Renaud Chaput 40b948a1fb
Fix `null` signUp URL handling from #25014 (#25108) 12 months ago
たいち ひ 7336f3648b
Rewrite `<LoadGap />` as FC and TS (#25042) 12 months ago
Renaud Chaput d27216dc46
Enforce import order with ESLint (#25096) 12 months ago
Matt Jankowski b896b16cb3
Fix RSpec/PredicateMatcher cop (#25102) 12 months ago
Matt Jankowski 778e4a7bf7
Fix RSpec/ExpectInHook cop (#25100) 12 months ago
Matt Jankowski b6b4ea4ca5
Move the mastodon/*_cli files to mastodon/cli/* (#24139) 12 months ago
Matt Jankowski c9f980b268
Add request spec for backups download (#25099) 12 months ago
Claire ca66e61b93
Add support for custom sign-up URLs (#25014) 12 months ago
Claire dfa5889fc0
Change Identity to not destroy associated User on destroy (#25098) 12 months ago
Claire 100840c06e
Fix video player offering to expand in a lightbox when it's in an iframe (#25067) 12 months ago
Claire 9017df7178
Remove dead code in Api::V1::FeaturedTagsController (#25073) 12 months ago
Claire fea0830614
Remove invalid X-Frame-Options: ALLOWALL (#25070) 12 months ago
Matt Jankowski 541f64b2bb
Fix Rails/Exit cop (#24743) 12 months ago
Renaud Chaput 5a16bd7bf4
Use JSX syntax for Fragments (#25093) 12 months ago
Renaud Chaput 8f66126b10
Use the new JSX transform (#25064) 12 months ago
Matt Jankowski e387175fc9
Fix RSpec/RepeatedExample cop (#24849) 12 months ago
Matt Jankowski 9f5deb310b
Fix Performance/MapCompact cop (#24797) 12 months ago
Matt Jankowski 0664704cd9
Fix Performance/StartWith cop (#24818) 12 months ago
たいち ひ 9a472efe7c
Rewrite `<TimelineHint />` as FC and TS (#25091) 12 months ago
Matt Jankowski 2877c80dbc
Add specs for admin/announcements CRUD actions (#25077) 12 months ago
dependabot[bot] 753e6df04a
Bump rubocop from 1.50.2 to 1.51.0 (#24995) 12 months ago
dependabot[bot] 5b332112fc
Bump stylelint from 15.6.1 to 15.6.2 (#25078) 12 months ago
dependabot[bot] c37ecbcd10
Bump aws-sdk-s3 from 1.121.0 to 1.122.0 (#24923) 12 months ago
dependabot[bot] c2cbe90a89
Bump rimraf from 5.0.0 to 5.0.1 (#25082) 12 months ago
dependabot[bot] 9e59186f78
Bump glob from 10.2.2 to 10.2.6 (#25083) 12 months ago
dependabot[bot] c7cbded282
Bump webpack-merge from 5.8.0 to 5.9.0 (#25084) 12 months ago
dependabot[bot] d7fd2c5763
Bump rqrcode from 2.1.2 to 2.2.0 (#25086) 12 months ago
dependabot[bot] 4ea24537cf
Bump rubocop-performance from 1.17.1 to 1.18.0 (#25089) 12 months ago
dependabot[bot] 7cfa6424f1
Bump @typescript-eslint/eslint-plugin from 5.59.6 to 5.59.7 (#25085) 12 months ago
dependabot[bot] 16d3e76a71
Bump @typescript-eslint/parser from 5.59.6 to 5.59.7 (#25080) 12 months ago
dependabot[bot] 9628d949ef
Bump connection_pool from 2.4.0 to 2.4.1 (#25088) 12 months ago
dependabot[bot] a5fa30a2d2
Bump rspec-rails from 6.0.1 to 6.0.2 (#25092) 12 months ago
Daniel M Brasil b473df9a14
Improve test coverage for `/api/v1/featured_tags` (#25076) 12 months ago
Nick Schonning 520e00a3c1
Don't run Rubocop excluded files for lint-staged (#25090) 12 months ago
たいち ひ 8066118d1f
Rewrite `<Skeleton/>` as FC and TS (#25055) 12 months ago
Claire 711a037660
Allow scripts in post embed previews (#25071) 12 months ago
Daniel M Brasil 785e650ab4
Fix uncaught TypeError in POST `/api/v1/featured_tags` (#25072) 12 months ago
Daniel M Brasil 45d98959ac
Fix uncaught NoMethodError in POST `/api/v1/featured_tags` (#25063) 12 months ago
Claire 2a61f14753
Fix account confirmation flow not returning to app after captcha validation (#25057) 12 months ago
Renaud Chaput 8d6aea3326
Upgrade to React 18 (#24916) 12 months ago
Daniel M Brasil 4a22e72b9b
Improve test coverage for `/api/v1/admin/canonical_email_blocks` (#24985) 12 months ago
Matt Jankowski 325d5f0183
Regenerate rubocop-todo (#24846) 12 months ago
Claire e13d2edd47
Fix “Authorized applications” inefficiently and incorrectly getting last use date (#25060) 12 months ago
Daniel M Brasil ce8b5899ae
Fix POST `/api/v1/admin/domain_allows` returning 200 when no domain is specified (#24958) 12 months ago
Matt Jankowski e328ab7e5a
Implement pending specs for StatusesController (#23969) 12 months ago
Daniel M Brasil f3feb4c891
Improve test coverage for `/api/v1/admin/email_domain_blocks` (#25017) 12 months ago
Nick Schonning c0b9664a31
Autofix Rubocop spacing in config (#25022) 12 months ago
Emelia Smith 19f9098551
Allow reports with long comments from remote instances, but truncate (#25028) 12 months ago
Daniel M Brasil d51464283c
Improve test coverage for `/api/v1/admin/ip_blocks_controller` (#25031) 12 months ago
Nick Schonning 23a4ecf444
Remove duplicate JPG type (#25054) 12 months ago
Nick Schonning 7d805cfa90
Remove requestAnimationFrame test polyfill (#25056) 12 months ago
Claire 7bb8030cc1
Change OpenGraph-based embeds to allow fullscreen (#25058) 12 months ago
Frankie Roberto 36a77748b4
Order sessions by most-recent to least-recently updated (#25005) 12 months ago
Nick Schonning c1e70a2072
Cleanup and document bundle test/dev deps (#24457) 12 months ago
Nick Schonning ed349b14e2
Add Postgres 15 testing for migrations (#23887) 12 months ago
Nick Schonning 99e2e9b81f
Fix minor typos in comments and spec names (#21831) 12 months ago
Claire b805b7f021
Add tests for avatar/header in backup service (#25037) 12 months ago
dependabot[bot] 27ec8f297d
Bump jsdom from 21.1.2 to 22.0.0 (#24828) 12 months ago
Essem 5fd8d1e417
Fix oversight in backup service (#25034) 12 months ago
Matt Jankowski d34d94d08f
Add spec for migration warning module (#25033) 12 months ago
Claire 058898802a
Fix AvatarComposite and DisplayName referencing undefined props (#2222) 12 months ago
Claire 45ba9ada34
Fix race condition when reblogging a status (#25016) 12 months ago
Claire 5cd55d8aaf
Fix being able to vote on your own polls (#25015) 12 months ago
Claire bec6a1cad4
Add hCaptcha support (#25019) 12 months ago
Claire e60414792d
Add polling and automatic redirection to `/start` on email confirmation (#25013) 12 months ago
dependabot[bot] 2ce0b666a1
Bump pg-connection-string from 2.5.0 to 2.6.0 (#24999) 12 months ago
Claire 7b54e47d03
Fix being unable to load past a full page of filtered posts in Home timeline (#24930) 12 months ago
Claire aa4c9730f6
Change composer highlight border size to be more noticeable (#25010) 12 months ago
Claire 3ed3d54bf3
Fix reports not being closed when performing batch suspensions (#24988) 12 months ago
dependabot[bot] 6ce4fd1cf2
Bump thor from 1.2.1 to 1.2.2 (#25001) 12 months ago
dependabot[bot] e95e896f10
Bump capybara from 3.39.0 to 3.39.1 (#25004) 12 months ago
Nick Schonning cee4369cf5
Autofix Rubocop Lint/AmbiguousOperatorPrecedence (#25002) 12 months ago
dependabot[bot] 520462799f
Bump @typescript-eslint/eslint-plugin from 5.59.5 to 5.59.6 (#24998) 12 months ago
dependabot[bot] bbe4800b04
Bump @typescript-eslint/parser from 5.59.5 to 5.59.6 (#25000) 12 months ago
dependabot[bot] 4d6a8ee34a
Bump eslint-plugin-jsdoc from 43.1.1 to 44.2.4 (#24994) 12 months ago
Steven Munn 52d36f0f98
Fix spelling of "Lets" on the onboarding page after clicking the confirmation email (#24959) 12 months ago
Matt Jankowski 604e1c2b11
Remove usage of random sample values in specs (#24869) 1 year ago
Matt Jankowski b84bc2de5d
Replace i18n view spec with helper spec (#24966) 1 year ago
Renaud Chaput 2e1c6e93ad
Bump `mkdirp` major version (#24978) 1 year ago
Claire 054df2d67e
Merge pull request #2216 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
dependabot[bot] 713d217384
Bump eslint from 8.39.0 to 8.40.0 (#24919) 1 year ago
Matt Jankowski 679aca46da
I18n pluralization errors (#24963) 1 year ago
Daniel M Brasil 433ab0c9a3
Fix uncaught NoMethodError error in `/api/v1/admin/canonical_email_blocks/test` (#24947) 1 year ago
Claire 9015c2d646
Change profile updates to be sent to recently-mentioned servers (#24852) 1 year ago
Matt Jankowski 2c2d924942
Fix RSpec/RepeatedExampleGroupDescription cop (#24850) 1 year ago
Matt Jankowski bf3ebeb42f
Fix RSpec/SharedContext cop (#24847) 1 year ago
Christian Schmidt 5241f7b2fd
Fix UI crash in moderation interface when opening the media modal (#24816) 1 year ago
Matt Jankowski a610a02d4f
Fix RSpec/ScatteredSetup cop (#24848) 1 year ago
Daniel M Brasil 9cbda99941
Add test coverage for `Mastodon::IpBlocksCLI` (#24935) 1 year ago
Emelia Smith b8a2430642
Fix Onboarding Errors (#24883) 1 year ago
Claire 6b0942d107
Change AccessTokensVacuum to also delete expired tokens (#24868) 1 year ago
Eugen Rochko 3869e8c210
Change "Sign in" to "Login" (#24942) 1 year ago
Claire 0eed06073f
Fix videos being improperly positioned on safari (#24943) 1 year ago
Renaud Chaput 5eeb40bdbe
Add stricter ESLint rules for Typescript files (#24926) 1 year ago
Nick Schonning b878e3d8df
Enable ESLint react/no-deprecated (#24471) 1 year ago
たいち ひ 2d5e257938
Rewrite `logo.tsx` as FC (#24909) 1 year ago
Renaud Chaput 6f8db56a01
Disable RTK safety middlewares (#24936) 1 year ago
Claire f371464639 Remove our copy of image.d.ts as tsconfig already uses upstream's 1 year ago
Claire 96e99e2170 Run prettier on Typescript files 1 year ago
Claire facc7ab03c Merge commit '51b83ed19536b06ce3f57b260400ecec2d1dd187' into glitch-soc/merge-upstream 1 year ago
Renaud Chaput 5aa08826cf [Glitch] Type Redux store and middleware 1 year ago
Renaud Chaput a56c71faba [Glitch] Remove unused iOS agent sniffing function 1 year ago
Renaud Chaput 526fe33e2f [Glitch] Rework polyfills loading 1 year ago
fusagiko / takayamaki e22a88b512 [Glitch] Add more detailed type annotation for Account 1 year ago
Claire 1a664560cc Merge commit '6aeb162927e6f9bbfd597632a10d82d9656c2385' into glitch-soc/merge-upstream 1 year ago
fusagiko / takayamaki 349cae0b57
Add type annotation for DisplayName component (#24752) 1 year ago
fusagiko / takayamaki ab7716cff4
Rename Image component to ServerHeroImage (#24894) 1 year ago
Claire 0fff2b67de Disable broken onboarding code 1 year ago
Renaud Chaput 5f2071d055 [Glitch] Enforce stricter rules for Typescript files 1 year ago
Renaud Chaput b509b96504 [Glitch] Enforce React Rules of Hooks with eslint 1 year ago
Renaud Chaput 108720d7b0 [Glitch] Dont use CommonJS (`require`, `module.exports`) anywhere 1 year ago
Claire c81d1b0d38 Merge commit 'c8181eb0a41c4f5c1655d4e400cab071aee4182a' into glitch-soc/merge-upstream 1 year ago
たいち ひ 887112a065 [Glitch] Add TypeScript support for `mastodon` alias and image imports 1 year ago
Claire 42bdc2add9 Copy hooks/useHovering.ts to glitch-soc 1 year ago
Claire 8e806b6e88 Fix IconButton prop types in glitch-soc 1 year ago
Renaud Chaput 6415981056 [Glitch] Mark `wheel` events on scrollable list as passive 1 year ago
fusagiko / takayamaki f94eb65cf9 [Glitch] Rewrite Domain component as function component 1 year ago
fusagiko / takayamaki 468dfffd26 [Glitch] Use LayoutType from is_mobile in actions/app 1 year ago
たいち ひ 87a704f70b [Glitch] Rewrite RadioButton component as FC 1 year ago
たいち ひ bd851d3b58 [Glitch] Rewrite Image component as function component 1 year ago
たいち ひ 1edaf58fb9 [Glitch] Rewrite <NotSignedInIndicator /> as FC 1 year ago
Claire 8b568755ad Merge commit '89269e4b713e3291a5c8c29b8d2e7b950b60eb35' into glitch-soc/merge-upstream 1 year ago
Nick Schonning 51b83ed195
Use Prettier for ESLint formatting TypeScript (#23631) 1 year ago
Renaud Chaput 6aeb162927
Type Redux store and middleware (#24843) 1 year ago
Claire e1f466fbbe
Fix javascript on moderation interface (#24933) 1 year ago
Renaud Chaput 224d458f7e
Remove unused iOS agent sniffing function (#24931) 1 year ago
dependabot[bot] 72dcb2ef58
Bump @typescript-eslint/eslint-plugin from 5.59.2 to 5.59.5 (#24922) 1 year ago
dependabot[bot] a5ba98d2df
Bump @typescript-eslint/parser from 5.59.2 to 5.59.5 (#24921) 1 year ago
eggplants af7bf59b3e
Fix wrong documentation link (#24924) 1 year ago
Renaud Chaput a3a2414f0e
Rework polyfills loading (#24907) 1 year ago
Claire f08f6d20e6
Merge pull request #2215 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
Daniel M Brasil 536dd046d4
Add ability to block sign-ups from IP using the CLI (#24870) 1 year ago
Daniel M Brasil ffb3fef7db
Fix uncaught `ActiveRecord::StatementInvalid` in Mastodon::IpBlocksCLI (#24861) 1 year ago
Renaud Chaput aec486b4ec
Upgrade `uuid` to 9.0.0 (#24917) 1 year ago
fusagiko / takayamaki 6579e3af7d
Add more detailed type annotation for Account (#24815) 1 year ago
Renaud Chaput c8181eb0a4
Enforce stricter rules for Typescript files (#24910) 1 year ago
Renaud Chaput 64ec41d89c
Make Webpack fail on failed imports (#24908) 1 year ago
Renaud Chaput d9b93bd15e
Enforce React Rules of Hooks with eslint (#24911) 1 year ago
Renaud Chaput 955179fc55
Dont use CommonJS (`require`, `module.exports`) anywhere (#24913) 1 year ago
Renaud Chaput 89269e4b71
Mark `wheel` events on scrollable list as passive (#24914) 1 year ago
Renaud Chaput ea04f33f50 [Glitch] Fixes build errors from some previous TS-related commits 1 year ago
fusagiko / takayamaki 3d9e35375c [Glitch] Rewrite actions/app.ts and reducers/missed_updates.ts with createAction 1 year ago
Renaud Chaput a33d6c946a [Glitch] Remove MastodonMap TS type 1 year ago
fusagiko / takayamaki e8243d5bbd [Glitch] Add type annotation for some js files 1 year ago
Claire 5f0d2b6e3b Copy Typescript type definitions to glitch-soc 1 year ago
Claire f3af434c25 [Glitch] Fix incorrect import of redux store 1 year ago
fusagiko / takayamaki f4e3e309b1 [Glitch] use configureStore of redux-toolkit instead of createStore of redux 1 year ago
Eugen Rochko bbd0e9caa6 [Glitch] Add ALT badges to media that has alternative text in web UI 1 year ago
Claire a8939e9098 [Glitch] Change media elements to use aspect-ratio rather than compute height themselves 1 year ago
Claire 10f5329ddf [Glitch] Fix incorrect box shadow on avatar in thread view 1 year ago
fusagiko / takayamaki 9ab89bb832 [Glitch] Add type annotation for Blurhash component 1 year ago
fusagiko / takayamaki 20f1f3aa7d [Glitch] Add type annotation for IconButton component 1 year ago
Claire 8b31030fe4 Fix rubocop issues in glitch-soc-specific code 1 year ago
Claire d77fbbed73 Merge commit 'f877aa9d70d0d600961989b8e97c0e0ce3ac1db6' into glitch-soc/merge-upstream 1 year ago
Claire f89f3a8566
Fix glitch-soc's thread line styling (#2214) 1 year ago
Claire 61f3e0e95e
Merge pull request #2213 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
Eugen Rochko 8bf9bd5ac8 [Glitch] Fix n+1 query in settings migration 1 year ago
Eugen Rochko 75e28731a5 [Glitch] Fix transaction around settings migration 1 year ago
fusagiko / takayamaki aff2d55b80 [Glitch] Add type annotation for RelativeTimestamp component 1 year ago
fusagiko / takayamaki a49707dacb [Glitch] Rewrite Icon and IconWithBadge with typescript 1 year ago
Eugen Rochko 7835f8fd22 [Glitch] Fix icons having an image role 1 year ago
Claire e9eab013e7 [Glitch] Fix audio player width in thread view 1 year ago
Nick Schonning 51479f5c28 [Glitch] Add eslint-plugin-jsdoc 1 year ago
Christian Schmidt 09054f5485 [Glitch] Fix media description not being cleared 1 year ago
Claire 2d029dedd9 Merge commit '0ad2413b35287958f59073a5b63aecc659a64d98' into glitch-soc/merge-upstream 1 year ago
Claire 5d18840ab9
Fix more JS linting issues (#2212) 1 year ago
fusagiko / takayamaki 9818f34273
Rewrite Domain component as function component (#24896) 1 year ago
fusagiko / takayamaki 5bc8e2d1fd
Use LayoutType from is_mobile in actions/app (#24863) 1 year ago
Claire 16c5354b8c
Fix some more JS linting issues (#2211) 1 year ago
たいち ひ 7c1305b3a4
Add TypeScript support for `mastodon` alias and image imports (#24895) 1 year ago
たいち ひ 76264e3fe8
Rewrite RadioButton component as FC (#24897) 1 year ago
たいち ひ a65d2d1045
Rewrite Image component as function component (#24893) 1 year ago
たいち ひ 490ccbf40b
Rewrite <NotSignedInIndicator /> as FC (#24903) 1 year ago
たいち ひ 6fdbee240c
Rewrite <Check /> as FC (#24901) 1 year ago
Claire de74acbe0c
Fix some more Javascript linting issues and discrepancies with upstream (#2209) 1 year ago
Claire ed0a407888
Fix thread lines not being properly updated when new posts are received (#2210) 1 year ago
Plastikmensch 179e38cf15
Reset language to default when cancelling a reply (#2114) 1 year ago
Claire 3fb7fe14c6
Fix some of the Javascript linting issues, as well as bugs and unneeded divergences with upstream (#2208) 1 year ago
Claire 9b59748679
Fix rubocop warnings (#2206) 1 year ago
Claire 6f64c79ca4
Fix SCSS linting issues (#2207) 1 year ago
Claire a6207d243b
New Crowdin updates (#2202) 1 year ago
fusagiko / takayamaki 140aa6b054
Rewrite VerifiedBadge component as function component (#24892) 1 year ago
Matt Jankowski f877aa9d70
Use released version 4.1.0 of devise-two-factor (#24875) 1 year ago
Claire 746979f75d
Fix compose textarea scroll behavior (#24872) 1 year ago
Tim Campbell f258478395
Fixed mastodon version injection into containers via github actions (#24873) 1 year ago
mogaminsk c9e040fb24
Fix import data field type (#24874) 1 year ago
S.H 5811ccc611
Fix column back button error (#24867) 1 year ago
zunda c0ea33e3fc
Make it possible to upload audio and video to Heroku app (#24866) 1 year ago
Nick Schonning e675c10d19
Add production asset compile (#24839) 1 year ago
Tim Campbell ac41a9712e
Fixed mastodon version injection into containers via github actions (#24858) 1 year ago
Daniel M Brasil c9210af3ee
Add test coverage for `Mastodon::SettingsCLI` (#24856) 1 year ago
dependabot[bot] 64fae0efb5
Bump @babel/core from 7.21.5 to 7.21.8 (#24831) 1 year ago
Matt Jankowski 0b249ebdb0
Extract StatusSafeReblogInsert concern from Status (#24821) 1 year ago
Renaud Chaput 830e6cefae
Add version suffixes to nightly & edge image builds (#24823) 1 year ago
Nick Schonning 569b39256b
Bump rubocop-rails 2.19.1 with update .rubocop_todo.yml (#24469) 1 year ago
dependabot[bot] 880e661d53
Bump stylelint from 15.6.0 to 15.6.1 (#24829) 1 year ago
dependabot[bot] ff974395c2
Bump react-select from 5.7.2 to 5.7.3 (#24830) 1 year ago
dependabot[bot] 849d93e50a
Bump json-ld from 3.2.4 to 3.2.5 (#24832) 1 year ago
Claire c3c7d59072
Fix infinite loop in AccountsStatusesCleanupScheduler (#24840) 1 year ago
Nick Schonning f95125bd04
Fail ESLint for Warnings in CI (#24836) 1 year ago
Florin 27bafabb64
Fix Back button going outside the app (#24835) 1 year ago
Nick Schonning e1ebcc007d
Regenerate rubocop-todo (#24834) 1 year ago
Nick Schonning ff3b7069cf
Autofix Rubocop Style/ConcatArrayLiterals (#23755) 1 year ago
Nick Schonning da3bd913ae
Autofix Rubocop Style/HashSyntax (#23754) 1 year ago
Nick Schonning d5a185d721
Autofix Rubocop Style/CaseLikeIf (#23756) 1 year ago
Nick Schonning 1fe04f740a
Enable Rubocop Rails/FilePath (#23854) 1 year ago
Matt Jankowski c97b611b6b
Fix RSpec/InferredSpecType cop (#24736) 1 year ago
Matt Jankowski 710745e16b
Fix RSpec/ContextWording cop (#24739) 1 year ago
Matt Jankowski cf18cc2891
Fix RSpec/MultipleSubjects cop (#24738) 1 year ago
Matt Jankowski bdcd8a9e88
Misc spec cleanup (#24822) 1 year ago
Matt Jankowski 08fb9d300a
Spec coverage for settings/preferences/* controllers (#24825) 1 year ago
Matt Jankowski 2c6c398c60
Fix Performance/CollectionLiteralInLoop cop (#24819) 1 year ago
Matt Jankowski a1cca1c8b6
Update capistrano config lock version to match bundle (#24820) 1 year ago
Matt Jankowski d9a958fcf7
Fix Performance/RedundantMerge cop (#24817) 1 year ago
Nick Schonning b25860c509
Revert "Bump better_errors from 2.9.1 to 2.10.0 (#24779)" (#24827) 1 year ago
Claire a2a22bad23
Fix various edge cases with local moves (#24812) 1 year ago
Claire 1e75eb690d
Fix own posts not getting delivered to own lists (#24810) 1 year ago
Renaud Chaput 45579a26cf
Fixes build errors from some previous TS-related commits (#24811) 1 year ago
fusagiko / takayamaki 0999cb4601
Rewrite actions/app.ts and reducers/missed_updates.ts with createAction (#24801) 1 year ago
Claire c98b012583
Change Move handler to also move list memberships (#24808) 1 year ago
Renaud Chaput 9a52a7f7a0
Remove MastodonMap TS type (#24807) 1 year ago
fusagiko / takayamaki e38b391940
Add type annotation for some js files (#24787) 1 year ago
dependabot[bot] 9b8cb947a7
Bump better_errors from 2.9.1 to 2.10.0 (#24779) 1 year ago
Matt Jankowski 3df665fd23
Fix Lint/ConstantDefinitionInBlock cop (#24763) 1 year ago
Claire 8b636a29c6
Improve automatic post cleanup worker performances (#24785) 1 year ago
Matt Jankowski a0c9f2447e
Fix Performance/MethodObjectAsBlock cop (#24798) 1 year ago
Matt Jankowski 97385f27bd
Fix Performance/RedundantEqualityComparisonBlock cop (#24799) 1 year ago
Claire 9c1929efad
Fix incorrect import of redux store (#24805) 1 year ago
Claire d37c0a1060
Fix incorrect box shadow on avatar in thread view (#24800) 1 year ago
Matt Jankowski 668a19a2f3
Fix Performance/DeletePrefix cop (#24796) 1 year ago
Matt Jankowski 05e3abe9d9
Fix Lint/EmptyClass cop (#24795) 1 year ago
dependabot[bot] 8d61d2b0da
Bump axios from 1.3.6 to 1.4.0 (#24775) 1 year ago
dependabot[bot] 8f7c172eb8
Bump @babel/preset-typescript from 7.21.4 to 7.21.5 (#24776) 1 year ago
dependabot[bot] b0ebaeb691
Bump @babel/preset-env from 7.21.4 to 7.21.5 (#24773) 1 year ago
dependabot[bot] 1d49718a84
Bump @babel/runtime from 7.21.0 to 7.21.5 (#24771) 1 year ago
dependabot[bot] 14a7e414fc
Bump @babel/core from 7.21.4 to 7.21.5 (#24778) 1 year ago
fusagiko / takayamaki 8227af8dcc
use configureStore of redux-toolkit instead of createStore of redux (#24790) 1 year ago
dependabot[bot] 2839fbc733
Bump eslint-plugin-formatjs from 4.10.0 to 4.10.1 (#24770) 1 year ago
dependabot[bot] 4acf5f8971
Bump @typescript-eslint/eslint-plugin from 5.59.1 to 5.59.2 (#24768) 1 year ago
dependabot[bot] 4b87e2a8db
Bump @typescript-eslint/parser from 5.59.1 to 5.59.2 (#24774) 1 year ago
dependabot[bot] b75c353962
Bump yargs from 17.7.1 to 17.7.2 (#24769) 1 year ago
dependabot[bot] 18f58f4284
Bump jsdom from 21.1.1 to 21.1.2 (#24767) 1 year ago
Matt Jankowski 24491abf6d
Fix Rails/DeprecatedActiveModelErrorsMethods cop (#24742) 1 year ago
Matt Jankowski b5c4b47746
Fix Rails/ActiveRecordCallbacksOrder cop (#24689) 1 year ago
Matt Jankowski 38b2974a83
Extract AccountSearch concern from Account (#24716) 1 year ago
Matt Jankowski f1c1dd0118
Rename `with_lock` to `with_redis_lock` to avoid confusion with ActiveRecord's method (#24741) 1 year ago
Matt Jankowski a7df578f97
ApplicationHelper spec coverage, unused removal, tiny refactor (#24762) 1 year ago
dependabot[bot] c26b1b0a1c
Bump pg from 1.5.2 to 1.5.3 (#24772) 1 year ago
dependabot[bot] 389f0443c8
Bump cssnano from 6.0.0 to 6.0.1 (#24777) 1 year ago
Matt Jankowski 570079f8ce
Fix Performance/TimesMap cop (#24789) 1 year ago
Matt Jankowski bae694108a
Fix Performance/Count cop (#24793) 1 year ago
Claire 9189e90ff2
Add fallback redirection when getting a webfinger query `LOCAL_DOMAIN@LOCAL_DOMAIN` (#23600) 1 year ago
Matt Jankowski 5e060e1f44
Fix Performance/Sum cop (#24788) 1 year ago
Matt Jankowski 41eb49b984
Extract large route namespace blocks to separate files (#23914) 1 year ago
Claire a89b02af92
Check domain suspensions before trying to fetch resources (#24535) 1 year ago
Claire 1ed0ff30d3
Fix `tootctl accounts cull` crashing when encountering a domain resolving to a private address (#23378) 1 year ago
Claire b233da5996
Optimize archive export service and export zip files instead of gzipped tar files (#23360) 1 year ago
Eugen Rochko 8131a5b330
Add ALT badges to media that has alternative text in web UI (#24782) 1 year ago
Claire 6693a4fe7c
Change lists to be able to include accounts with pending follow requests (#19727) 1 year ago
Claire 598e63dad2
Change media elements to use aspect-ratio rather than compute height themselves (#24686) 1 year ago
Claire 1eb51bd749
Add request specs for caching behavior (#24592) 1 year ago
Matt Jankowski 88d33f361f
Fix Lint/DuplicateBranch cop (#24766) 1 year ago
fusagiko / takayamaki f50105779b
Add type annotation for Blurhash component (#24750) 1 year ago
fusagiko / takayamaki 5a5975d7f7
Add type annotation for IconButton component (#24753) 1 year ago
Claire 32a030dd74
Rewrite import feature (#21054) 1 year ago
Eugen Rochko 0ad2413b35
Fix n+1 query in settings migration (#24783) 1 year ago
Eugen Rochko f1c1fa1411
Fix transaction around settings migration (#24761) 1 year ago
Nick Schonning fc56eda94b
Bump stylelint-config-standard-scss from 7.0.1 to 9.0.0 (#24755) 1 year ago
fusagiko / takayamaki 15fd712464
Add type annotation for RelativeTimestamp component (#24749) 1 year ago
fusagiko / takayamaki 81f75b1e0e
Rewrite Icon and IconWithBadge with typescript (#24747) 1 year ago
Matt Jankowski c53fe9b753
Fix RSpec/BeforeAfterAll cop (#24737) 1 year ago
Matt Jankowski d902a707a3
Fix Rails/CompactBlank cop (#24690) 1 year ago
Matt Jankowski d00e45a7d3
Fix Rails/I18nLocaleAssignment cop (#24693) 1 year ago
Matt Jankowski af824db398
Fix Rails/InverseOf cop (#24732) 1 year ago
Claire c18884de32
Merge pull request #2198 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
Nick Schonning 6b95aaaa65
Remove empty HTTP error translations (#24210) 1 year ago
Josh McKinney 89c01383f9
fix: remove port 80 mapping in devcontainer (#24658) 1 year ago
Eugen Rochko 0a08e9d3d3
New Crowdin updates (#24678) 1 year ago
Mark Roszko c23d285b16
Remove the u in Favorite for non-gb english (#24667) 1 year ago
João Pedro Marques 8f6e290c7a
Adds new follower/following routes (#24601) 1 year ago
dependabot[bot] 0669822ae8
Bump eslint from 8.38.0 to 8.39.0 (#24636) 1 year ago
dependabot[bot] 242d7864f1
Bump @types/jest from 29.4.2 to 29.5.1 (#24630) 1 year ago
dependabot[bot] 56cf092058
Bump @types/yargs from 17.0.22 to 17.0.24 (#24388) 1 year ago
dependabot[bot] fa14976a5d
Bump connection_pool from 2.3.0 to 2.4.0 (#24290) 1 year ago
dependabot[bot] 819daeb651
Bump @types/lodash from 4.14.191 to 4.14.194 (#24576) 1 year ago
dependabot[bot] 921bef6799
Bump stylelint from 15.3.0 to 15.6.0 (#24635) 1 year ago
Daniel M Brasil e8fe941015
Fix `tootctl accounts approve --number N` not aproving N earliest registrations (#24605) 1 year ago
Matt Jankowski 2e43461100
Fix Rails/Output cop (#24687) 1 year ago
Matt Jankowski 5a2aa06a51
Fix Rails/Present cop (#24688) 1 year ago
Matt Jankowski bdc74086e6
Fix Rails/ContentTag cop (#24691) 1 year ago
Matt Jankowski 6e226f5a32
Fix Rails/ActionOrder cop (#24692) 1 year ago
Nick Schonning 470b8abb69
Run Rubocop with lint-staged on commit (#24644) 1 year ago
Matt Jankowski 60ac9e8634
Fix Rails/SquishedSQLHeredocs cop (#24694) 1 year ago
Matt Jankowski 8dcfb6e0ea
Fix Rails/HttpPositionalArguments cop (#24699) 1 year ago
Claire 678d836c7d
Fix pop-in player placeholder layout in thread view (#24715) 1 year ago
Claire cf1bc4bb93
Fix audio player width in thread view (#24713) 1 year ago
Nick Schonning f22b4e556c
Add eslint-plugin-jsdoc (#24719) 1 year ago
Christian Schmidt bfeccf6748
Fix media description not being cleared (#24720) 1 year ago
Matt Jankowski 274d561430
Enable local account key generation spec (#24728) 1 year ago
mogaminsk e0d075713f
Change i18n-fallbacks to English (#24727) 1 year ago
Matt Jankowski 4cfe52635c
Add pending spec for User.those_who_can (#24724) 1 year ago
Claire e79998a11a Restore translations from not-yet-ported onboarding changes as glitch-soc translations 1 year ago
Eugen Rochko 38eeed6cbf [Glitch] Change logo version in header based on screen size in web UI 1 year ago
Nick Schonning 1033598416 [Glitch] Enable formatjs/prefer-pound-in-plural 1 year ago
Claire edec08b970 Disable full-width media in thread view 1 year ago
Claire cb97a92954 [Glitch] Fix thread lines in right-to-left locales (#24714) 1 year ago
Claire 103b6de8b2 [Glitch] Fix sass warning about deprecated slash as division (#24653) 1 year ago
Eugen Rochko 7b01b7c3bf [Glitch] Add lines to threads in web UI 1 year ago
Eugen Rochko 8015297f9e [Glitch] Change label from "For you" to "People" on explore screen in web UI 1 year ago
Chike Nwaenie 374a109546 [Glitch] Change styling of the recommended accounts to allow bio to be more visible 1 year ago
Christian Schmidt 0091b28ffe [Glitch] Use CSS to trim long card descriptions 1 year ago
Claire 11b34a903a [Glitch] Fix infinite loop in emoji replacement code 1 year ago
Claire 0a813d96db [Glitch] Fix characters being emojified even when using Variation Selector 15 (text) 1 year ago
fusagiko / takayamaki 66bda4713e [Glitch] Allow `==` when null checking 1 year ago
Claire 612a1ee697 Fix `body_classes` test for glitch-soc 1 year ago
Claire 12b935fadf Merge branch 'main' into glitch-soc/merge-upstream 1 year ago
Claire 105f8687e4
Fix thread lines in right-to-left locales (#24714) 1 year ago
Claire 2a3a110f00
Fix wrong classes `audio` and `video` instead of `audio-player` and `video-player` in CSS (#24711) 1 year ago
Claire faa336e3f7
Change logged-out WebUI HTML pages to be cached for a few seconds (#24708) 1 year ago
Eugen Rochko 8979b70975
Add default post text to onboarding flow in web UI (#24705) 1 year ago
Claire 1c61869eed
Fix /api/v1/custom_emojis being cached even when unauthenticated API access is disallowed (#24665) 1 year ago
Eugen Rochko 6028d047b9
Change logo version in header based on screen size in web UI (#24707) 1 year ago
Eugen Rochko 2b0f1f365a
Remove display name input from sign-up form (#24704) 1 year ago
Eugen Rochko 7cf963eec2
Change label from "For you" to "People" on explore screen in web UI (#24706) 1 year ago
Claire a5bc4ea550
Fix refering to unused `preview-card` CSS class instead of `status-card` (#24696) 1 year ago
Matt Jankowski ece38b9318
Remove duplicate react helper method definitions (#24700) 1 year ago
Nick Schonning 8e514b1965
Unignore stuck Dependabot updates (#24670) 1 year ago
dependabot[bot] d9e9579832
Bump tesseract.js from 2.1.1 to 2.1.5 (#19084) 1 year ago
Daniel M Brasil 1d9969fadf
Fix `tootctl accounts create --reattach --force` not working with confirmed accounts (#24680) 1 year ago
Nick Schonning 49fad26eca
Drop EOL Ruby 2.7 (#24237) 1 year ago
Claire d8a06c1375
Fix preview cards layout in thread view (#24677) 1 year ago
Eugen Rochko d4511f2a76
New Crowdin updates (#24617) 1 year ago
Plastikmensch 1565af1caf
[Glitch] [Proposal] Make able to write React in Typescript (#2190) 1 year ago
Nick Schonning 5841f1af8c
Autofix Rubocop RSpec/MatchArray (#24675) 1 year ago
Nick Schonning a3393d0d07
Autofix Rubocop RSpec/MatchArray (#24050) 1 year ago
Matt Jankowski 91a8cd21d8
React component helper specs (#24072) 1 year ago
dependabot[bot] 3029aeb838
Bump pg from 1.4.6 to 1.5.2 (#24671) 1 year ago
dependabot[bot] 185a71f281
Bump rack from 2.2.6.4 to 2.2.7 (#24672) 1 year ago
dependabot[bot] b839babb39
Bump sass from 1.62.0 to 1.62.1 (#24668) 1 year ago
dependabot[bot] 785b0349eb
Bump lint-staged from 13.2.1 to 13.2.2 (#24669) 1 year ago
dependabot[bot] 872c4e1ef2
Bump glob from 10.0.0 to 10.2.2 (#24632) 1 year ago
Nick Schonning 90beba57d8
Autofix Rubocop Rails/ResponseParsedBody (#24051) 1 year ago
dependabot[bot] c7cd891e86
Bump brakeman from 5.4.0 to 5.4.1 (#24006) 1 year ago
Nick Schonning 6403d7841e
Add Dependabot ignores for stuck updates and those needing manual interventions (#23966) 1 year ago
Matias Lago Evia 93a84f4704
Add S3 region list reference to Scalingo config (#24152) 1 year ago
dependabot[bot] 2f5608e9e5
Bump sass from 1.61.0 to 1.62.0 (#24574) 1 year ago
dependabot[bot] 5f624954be
Bump @typescript-eslint/eslint-plugin from 5.59.0 to 5.59.1 (#24633) 1 year ago
dependabot[bot] 9650a5738a
Bump @typescript-eslint/parser from 5.59.0 to 5.59.1 (#24638) 1 year ago
Nick Schonning dcdc614bd2
Remove postcss-scss devDep (#24223) 1 year ago
dependabot[bot] b31ee9ab38
Bump json-schema from 3.0.0 to 4.0.0 (#24642) 1 year ago
dependabot[bot] 1820b55a11
Bump postcss from 8.4.22 to 8.4.23 (#24629) 1 year ago
dependabot[bot] 0c66358601
Bump prettier from 2.8.7 to 2.8.8 (#24631) 1 year ago
dependabot[bot] 855cf7802d
Bump chewy from 7.3.0 to 7.3.2 (#24637) 1 year ago
dependabot[bot] fba60094a2
Bump axios from 1.3.5 to 1.3.6 (#24640) 1 year ago
Claire b0bf6216e6
Fix /api/v1/instance/domain_blocks being unconditionally cached (#24662) 1 year ago
Claire 62ab7506d6
Fix /actor needlessly reading session cookie and varying on Signature (#24664) 1 year ago
Emelia Smith 301e03eb8c
Remove clustering from streaming API (#24655) 1 year ago
Tim Campbell 36631e40cc
Inf 123 dated nightly containers (#24656) 1 year ago
Claire 1527b02c6d
Fix sass warning about deprecated slash as division (#24653) 1 year ago
Claire 1419f90ef2
Fix some user-independent endpoints potentially reading session cookies (#24650) 1 year ago
Plastikmensch 678480d4d3
Fix small mistakes in RTL layout (#2182) 1 year ago
Plastikmensch aea7866161
Change `drawer--header` to `drawer__header` (#2189) 1 year ago
Claire 276c39361b
Fix anonymous visitors getting a session cookie on first visit (#24584) 1 year ago
Eugen Rochko 6084461cd0
Change unauthenticated responses to be cached in REST API (#24348) 1 year ago
Eugen Rochko c35e3cb6ac
Add more tips to onboarding flow in web UI (#24646) 1 year ago
Eugen Rochko 8099ba04be
Change hashtags and mentions in bios to open in-app in web UI (#24643) 1 year ago
Claire e9a79d46cd
Fix crash when SSO_ACCOUNT_SETTINGS is not defined (#24628) 1 year ago
Matt Jankowski 1ac9219b31
Update `attr_encrypted` & `devise-two-factor` gems (#24626) 1 year ago
Matt Jankowski 930d84d40e
Gem version bumps (#24131) 1 year ago
Claire f45961aa98
Add feature test for OAuth access grant (#24624) 1 year ago
Eugen Rochko 804aa8d501
Fix cutting off first letter of hashtag links sometimes in web UI (#24623) 1 year ago
Nick Schonning 2daa5a1549
Enable formatjs/prefer-pound-in-plural (#24622) 1 year ago
Eugen Rochko 290e4aba31
Add lines to threads in web UI (#24549) 1 year ago
dependabot[bot] 0c81eec239
Bump @typescript-eslint/eslint-plugin from 5.58.0 to 5.59.0 (#24573) 1 year ago
dependabot[bot] 03ea084f0d
Bump @typescript-eslint/parser from 5.58.0 to 5.59.0 (#24568) 1 year ago
Nick Schonning 0bfd9f7f73
Update Contributor Covenant to 2.1 (#23980) 1 year ago
Christian Schmidt 5141697323
Remove `tai` locale (#23880) 1 year ago
Nick Schonning 2904fd0fdd
Update Stylelint disable settings and ignores (#23776) 1 year ago
Nick Schonning 0c7ce98ff6
Add eslint-plugin-formatjs (#23976) 1 year ago
Nick Schonning ef3675d688
Remove empty Kushubian (csb) local files (#24151) 1 year ago
Matt Jankowski 0a5f0a8b20
Remove instance variables from helper usage (#24203) 1 year ago
Chike Nwaenie e1b4eeb636
Change styling of the recommended accounts to allow bio to be more visible (#24480) 1 year ago
Christian Schmidt e713c545b8
Use CSS to trim long card descriptions (#24265) 1 year ago
Nick Schonning 4687967176
Autofix Rubocop Style/NumericLiterals (#24468) 1 year ago
Claire 528b8e7e3a
Fix crash in `tootctl accounts create --reattach --force` (#24557) 1 year ago
Claire 58a1b2e330
Fix caching logic with regards to Accept-Language, Cookie, and Signature (#24604) 1 year ago
Claire 5dc3173ef8
Fix AccountsStatusesCleanupScheduler not spreading deletes across accounts correctly (#24607) 1 year ago
Eugen Rochko 0461f83320
Add new onboarding flow to web UI (#24619) 1 year ago
Claire 5b58ebb04f
Fix JS crashing if initial-state is not set (#2193) 1 year ago
Claire 2ebbfebfe9
Merge pull request #2192 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
Eugen Rochko 9d75b03ba4
New Crowdin updates (#24517) 1 year ago
fusagiko / takayamaki 9ef32ea570 [Glitch] Rewrite AnimatedNumber component with React hooks 1 year ago
fusagiko / takayamaki 799e9917e4 [Glitch] Rewrite GIFV component with React hooks 1 year ago
Eugen Rochko 6ea9137233 [Glitch] Add client-side validation for taken username in sign-up form 1 year ago
Claire bc7b3399fb [Glitch] Fix crash when trying to open the filter modal 1 year ago
Eugen Rochko 2f3dffb057 [Glitch] Add progress indicator to sign-up flow 1 year ago
Ivan Rodriguez a21a875dba [Glitch] Fix status title for statuses without text 1 year ago
Nick Schonning f2797276b2 [Glitch] typo: collapsable -> collapsible 1 year ago
Claire abfdafef1e Merge branch 'main' into glitch-soc/merge-upstream 1 year ago
Claire 501d6197c4
Change automatic post deletion thresholds and load detection (#24614) 1 year ago
Claire fbb4de3dbc
Fix infinite loop in emoji replacement code (#24615) 1 year ago
Claire b0eba1a060
Minor clean up and optimization of the automatic post deletion code (#24613) 1 year ago
dependabot[bot] 88ce59505e
Bump rubocop from 1.49.0 to 1.50.2 (#24580) 1 year ago
Claire 37886c28da
Fix characters being emojified even when using Variation Selector 15 (text) (#20949) 1 year ago
Daniel M Brasil faf657d709
Fix uncaught ActiveRecord::StatementInvalid exception in `Mastodon::AccountsCLI#approve` (#24590) 1 year ago
Tim Campbell c62604b5f6
Added manual running to nightly image build (#24598) 1 year ago
Tim Campbell e798b8615c
Added job to build nightly container (#24595) 1 year ago
fusagiko / takayamaki c1a7e38d2b
Allow `==` when null checking (#24593) 1 year ago
Eugen Rochko e98c86050a
Refactor `Cache-Control` and `Vary` definitions (#24347) 1 year ago
Robert R George 4db8230194
Add trend management to admin API (#24257) 1 year ago
dependabot[bot] 1153531e92
Bump faker from 3.1.1 to 3.2.0 (#24579) 1 year ago
dependabot[bot] 426e3cc3bc
Bump reselect from 4.1.7 to 4.1.8 (#24565) 1 year ago
dependabot[bot] fe1ac6b0b0
Bump postcss from 8.4.21 to 8.4.22 (#24570) 1 year ago
dependabot[bot] 2c72396feb
Bump json-ld from 3.2.3 to 3.2.4 (#24571) 1 year ago
dependabot[bot] 88ef71e971
Bump pghero from 3.3.1 to 3.3.2 (#24572) 1 year ago
dependabot[bot] a5e9128b74
Bump http-link-header from 1.1.0 to 1.1.1 (#24575) 1 year ago
dependabot[bot] 10ef3d9b41
Bump ox from 2.14.14 to 2.14.16 (#24577) 1 year ago
Daniel M Brasil 3afa1fda7a
Fix email confirmation skip option in `tootctl accounts modify USERNAME --email EMAIL --confirm` (#24578) 1 year ago
Heitor de Melo Cardozo bc75e62ca6
Change moderation search an account using the username with @ (#24242) 1 year ago
fusagiko / takayamaki ab740f464a
Rewrite AnimatedNumber component with React hooks (#24559) 1 year ago
Claire 85b1b45820
Fix crash in NotifyService when trying to send an email notification for polls (#24558) 1 year ago
Claire f30c5e7f15
Merge pull request #2181 from ClearlyClaire/glitch-soc/merge-upstream 1 year ago
Heitor de Melo Cardozo 4601e0dcbb
Add user handle to notification mail recipient address (#24240) 1 year ago
Claire bc4745f482
Fix crash when trying to open the filter modal (#24556) 1 year ago
Nick Schonning ca447d3007
Update Jest testing to include Typescript (#24555) 1 year ago
fusagiko / takayamaki 9f8d34620b
Rewrite AvatarOverlay component with React hooks (#24543) 1 year ago
Eugen Rochko 34f8e696e2 [Glitch] Change all components to use the same error page in web UI 1 year ago
Claire a3c05640f7 [Glitch] Add “In Memoriam” banner back to profiles 1 year ago
Claire cb0562f32c [Glitch] Fix tab arrows on RTL layouts 1 year ago
Claire f9a9f9344b Merge branch 'main' into glitch-soc/merge-upstream 1 year ago
fusagiko / takayamaki cf3fa1e814
Rewrite GIFV component with React hooks (#24552) 1 year ago
Eugen Rochko e5c0b16735
Add progress indicator to sign-up flow (#24545) 1 year ago
Eugen Rochko 955ec252a4
Add client-side validation for taken username in sign-up form (#24546) 1 year ago
Ivan Rodriguez f05fb51ecb
Fix status title for statuses without text (#24359) 1 year ago
Matt Jankowski 10f0de4212
Refactor race condition reblog service spec (#24526) 1 year ago
Daniel M Brasil b0800d602e
tootctl: add --approve option to tootctl accounts create (#24533) 1 year ago
Nick Schonning d02aa274be
typo: collapsable -> collapsible (#24521) 1 year ago
Claire af49d93fd6
Fix tab arrows on RTL layouts (#24520) 1 year ago
Claire 8f0b0435ab
Fix missing translation strings in en.json and defaultMessages.json (#24518) 1 year ago
Claire 7a0a79e6b3
Fix check-i18n when there are missing strings in other languages than english (#24519) 1 year ago
Claire 86ad43173f
Add “In Memoriam” banner back to profiles (#23614) 1 year ago
dependabot[bot] 722c0011d1
Bump chewy from 7.2.7 to 7.3.0 (#24507) 1 year ago
Eugen Rochko c5eba06d8c
New Crowdin updates (#24447) 1 year ago
Claire f53d009778
Refactor `Status._insert_record` slightly and tighten the test around reblogs of discarded statuses (#24516) 1 year ago
Eugen Rochko cee357d538
Change all components to use the same error page in web UI (#24512) 1 year ago
Kuba Suder aca2cd1528
fixed typo in a constant name (#24511) 1 year ago
Eugen Rochko f9940eba2f
Bump nokogiri from 1.14.2 to 1.14.3 (#24510) 1 year ago
dependabot[bot] ce50f04f0a
Bump glob from 9.3.4 to 10.0.0 (#24490) 1 year ago
dependabot[bot] 458e49c40c
Bump @typescript-eslint/eslint-plugin from 5.55.0 to 5.58.0 (#24488) 1 year ago
dependabot[bot] 8ffa11740f
Bump @typescript-eslint/parser from 5.55.0 to 5.58.0 (#24494) 1 year ago
dependabot[bot] 0765aeba38
Bump eslint from 8.36.0 to 8.38.0 (#24493) 1 year ago
Claire 4c457a350b
Fix check-i18n task complaining about translated files (#24501) 1 year ago
Claire 8eeb0ae7c0
Explicitly enable `@babel/plugin-proposal-optional-chaining` to fix build failures (#24504) 1 year ago
dependabot[bot] fe841b6bb6
Bump sass from 1.60.0 to 1.61.0 (#24487) 1 year ago
dependabot[bot] b9efca65e3
Bump net-ldap from 0.17.1 to 0.18.0 (#24484) 1 year ago
dependabot[bot] b6e353fde1
Bump rimraf from 4.4.1 to 5.0.0 (#24492) 1 year ago
dependabot[bot] 6502fcb5cf
Bump aws-sdk-s3 from 1.120.0 to 1.120.1 (#24483) 1 year ago
dependabot[bot] 4a23ee4b9d
Bump addressable from 2.8.2 to 2.8.4 (#24482) 1 year ago
dependabot[bot] ccd74ecd10
Bump @babel/plugin-transform-runtime from 7.21.0 to 7.21.4 (#24394) 1 year ago
dependabot[bot] b178fd3f92
Bump @babel/preset-env from 7.20.2 to 7.21.4 (#24382) 1 year ago
dependabot[bot] 7d7cfeaa06
Bump @babel/preset-typescript from 7.21.0 to 7.21.4 (#24396) 1 year ago
dependabot[bot] 999d992c10
Bump @babel/core from 7.21.3 to 7.21.4 (#24386) 1 year ago
Matt Jankowski 36eeb70d53
Spec coverage on Settings/ controllers specs (#24221) 1 year ago
Matt Jankowski a2a66300d9
Clean up the post deployment migration generator (#24233) 1 year ago
dependabot[bot] 3c7053a2db
Bump axios from 1.3.4 to 1.3.5 (#24485) 1 year ago
dependabot[bot] 881326ff61
Bump typescript from 5.0.3 to 5.0.4 (#24489) 1 year ago
dependabot[bot] 08d318909c
Bump lint-staged from 13.2.0 to 13.2.1 (#24491) 1 year ago
dependabot[bot] d1aee44ff8
Bump oj from 3.14.2 to 3.14.3 (#24496) 1 year ago
dependabot[bot] 738e179a88
Bump rubocop-performance from 1.16.0 to 1.17.1 (#24497) 1 year ago
dependabot[bot] 376b429f94
Bump stackprof from 0.2.24 to 0.2.25 (#24498) 1 year ago
  1. 3
      .bundler-audit.yml
  2. 6
      .devcontainer/Dockerfile
  3. 49
      .devcontainer/codespaces/devcontainer.json
  4. 28
      .devcontainer/devcontainer.json
  5. 4
      .devcontainer/docker-compose.yml
  6. 4
      .env.vagrant
  7. 196
      .eslintrc.js
  8. 3
      .github/FUNDING.yml
  9. 56
      .github/ISSUE_TEMPLATE/1.bug_report.yml
  10. 76
      .github/ISSUE_TEMPLATE/1.web_bug_report.yml
  11. 65
      .github/ISSUE_TEMPLATE/2.server_bug_report.yml
  12. 0
      .github/ISSUE_TEMPLATE/3.feature_request.yml
  13. 124
      .github/renovate.json5
  14. 99
      .github/workflows/build-container-image.yml
  15. 56
      .github/workflows/build-image.yml
  16. 42
      .github/workflows/build-nightly.yml
  17. 41
      .github/workflows/build-push-pr.yml
  18. 28
      .github/workflows/build-releases.yml
  19. 40
      .github/workflows/bundler-audit.yml
  20. 5
      .github/workflows/check-i18n.yml
  21. 2
      .github/workflows/codeql.yml
  22. 78
      .github/workflows/crowdin-download.yml
  23. 36
      .github/workflows/crowdin-upload.yml
  24. 5
      .github/workflows/lint-css.yml
  25. 3
      .github/workflows/lint-haml.yml
  26. 7
      .github/workflows/lint-js.yml
  27. 5
      .github/workflows/lint-json.yml
  28. 8
      .github/workflows/lint-md.yml
  29. 12
      .github/workflows/lint-ruby.yml
  30. 5
      .github/workflows/lint-yml.yml
  31. 13
      .github/workflows/rebase-needed.yml
  32. 21
      .github/workflows/test-image-build.yml
  33. 9
      .github/workflows/test-js.yml
  34. 13
      .github/workflows/test-migrations-one-step.yml
  35. 13
      .github/workflows/test-migrations-two-step.yml
  36. 245
      .github/workflows/test-ruby.yml
  37. 3
      .gitignore
  38. 5
      .haml-lint.yml
  39. 89
      .haml-lint_todo.yml
  40. 2
      .nvmrc
  41. 7
      .prettierignore
  42. 3
      .prettierrc.js
  43. 2
      .profile
  44. 154
      .rubocop.yml
  45. 1876
      .rubocop_todo.yml
  46. 1654
      AUTHORS.md
  47. 1
      Aptfile
  48. 446
      CHANGELOG.md
  49. 15
      Capfile
  50. 23
      Dockerfile
  51. 3
      FEDERATION.md
  52. 145
      Gemfile
  53. 567
      Gemfile.lock
  54. 2
      Procfile.dev
  55. 4
      Rakefile
  56. 20
      SECURITY.md
  57. 44
      Vagrantfile
  58. 57
      app/chewy/accounts_index.rb
  59. 12
      app/chewy/instances_index.rb
  60. 67
      app/chewy/public_statuses_index.rb
  61. 72
      app/chewy/statuses_index.rb
  62. 26
      app/chewy/tags_index.rb
  63. 10
      app/controllers/about_controller.rb
  64. 7
      app/controllers/accounts_controller.rb
  65. 4
      app/controllers/activitypub/base_controller.rb
  66. 3
      app/controllers/activitypub/collections_controller.rb
  67. 3
      app/controllers/activitypub/followers_synchronizations_controller.rb
  68. 8
      app/controllers/activitypub/outboxes_controller.rb
  69. 3
      app/controllers/activitypub/replies_controller.rb
  70. 8
      app/controllers/admin/announcements_controller.rb
  71. 6
      app/controllers/admin/base_controller.rb
  72. 10
      app/controllers/admin/dashboard_controller.rb
  73. 44
      app/controllers/admin/domain_blocks_controller.rb
  74. 2
      app/controllers/admin/instances_controller.rb
  75. 8
      app/controllers/admin/roles_controller.rb
  76. 8
      app/controllers/admin/rules_controller.rb
  77. 18
      app/controllers/admin/software_updates_controller.rb
  78. 8
      app/controllers/admin/warning_presets_controller.rb
  79. 23
      app/controllers/admin/webhooks_controller.rb
  80. 13
      app/controllers/api/base_controller.rb
  81. 1
      app/controllers/api/v1/accounts/credentials_controller.rb
  82. 1
      app/controllers/api/v1/accounts/follower_accounts_controller.rb
  83. 1
      app/controllers/api/v1/accounts/following_accounts_controller.rb
  84. 1
      app/controllers/api/v1/accounts/lookup_controller.rb
  85. 1
      app/controllers/api/v1/accounts/statuses_controller.rb
  86. 3
      app/controllers/api/v1/accounts_controller.rb
  87. 2
      app/controllers/api/v1/admin/canonical_email_blocks_controller.rb
  88. 22
      app/controllers/api/v1/admin/domain_allows_controller.rb
  89. 20
      app/controllers/api/v1/admin/domain_blocks_controller.rb
  90. 18
      app/controllers/api/v1/admin/email_domain_blocks_controller.rb
  91. 14
      app/controllers/api/v1/admin/ip_blocks_controller.rb
  92. 74
      app/controllers/api/v1/admin/tags_controller.rb
  93. 72
      app/controllers/api/v1/admin/trends/links/preview_card_providers_controller.rb
  94. 31
      app/controllers/api/v1/admin/trends/links_controller.rb
  95. 31
      app/controllers/api/v1/admin/trends/statuses_controller.rb
  96. 23
      app/controllers/api/v1/admin/trends/tags_controller.rb
  97. 6
      app/controllers/api/v1/apps/credentials_controller.rb
  98. 2
      app/controllers/api/v1/bookmarks_controller.rb
  99. 20
      app/controllers/api/v1/conversations_controller.rb
  100. 4
      app/controllers/api/v1/custom_emojis_controller.rb
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,3 +0,0 @@
---
ignore:
- CVE-2015-9284 # Mitigation following https://github.com/omniauth/omniauth/wiki/Resolving-CVE-2015-9284#mitigating-in-rails-applications

@ -1,13 +1,9 @@
# For details, see https://github.com/devcontainers/images/tree/main/src/ruby
FROM mcr.microsoft.com/devcontainers/ruby:0-3.2-bullseye
FROM mcr.microsoft.com/devcontainers/ruby:1-3.2-bullseye
# Install Rails
# RUN gem install rails webdrivers
# Default value to allow debug server to serve content over GitHub Codespace's port forwarding service
# The value is a comma-separated list of allowed domains
ENV RAILS_DEVELOPMENT_HOSTS=".githubpreview.dev,.preview.app.github.dev,.app.github.dev"
ARG NODE_VERSION="16"
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"

@ -0,0 +1,49 @@
{
"name": "Mastodon on GitHub Codespaces",
"dockerComposeFile": "../docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/sshd:1": {}
},
"runServices": ["app", "db", "redis"],
"forwardPorts": [3000, 4000],
"portsAttributes": {
"3000": {
"label": "web",
"onAutoForward": "notify"
},
"4000": {
"label": "stream",
"onAutoForward": "silent"
}
},
"otherPortsAttributes": {
"onAutoForward": "silent"
},
"remoteEnv": {
"LOCAL_DOMAIN": "${localEnv:CODESPACE_NAME}-3000.app.github.dev",
"LOCAL_HTTPS": "true",
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
"DISABLE_FORGERY_REQUEST_PROTECTION": "true",
"ES_ENABLED": "",
"LIBRE_TRANSLATE_ENDPOINT": ""
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": ".devcontainer/post-create.sh",
"waitFor": "postCreateCommand",
"customizations": {
"vscode": {
"settings": {},
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}
}
}

@ -1,31 +1,39 @@
// For more details, see https://aka.ms/devcontainer.json.
{
"name": "Mastodon",
"name": "Mastodon on local machine",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/sshd:1": {}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// This can be used to network with other containers or the host.
"forwardPorts": [3000, 4000],
// Use 'postCreateCommand' to run commands after the container is created.
"portsAttributes": {
"3000": {
"label": "web",
"onAutoForward": "notify",
"requireLocalPort": true
},
"4000": {
"label": "stream",
"onAutoForward": "silent",
"requireLocalPort": true
}
},
"otherPortsAttributes": {
"onAutoForward": "silent"
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": ".devcontainer/post-create.sh",
"waitFor": "postCreateCommand",
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {},
// Add the IDs of extensions you want installed when the container is created.
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}
}

@ -25,8 +25,8 @@ services:
command: sleep infinity
ports:
- '127.0.0.1:3000:3000'
- '127.0.0.1:3035:3035'
- '127.0.0.1:4000:4000'
- '127.0.0.1:80:3000'
networks:
- external_network
- internal_network
@ -70,7 +70,7 @@ services:
hard: -1
libretranslate:
image: libretranslate/libretranslate:v1.3.10
image: libretranslate/libretranslate:v1.3.12
restart: unless-stopped
volumes:
- lt-data:/home/libretranslate/.local

@ -2,3 +2,7 @@ VAGRANT=true
LOCAL_DOMAIN=mastodon.local
BIND=0.0.0.0
DB_HOST=/var/run/postgresql/
ES_ENABLED=true
ES_HOST=localhost
ES_PORT=9200

@ -4,9 +4,11 @@ module.exports = {
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:jsx-a11y/recommended',
'plugin:import/recommended',
'plugin:promise/recommended',
'plugin:jsdoc/recommended',
],
env: {
@ -27,6 +29,7 @@ module.exports = {
'import',
'promise',
'@typescript-eslint',
'formatjs',
],
parserOptions: {
@ -51,29 +54,17 @@ module.exports = {
'\\.(css|scss|json)$',
],
'import/resolver': {
node: {
paths: ['app/javascript'],
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
typescript: {},
},
},
rules: {
'brace-style': 'warn',
'comma-dangle': ['error', 'always-multiline'],
'comma-spacing': [
'warn',
{
before: false,
after: true,
},
],
'comma-style': ['warn', 'last'],
'consistent-return': 'error',
'dot-notation': 'error',
eqeqeq: 'error',
indent: ['warn', 2],
eqeqeq: ['error', 'always', { 'null': 'ignore' }],
'indent': ['error', 2],
'jsx-quotes': ['error', 'prefer-single'],
'semi': ['error', 'always'],
'no-case-declarations': 'off',
'no-catch-shadow': 'error',
'no-console': [
@ -91,8 +82,16 @@ module.exports = {
{ property: 'substring', message: 'Use .slice instead of .substring.' },
{ property: 'substr', message: 'Use .slice instead of .substr.' },
],
'no-restricted-syntax': [
'error',
{
// eslint-disable-next-line no-restricted-syntax
selector: 'Literal[value=/•/], JSXText[value=/•/]',
// eslint-disable-next-line no-restricted-syntax
message: "Use '·' (middle dot) instead of '•' (bullet)",
},
],
'no-self-assign': 'off',
'no-trailing-spaces': 'warn',
'no-unused-expressions': 'error',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': [
@ -100,34 +99,26 @@ module.exports = {
{
vars: 'all',
args: 'after-used',
destructuredArrayIgnorePattern: '^_',
ignoreRestSiblings: true,
},
],
'object-curly-spacing': ['error', 'always'],
'padded-blocks': [
'error',
{
classes: 'always',
},
],
quotes: ['error', 'single'],
semi: 'error',
'valid-typeof': 'error',
'react/jsx-filename-extension': ['error', { extensions: ['.jsx', 'tsx'] }],
'react/jsx-boolean-value': 'error',
'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
'react/jsx-curly-spacing': 'error',
'react/display-name': 'off',
'react/jsx-fragments': ['error', 'syntax'],
'react/jsx-equals-spacing': 'error',
'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
'react/jsx-indent': ['error', 2],
'react/jsx-no-bind': 'error',
'react/jsx-no-useless-fragment': 'error',
'react/jsx-no-target-blank': 'off',
'react/jsx-tag-spacing': 'error',
'react/jsx-uses-react': 'off', // not needed with new JSX transform
'react/jsx-wrap-multilines': 'error',
'react/no-deprecated': 'off',
'react/no-unknown-property': 'off',
'react/react-in-jsx-scope': 'off', // not needed with new JSX transform
'react/self-closing-comp': 'error',
// recommended values found in https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/src/index.js
@ -190,11 +181,14 @@ module.exports = {
{
js: 'never',
jsx: 'never',
mjs: 'never',
ts: 'never',
tsx: 'never',
},
],
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-anonymous-default-export': 'error',
'import/no-extraneous-dependencies': [
'error',
{
@ -206,8 +200,80 @@ module.exports = {
],
},
],
'import/no-amd': 'error',
'import/no-commonjs': 'error',
'import/no-import-module-exports': 'error',
'import/no-relative-packages': 'error',
'import/no-self-import': 'error',
'import/no-useless-path-segments': 'error',
'import/no-webpack-loader-syntax': 'error',
'import/order': [
'error',
{
alphabetize: { order: 'asc' },
'newlines-between': 'always',
groups: [
'builtin',
'external',
'internal',
'parent',
['index', 'sibling'],
'object',
],
pathGroups: [
// React core packages
{
pattern: '{react,react-dom,react-dom/client,prop-types}',
group: 'builtin',
position: 'after',
},
// I18n
{
pattern: '{react-intl,intl-messageformat}',
group: 'builtin',
position: 'after',
},
// Common React utilities
{
pattern: '{classnames,react-helmet,react-router-dom}',
group: 'external',
position: 'before',
},
// Immutable / Redux / data store
{
pattern: '{immutable,react-redux,react-immutable-proptypes,react-immutable-pure-component,reselect}',
group: 'external',
position: 'before',
},
// Internal packages
{
pattern: '{mastodon/**}',
group: 'internal',
position: 'after',
},
{
pattern: '{flavours/glitch-soc/**}',
group: 'internal',
position: 'after',
},
],
pathGroupsExcludedImportTypes: [],
},
],
// Forbid imports from vanilla in glitch flavour
'import/no-restricted-paths': [
'error',
{
zones: [{
target: 'app/javascript/flavours/glitch/',
from: 'app/javascript/mastodon/',
message: 'Import from /flavours/glitch/ instead'
}]
}
],
'promise/always-return': 'off',
'promise/catch-or-return': [
'error',
@ -218,6 +284,33 @@ module.exports = {
'promise/no-callback-in-promise': 'off',
'promise/no-nesting': 'off',
'promise/no-promise-in-callback': 'off',
'formatjs/blocklist-elements': 'error',
'formatjs/enforce-default-message': ['error', 'literal'],
'formatjs/enforce-description': 'off', // description values not currently used
'formatjs/enforce-id': 'off', // Explicit IDs are used in the project
'formatjs/enforce-placeholders': 'off', // Issues in short_number.jsx
'formatjs/enforce-plural-rules': 'error',
'formatjs/no-camel-case': 'off', // disabledAccount is only non-conforming
'formatjs/no-complex-selectors': 'error',
'formatjs/no-emoji': 'error',
'formatjs/no-id': 'off', // IDs are used for translation keys
'formatjs/no-invalid-icu': 'error',
'formatjs/no-literal-string-in-jsx': 'off', // Should be looked at, but mainly flagging punctuation outside of strings
'formatjs/no-multiple-plurals': 'off', // Only used by hashtag.jsx
'formatjs/no-multiple-whitespaces': 'error',
'formatjs/no-offset': 'error',
'formatjs/no-useless-message': 'error',
'formatjs/prefer-formatted-message': 'error',
'formatjs/prefer-pound-in-plural': 'error',
'jsdoc/check-types': 'off',
'jsdoc/no-undefined-types': 'off',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-property-description': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/require-returns': 'off',
},
overrides: [
@ -226,6 +319,8 @@ module.exports = {
'*.config.js',
'.*rc.js',
'ide-helper.js',
'config/webpack/**/*',
'config/formatjs-formatter.js',
],
env: {
@ -235,6 +330,10 @@ module.exports = {
parserOptions: {
sourceType: 'script',
},
rules: {
'import/no-commonjs': 'off',
},
},
{
files: [
@ -244,16 +343,41 @@ module.exports = {
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/strict-type-checked',
'plugin:@typescript-eslint/stylistic-type-checked',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:jsx-a11y/recommended',
'plugin:import/recommended',
'plugin:import/typescript',
'plugin:promise/recommended',
'plugin:jsdoc/recommended-typescript',
'plugin:prettier/recommended',
],
parserOptions: {
project: true,
tsconfigRootDir: __dirname,
},
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
'@typescript-eslint/consistent-type-definitions': ['warn', 'interface'],
'@typescript-eslint/consistent-type-exports': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
"@typescript-eslint/prefer-nullish-coalescing": ['error', {ignorePrimitives: {boolean: true}}],
'jsdoc/require-jsdoc': 'off',
// Those rules set stricter rules for TS files
// to enforce better practices when converting from JS
'import/no-default-export': 'warn',
'react/prefer-stateless-function': 'warn',
'react/function-component-definition': ['error', { namedComponents: 'arrow-function' }],
'react/jsx-uses-react': 'off', // not needed with new JSX transform
'react/react-in-jsx-scope': 'off', // not needed with new JSX transform
'react/prop-types': 'off',
},
},
{
@ -266,5 +390,13 @@ module.exports = {
jest: true,
},
},
{
files: [
'streaming/**/*',
],
rules: {
'import/no-commonjs': 'off',
},
},
],
};

@ -1,3 +0,0 @@
patreon: mastodon
open_collective: mastodon
custom: https://sponsor.joinmastodon.org

@ -1,56 +0,0 @@
name: Bug Report
description: If something isn't working as expected
labels: [bug]
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: textarea
attributes:
label: Specifications
description: |
What version or commit hash of Mastodon did you find this bug in?
If a front-end issue, what browser and operating systems were you using?
placeholder: |
Mastodon 3.5.3 (or Edge)
Ruby 2.7.6 (or v3.1.2)
Node.js 16.18.0
Google Chrome 106.0.5249.119
Firefox 105.0.3
etc...
validations:
required: true

@ -0,0 +1,76 @@
name: Bug Report (Web Interface)
description: If you are using Mastodon's web interface and something is not working as expected
labels: [bug, 'status/to triage', 'area/web interface']
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: input
attributes:
label: Mastodon instance
description: The address of the Mastodon instance where you experienced the issue
placeholder: mastodon.social
validations:
required: true
- type: input
attributes:
label: Mastodon version
description: |
This is displayed at the bottom of the About page, eg. `v4.1.2+nightly-20230627`
placeholder: v4.1.2
validations:
required: true
- type: input
attributes:
label: Browser name and version
description: |
What browser are you using when getting this bug? Please specify the version as well.
placeholder: Firefox 105.0.3
validations:
required: true
- type: input
attributes:
label: Operating system
description: |
What OS are you running? Please specify the version as well.
placeholder: macOS 13.4.1
validations:
required: true
- type: textarea
attributes:
label: Technical details
description: |
Any additional technical details you may have. This can include the full error log, inspector's output…
validations:
required: false

@ -0,0 +1,65 @@
name: Bug Report (server / API)
description: |
If something is not working as expected, but is not from using the web interface.
labels: [bug, 'status/to triage']
body:
- type: markdown
attributes:
value: |
Make sure that you are submitting a new bug that was not previously reported or already fixed.
Please use a concise and distinct title for the issue.
- type: textarea
attributes:
label: Steps to reproduce the problem
description: What were you trying to do?
value: |
1.
2.
3.
...
validations:
required: true
- type: input
attributes:
label: Expected behaviour
description: What should have happened?
validations:
required: true
- type: input
attributes:
label: Actual behaviour
description: What happened?
validations:
required: true
- type: textarea
attributes:
label: Detailed description
validations:
required: false
- type: input
attributes:
label: Mastodon instance
description: The address of the Mastodon instance where you experienced the issue
placeholder: mastodon.social
validations:
required: false
- type: input
attributes:
label: Mastodon version
description: |
This is displayed at the bottom of the About page, eg. `v4.1.2+nightly-20230627`
placeholder: v4.1.2
validations:
required: false
- type: textarea
attributes:
label: Technical details
description: |
Any additional technical details you may have, like logs or error traces
value: |
If this is happening on your own Mastodon server, please fill out those:
- Ruby version: (from `ruby --version`, eg. v3.1.2)
- Node.js version: (from `node --version`, eg. v18.16.0)
validations:
required: false

@ -0,0 +1,124 @@
{
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [
'config:recommended',
':labels(dependencies)',
':maintainLockFilesMonthly', // update non-direct dependencies monthly
':prConcurrentLimitNone', // Remove limit for open PRs at any time.
':prHourlyLimit2', // Rate limit PR creation to a maximum of two per hour.
],
minimumReleaseAge: '3', // Wait 3 days after the package has been published before upgrading it
// packageRules order is important, they are applied from top to bottom and are merged,
// meaning the most important ones must be at the bottom, for example grouping rules
// If we do not want a package to be grouped with others, we need to set its groupName
// to `null` after any other rule set it to something.
dependencyDashboardHeader: 'This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. Before approving any upgrade: read the description and comments in the [`renovate.json5` file](https://github.com/mastodon/mastodon/blob/main/.github/renovate.json5).',
packageRules: [
{
// Require Dependency Dashboard Approval for major version bumps of these node packages
matchManagers: ['npm'],
matchPackageNames: [
'tesseract.js', // Requires code changes
'react-hotkeys', // Requires code changes
// Requires Webpacker upgrade or replacement
'@types/webpack',
'babel-loader',
'compression-webpack-plugin',
'css-loader',
'imports-loader',
'mini-css-extract-plugin',
'postcss-loader',
'sass-loader',
'terser-webpack-plugin',
'webpack',
'webpack-assets-manifest',
'webpack-bundle-analyzer',
'webpack-dev-server',
'webpack-cli',
// react-router: Requires manual upgrade
'history',
'react-router-dom',
],
matchUpdateTypes: ['major'],
dependencyDashboardApproval: true,
},
{
// Require Dependency Dashboard Approval for major version bumps of these Ruby packages
matchManagers: ['bundler'],
matchPackageNames: [
'rack', // Needs to be synced with Rails version
'sprockets', // Requires manual upgrade https://github.com/rails/sprockets/blob/master/UPGRADING.md#guide-to-upgrading-from-sprockets-3x-to-4x
'strong_migrations', // Requires manual upgrade
'sidekiq', // Requires manual upgrade
'sidekiq-unique-jobs', // Requires manual upgrades and sync with Sidekiq version
'redis', // Requires manual upgrade and sync with Sidekiq version
],
matchUpdateTypes: ['major'],
dependencyDashboardApproval: true,
},
{
// Update Github Actions and Docker images weekly
matchManagers: ['github-actions', 'dockerfile', 'docker-compose'],
extends: ['schedule:weekly'],
},
{
// Require Dependency Dashboard Approval for major & minor bumps for the ruby image, this needs to be synced with .ruby-version
matchManagers: ['dockerfile'],
matchPackageNames: ['moritzheiber/ruby-jemalloc'],
matchUpdateTypes: ['minor', 'major'],
dependencyDashboardApproval: true,
},
{
// Require Dependency Dashboard Approval for major bumps for the node image, this needs to be synced with .nvmrc
matchManagers: ['dockerfile'],
matchPackageNames: ['node'],
matchUpdateTypes: ['major'],
dependencyDashboardApproval: true,
},
{
// Require Dependency Dashboard Approval for major postgres bumps in the docker-compose file, as those break dev environments
matchManagers: ['docker-compose'],
matchPackageNames: ['postgres'],
matchUpdateTypes: ['major'],
dependencyDashboardApproval: true,
},
{
// Update devDependencies every week, with one grouped PR
matchDepTypes: 'devDependencies',
matchUpdateTypes: ['patch', 'minor'],
groupName: 'devDependencies (non-major)',
extends: ['schedule:weekly'],
},
{
// Group all eslint-related packages with `eslint` in the same PR
matchManagers: ['npm'],
matchPackageNames: ['eslint'],
matchPackagePrefixes: ['eslint-', '@typescript-eslint/'],
matchUpdateTypes: ['patch', 'minor'],
groupName: 'eslint (non-major)',
},
{
// Update @types/* packages every week, with one grouped PR
matchPackagePrefixes: '@types/',
matchUpdateTypes: ['patch', 'minor'],
groupName: 'DefinitelyTyped types (non-major)',
extends: ['schedule:weekly'],
addLabels: ['typescript'],
},
{
// We want those packages to always have their own PR
matchManagers: ['npm'],
matchPackageNames: [
'typescript', // Typescript has code-impacting changes in minor versions
],
groupName: null, // We dont want them to belong to any group
},
// Add labels depending on package manager
{ matchManagers: ['npm', 'nvm'], addLabels: ['javascript'] },
{ matchManagers: ['bundler', 'ruby-version'], addLabels: ['ruby'] },
{ matchManagers: ['docker-compose', 'dockerfile'], addLabels: ['docker'] },
{ matchManagers: ['github-actions'], addLabels: ['github_actions'] },
],
}

@ -0,0 +1,99 @@
on:
workflow_call:
inputs:
platforms:
required: true
type: string
cache:
type: boolean
default: true
use_native_arm64_builder:
type: boolean
push_to_images:
type: string
version_prerelease:
type: string
version_metadata:
type: string
flavor:
type: string
tags:
type: string
labels:
type: string
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
if: contains(inputs.platforms, 'linux/arm64') && !inputs.use_native_arm64_builder
- uses: docker/setup-buildx-action@v3
id: buildx
if: ${{ !(inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')) }}
- name: Start a local Docker Builder
if: inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')
run: |
docker run --rm -d --name buildkitd -p 1234:1234 --privileged moby/buildkit:latest --addr tcp://0.0.0.0:1234
- uses: docker/setup-buildx-action@v3
id: buildx-native
if: inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')
with:
driver: remote
endpoint: tcp://localhost:1234
platforms: linux/amd64
append: |
- endpoint: tcp://${{ vars.DOCKER_BUILDER_HETZNER_ARM64_01_HOST }}:13865
platforms: linux/arm64
name: mastodon-docker-builder-arm64-01
driver-opts:
- servername=mastodon-docker-builder-arm64-01
env:
BUILDER_NODE_1_AUTH_TLS_CACERT: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_CACERT }}
BUILDER_NODE_1_AUTH_TLS_CERT: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_CERT }}
BUILDER_NODE_1_AUTH_TLS_KEY: ${{ secrets.DOCKER_BUILDER_HETZNER_ARM64_01_KEY }}
- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the Github Container registry
if: contains(inputs.push_to_images, 'ghcr.io')
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v5
id: meta
if: ${{ inputs.push_to_images != '' }}
with:
images: ${{ inputs.push_to_images }}
flavor: ${{ inputs.flavor }}
tags: ${{ inputs.tags }}
labels: ${{ inputs.labels }}
- uses: docker/build-push-action@v5
with:
context: .
build-args: |
MASTODON_VERSION_PRERELEASE=${{ inputs.version_prerelease }}
MASTODON_VERSION_METADATA=${{ inputs.version_metadata }}
platforms: ${{ inputs.platforms }}
provenance: false
builder: ${{ steps.buildx.outputs.name || steps.buildx-native.outputs.name }}
push: ${{ inputs.push_to_images != '' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: ${{ inputs.cache && 'type=gha' || '' }}
cache-to: ${{ inputs.cache && 'type=gha,mode=max' || '' }}

@ -1,56 +0,0 @@
name: Build container image
on:
workflow_dispatch:
push:
branches:
- 'main'
pull_request:
paths:
- .github/workflows/build-image.yml
- Dockerfile
permissions:
contents: read
packages: write
jobs:
build-image:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v3
- uses: hadolint/hadolint-action@v3.1.0
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- name: Log in to the Github Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name != 'pull_request'
- uses: docker/metadata-action@v4
id: meta
with:
images: ghcr.io/${{ github.repository_owner }}/mastodon
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=edge,branch=main
type=sha,prefix=,format=long
- uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
provenance: false
builder: ${{ steps.buildx.outputs.name }}
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

@ -0,0 +1,42 @@
name: Build nightly container image
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *' # run at 2 AM UTC
permissions:
contents: read
packages: write
jobs:
compute-suffix:
runs-on: ubuntu-latest
if: github.repository == 'glitch-soc/mastodon'
steps:
- id: version_vars
env:
TZ: Etc/UTC
run: |
echo mastodon_version_prerelease=nightly.$(date +'%Y-%m-%d')>> $GITHUB_OUTPUT
outputs:
prerelease: ${{ steps.version_vars.outputs.mastodon_version_prerelease }}
build-image:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
cache: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }}
labels: |
org.opencontainers.image.description=Nightly build image used for testing purposes
flavor: |
latest=true
tags: |
type=raw,value=edge
type=raw,value=nightly
type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }}
secrets: inherit

@ -0,0 +1,41 @@
name: Build container image for PR
on:
pull_request:
types: [labeled, synchronize, reopened, ready_for_review, opened]
permissions:
contents: read
packages: write
jobs:
compute-suffix:
runs-on: ubuntu-latest
# This is only allowed to run if:
# - the PR branch is in the `mastodon/mastodon` repository
# - the PR is not a draft
# - the PR has the "build-image" label
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && !github.event.pull_request.draft && contains(github.event.pull_request.labels.*.name, 'build-image') }}
steps:
# Repository needs to be cloned so `git rev-parse` below works
- name: Clone repository
uses: actions/checkout@v4
- id: version_vars
run: |
echo mastodon_version_metadata=pr-${{ github.event.pull_request.number }}-$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
outputs:
metadata: ${{ steps.version_vars.outputs.mastodon_version_metadata }}
build-image:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
version_metadata: ${{ needs.compute-suffix.outputs.metadata }}
flavor: |
latest=auto
tags: |
type=ref,event=pr
secrets: inherit

@ -0,0 +1,28 @@
name: Build container release images
on:
push:
tags:
- '*'
permissions:
contents: read
packages: write
jobs:
build-image:
uses: ./.github/workflows/build-container-image.yml
with:
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: false
push_to_images: |
ghcr.io/${{ github.repository_owner }}/mastodon
# Do not use cache when building releases, so apt update is always ran and the release always contain the latest packages
cache: false
# Only tag with latest when ran against the latest stable branch
# This needs to be updated after each minor version release
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/v4.2.') }}
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
secrets: inherit

@ -0,0 +1,40 @@
name: Bundler Audit
on:
push:
branches-ignore:
- 'dependabot/**'
paths:
- 'Gemfile*'
- '.ruby-version'
- '.bundler-audit.yml'
- '.github/workflows/bundler-audit.yml'
pull_request:
paths:
- 'Gemfile*'
- '.ruby-version'
- '.bundler-audit.yml'
- '.github/workflows/bundler-audit.yml'
schedule:
- cron: '0 5 * * 1'
jobs:
security:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- name: Run bundler-audit
run: bundle exec bundler-audit

@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install system dependencies
run: |
@ -41,8 +41,7 @@ jobs:
- name: Check for missing strings in English JSON
run: |
yarn build:development
yarn manage:translations
yarn i18n:extract --throws
git diff --exit-code
- name: Check locale file normalization

@ -27,7 +27,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL

@ -0,0 +1,78 @@
name: Crowdin / Download translations
on:
schedule:
- cron: '17 4 * * *' # Every day
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
download-translations:
runs-on: ubuntu-latest
if: github.repository == 'glitch-soc/mastodon'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Increase Git http.postBuffer
# This is needed due to a bug in Ubuntu's cURL version?
# See https://github.com/orgs/community/discussions/55820
run: |
git config --global http.version HTTP/1.1
git config --global http.postBuffer 157286400
# Download the translation files from Crowdin
- name: crowdin action
uses: crowdin/github-action@v1
with:
config: crowdin-glitch.yml
upload_sources: false
upload_translations: false
download_translations: true
crowdin_branch_name: main
push_translations: false
create_pull_request: false
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# As the files are extracted from a Docker container, they belong to root:root
# We need to fix this before the next steps
- name: Fix file permissions
run: sudo chown -R runner:docker .
# This is needed to run the normalize step
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- name: Run i18n normalize task
run: bundle exec i18n-tasks normalize
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)'
author: 'GitHub Actions <noreply@github.com>'
body: |
New Crowdin translations, automated with Github Actions
See `.github/workflows/crowdin-download.yml`
This PR will be updated every day with new translations.
Due to a limitation in Github Actions, checks are not running on this PR without manual action.
If you want to run the checks, then close and re-open it.
branch: i18n/crowdin/translations
base: main
labels: i18n

@ -0,0 +1,36 @@
name: Crowdin / Upload translations
on:
push:
branches:
- main
paths:
- crowdin.yml
- app/javascript/mastodon/locales/en.json
- config/locales/en.yml
- config/locales/simple_form.en.yml
- config/locales/activerecord.en.yml
- config/locales/devise.en.yml
- config/locales/doorkeeper.en.yml
- .github/workflows/crowdin-upload.yml
jobs:
upload-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: crowdin action
uses: crowdin/github-action@v1
with:
config: crowdin-glitch.yml
upload_sources: true
upload_translations: false
download_translations: false
crowdin_branch_name: main
env:
CROWDIN_PROJECT_ID: ${{ vars.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
@ -32,7 +33,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -48,4 +49,4 @@ jobs:
- run: echo "::add-matcher::.github/stylelint-matcher.json"
- name: Stylelint
run: yarn test:lint:sass
run: yarn lint:sass

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- '.github/workflows/haml-lint-problem-matcher.json'
- '.github/workflows/lint-haml.yml'
@ -27,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
@ -36,7 +37,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -48,7 +49,7 @@ jobs:
run: yarn --frozen-lockfile
- name: ESLint
run: yarn test:lint:js
run: yarn lint:js --max-warnings 0
- name: Typecheck
run: yarn test:typecheck
run: yarn typecheck

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
@ -28,7 +29,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -40,4 +41,4 @@ jobs:
run: yarn --frozen-lockfile
- name: Prettier
run: yarn prettier --check "**/*.json"
run: yarn lint:json

@ -3,8 +3,10 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- '.github/workflows/lint-md.yml'
- '.nvmrc'
- '.prettier*'
- '**/*.md'
- '!AUTHORS.md'
@ -14,6 +16,7 @@ on:
pull_request:
paths:
- '.github/workflows/lint-md.yml'
- '.nvmrc'
- '.prettier*'
- '**/*.md'
- '!AUTHORS.md'
@ -26,15 +29,16 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: yarn
node-version-file: '.nvmrc'
- name: Install all yarn packages
run: yarn --frozen-lockfile
- name: Prettier
run: yarn prettier --check "**/*.md"
run: yarn lint:md

@ -3,11 +3,12 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'Gemfile*'
- '.rubocop*.yml'
- '.ruby-version'
- '.bundler-audit.yml'
- 'config/brakeman.ignore'
- '**/*.rb'
- '**/*.rake'
- '.github/workflows/lint-ruby.yml'
@ -17,7 +18,7 @@ on:
- 'Gemfile*'
- '.rubocop*.yml'
- '.ruby-version'
- '.bundler-audit.yml'
- 'config/brakeman.ignore'
- '**/*.rb'
- '**/*.rake'
- '.github/workflows/lint-ruby.yml'
@ -28,7 +29,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
@ -45,5 +46,6 @@ jobs:
- name: Run rubocop
run: bundle exec rubocop
- name: Run bundler-audit
run: bundle exec bundler-audit
- name: Run brakeman
if: always() # Run both checks, even if the first failed
run: bundle exec brakeman

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
@ -30,7 +31,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -42,4 +43,4 @@ jobs:
run: yarn --frozen-lockfile
- name: Prettier
run: yarn prettier --check "**/*.{yml,yaml}"
run: yarn lint:yml

@ -1,15 +1,8 @@
name: PR Needs Rebase
on:
push:
branches-ignore:
- 'dependabot/**'
- 'l10n_main'
pull_request_target:
branches-ignore:
- 'dependabot/**'
- 'l10n_main'
types: [synchronize]
schedule:
- cron: '0 * * * *'
permissions:
pull-requests: write
@ -30,5 +23,5 @@ jobs:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
commentOnClean: This pull request has resolved merge conflicts and is ready for review.
commentOnDirty: This pull request has merge conflicts that must be resolved before it can be merged.
retryMax: 10
retryMax: 30
continueOnMissingPermissions: false

@ -0,0 +1,21 @@
name: Test container image build
on:
pull_request:
paths:
- .github/workflows/build-nightly.yml
- .github/workflows/build-push-pr.yml
- .github/workflows/build-releases.yml
- .github/workflows/test-image-build.yml
- Dockerfile
permissions:
contents: read
jobs:
build-image:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
uses: ./.github/workflows/build-container-image.yml
with:
platforms: linux/amd64 # Testing only on native platform so it is performant

@ -3,12 +3,15 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
paths:
- 'package.json'
- 'yarn.lock'
- '.nvmrc'
- '**/*.js'
- '**/*.jsx'
- '**/*.ts'
- '**/*.tsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
@ -19,6 +22,8 @@ on:
- '.nvmrc'
- '**/*.js'
- '**/*.jsx'
- '**/*.ts'
- '**/*.tsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
@ -28,7 +33,7 @@ jobs:
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -40,4 +45,4 @@ jobs:
run: yarn --frozen-lockfile
- name: Jest testing
run: yarn test:jest --reporters github-actions summary
run: yarn jest --reporters github-actions summary

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
pull_request:
jobs:
@ -23,9 +24,17 @@ jobs:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
strategy:
fail-fast: false
matrix:
postgres:
- 14-alpine
- 15-alpine
services:
postgres:
image: postgres:14-alpine
image: postgres:${{ matrix.postgres}}
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@ -61,7 +70,7 @@ jobs:
BUNDLE_RETRY: 3
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |

@ -3,6 +3,7 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
pull_request:
jobs:
@ -23,9 +24,17 @@ jobs:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
strategy:
fail-fast: false
matrix:
postgres:
- 14-alpine
- 15-alpine
services:
postgres:
image: postgres:14-alpine
image: postgres:${{ matrix.postgres}}
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@ -60,7 +69,7 @@ jobs:
BUNDLE_RETRY: 3
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |

@ -4,12 +4,12 @@ on:
push:
branches-ignore:
- 'dependabot/**'
- 'renovate/**'
pull_request:
env:
BUNDLE_CLEAN: true
BUNDLE_FROZEN: true
BUNDLE_WITHOUT: 'development production'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@ -19,11 +19,20 @@ jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
mode:
- production
- test
env:
RAILS_ENV: test
RAILS_ENV: ${{ matrix.mode }}
BUNDLE_WITH: ${{ matrix.mode }}
OTP_SECRET: precompile_placeholder
SECRET_KEY_BASE: precompile_placeholder
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
@ -50,6 +59,7 @@ jobs:
./bin/rails assets:precompile
- uses: actions/upload-artifact@v3
if: matrix.mode == 'test'
with:
path: |-
./public/assets
@ -97,14 +107,18 @@ jobs:
PAM_ENABLED: true
PAM_DEFAULT_SERVICE: pam_test
PAM_CONTROLLED_SERVICE: pam_test_controlled
BUNDLE_WITH: 'pam_authentication'
OIDC_ENABLED: true
OIDC_SCOPE: read
SAML_ENABLED: true
CAS_ENABLED: true
BUNDLE_WITH: 'pam_authentication test'
CI_JOBS: ${{ matrix.ci_job }}/4
GITHUB_RSPEC: ${{ matrix.ruby-version == '.ruby-version' && github.event.pull_request && 'true' }}
strategy:
fail-fast: false
matrix:
ruby-version:
- '2.7'
- '3.0'
- '3.1'
- '.ruby-version'
@ -114,7 +128,7 @@ jobs:
- 3
- 4
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
@ -136,11 +150,222 @@ jobs:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
- name: Update system gems
if: matrix.ruby-version == '2.7'
run: gem update --system
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bundle exec rake rspec_chunked
test-e2e:
name: End to End testing
runs-on: ubuntu-latest
needs:
- build
services:
postgres:
image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
env:
DB_HOST: localhost
DB_USER: postgres
DB_PASS: postgres
DISABLE_SIMPLECOV: true
RAILS_ENV: test
BUNDLE_WITH: test
strategy:
fail-fast: false
matrix:
ruby-version:
- '3.0'
- '3.1'
- '.ruby-version'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
path: './public'
name: ${{ github.sha }}
- name: Update package index
run: sudo apt-get update
- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: yarn
node-version-file: '.nvmrc'
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
- name: Install additional system dependencies
run: sudo apt-get install -y ffmpeg imagemagick
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
- run: yarn --frozen-lockfile
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bundle exec rake spec:system
- name: Archive logs
uses: actions/upload-artifact@v3
if: failure()
with:
name: e2e-logs-${{ matrix.ruby-version }}
path: log/
- name: Archive test screenshots
uses: actions/upload-artifact@v3
if: failure()
with:
name: e2e-screenshots
path: tmp/screenshots/
test-search:
name: Testing search
runs-on: ubuntu-latest
needs:
- build
services:
postgres:
image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
search:
image: ${{ matrix.search-image }}
env:
discovery.type: single-node
xpack.security.enabled: false
options: >-
--health-cmd "curl http://localhost:9200/_cluster/health"
--health-interval 10s
--health-timeout 5s
--health-retries 10
ports:
- 9200:9200
env:
DB_HOST: localhost
DB_USER: postgres
DB_PASS: postgres
DISABLE_SIMPLECOV: true
RAILS_ENV: test
BUNDLE_WITH: test
ES_ENABLED: true
ES_HOST: localhost
ES_PORT: 9200
strategy:
fail-fast: false
matrix:
ruby-version:
- '3.0'
- '3.1'
- '.ruby-version'
search-image:
- docker.elastic.co/elasticsearch/elasticsearch:7.17.13
include:
- ruby-version: '.ruby-version'
search-image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
path: './public'
name: ${{ github.sha }}
- name: Update package index
run: sudo apt-get update
- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: yarn
node-version-file: '.nvmrc'
- name: Install native Ruby dependencies
run: sudo apt-get install -y libicu-dev libidn11-dev
- name: Install additional system dependencies
run: sudo apt-get install -y ffmpeg imagemagick
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
- run: yarn --frozen-lockfile
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bundle exec rake spec:search
- name: Archive logs
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-search-logs-${{ matrix.ruby-version }}
path: log/
- name: Archive test screenshots
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-search-screenshots
path: tmp/screenshots/

3
.gitignore vendored

@ -31,9 +31,6 @@
# Ignore Vagrant files
.vagrant/
# Ignore Capistrano customizations
/config/deploy/*
# Ignore IDE files
.vscode/
.idea/

@ -4,6 +4,11 @@ exclude:
- 'vendor/**/*'
- lib/templates/haml/scaffold/_form.html.haml
require:
- ./lib/linter/haml_middle_dot.rb
linters:
AltText:
enabled: true
MiddleDot:
enabled: true

@ -1,73 +1,23 @@
# This configuration was generated by
# `haml-lint --auto-gen-config`
# on 2023-03-15 00:55:01 -0400 using Haml-Lint version 0.45.0.
# on 2023-10-11 11:31:24 -0400 using Haml-Lint version 0.51.0.
# The point is for the user to remove these configuration records
# one by one as the lints are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of Haml-Lint, may require this file to be generated again.
linters:
# Offense count: 63
RuboCop:
exclude:
- 'app/views/accounts/_og.html.haml'
- 'app/views/admin/account_warnings/_account_warning.html.haml'
- 'app/views/admin/accounts/index.html.haml'
- 'app/views/admin/accounts/show.html.haml'
- 'app/views/admin/announcements/edit.html.haml'
- 'app/views/admin/announcements/new.html.haml'
- 'app/views/admin/disputes/appeals/_appeal.html.haml'
- 'app/views/admin/domain_blocks/edit.html.haml'
- 'app/views/admin/domain_blocks/new.html.haml'
- 'app/views/admin/ip_blocks/new.html.haml'
- 'app/views/admin/reports/actions/preview.html.haml'
- 'app/views/admin/reports/index.html.haml'
- 'app/views/admin/reports/show.html.haml'
- 'app/views/admin/roles/_form.html.haml'
- 'app/views/admin/settings/about/show.html.haml'
- 'app/views/admin/settings/appearance/show.html.haml'
- 'app/views/admin/settings/registrations/show.html.haml'
- 'app/views/admin/statuses/show.html.haml'
- 'app/views/auth/registrations/new.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
- 'app/views/filters/_filter_fields.html.haml'
- 'app/views/invites/_form.html.haml'
- 'app/views/layouts/application.html.haml'
- 'app/views/layouts/error.html.haml'
- 'app/views/notification_mailer/_status.html.haml'
- 'app/views/settings/applications/_fields.html.haml'
- 'app/views/settings/imports/show.html.haml'
- 'app/views/settings/preferences/appearance/show.html.haml'
- 'app/views/settings/preferences/other/show.html.haml'
- 'app/views/statuses/_detailed_status.html.haml'
- 'app/views/statuses/_poll.html.haml'
- 'app/views/statuses/show.html.haml'
- 'app/views/statuses_cleanup/show.html.haml'
- 'app/views/user_mailer/warning.html.haml'
# Offense count: 913
# Offense count: 946
LineLength:
enabled: false
# Offense count: 22
UnnecessaryStringOutput:
exclude:
- 'app/views/accounts/show.html.haml'
- 'app/views/admin/custom_emojis/_custom_emoji.html.haml'
- 'app/views/admin/relays/_relay.html.haml'
- 'app/views/admin/rules/_rule.html.haml'
- 'app/views/admin/statuses/index.html.haml'
- 'app/views/auth/registrations/_sessions.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
- 'app/views/notification_mailer/_status.html.haml'
- 'app/views/settings/two_factor_authentication_methods/index.html.haml'
- 'app/views/statuses/_detailed_status.html.haml'
- 'app/views/statuses/_poll.html.haml'
- 'app/views/statuses/_simple_status.html.haml'
- 'app/views/user_mailer/suspicious_sign_in.html.haml'
- 'app/views/user_mailer/webauthn_credential_added.html.haml'
- 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
- 'app/views/user_mailer/welcome.html.haml'
enabled: false
# Offense count: 44
RuboCop:
enabled: false
# Offense count: 3
ViewLength:
@ -76,31 +26,8 @@ linters:
- 'app/views/admin/reports/show.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
# Offense count: 41
InstanceVariables:
exclude:
- 'app/views/admin/reports/_actions.html.haml'
- 'app/views/admin/roles/_form.html.haml'
- 'app/views/admin/webhooks/_form.html.haml'
- 'app/views/auth/registrations/_sessions.html.haml'
- 'app/views/auth/registrations/_status.html.haml'
- 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
- 'app/views/authorize_interactions/_post_follow_actions.html.haml'
- 'app/views/invites/_form.html.haml'
- 'app/views/relationships/_account.html.haml'
- 'app/views/shared/_og.html.haml'
- 'app/views/statuses/_status.html.haml'
# Offense count: 6
ConsecutiveSilentScripts:
exclude:
- 'app/views/admin/settings/shared/_links.html.haml'
- 'app/views/settings/login_activities/_login_activity.html.haml'
- 'app/views/statuses/_poll.html.haml'
# Offense count: 3
# Offense count: 2
IdNames:
exclude:
- 'app/views/authorize_interactions/error.html.haml'
- 'app/views/oauth/authorizations/error.html.haml'
- 'app/views/shared/_error_messages.html.haml'

@ -1 +1 @@
16.20
20.8

@ -31,9 +31,6 @@
# Ignore Vagrant files
.vagrant/
# Ignore Capistrano customizations
/config/deploy/*
# Ignore IDE files
.vscode/
.idea/
@ -61,7 +58,7 @@ docker-compose.override.yml
/app/javascript/mastodon/features/emoji/emoji_map.json
# Ignore locale files
/app/javascript/mastodon/locales
/app/javascript/mastodon/locales/*.json
/config/locales
# Ignore vendored CSS reset
@ -70,8 +67,6 @@ app/javascript/styles/mastodon/reset.scss
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
*.jsx
*.ts
*.tsx
# Ignore HTML till cleaned and included in CI
*.html

@ -1,3 +1,4 @@
module.exports = {
singleQuote: true
singleQuote: true,
jsxSingleQuote: true
}

@ -1 +1 @@
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/.apt/lib/x86_64-linux-gnu:/app/.apt/usr/lib/x86_64-linux-gnu/mesa:/app/.apt/usr/lib/x86_64-linux-gnu/pulseaudio
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/.apt/lib/x86_64-linux-gnu:/app/.apt/usr/lib/x86_64-linux-gnu/mesa:/app/.apt/usr/lib/x86_64-linux-gnu/pulseaudio:/app/.apt/usr/lib/x86_64-linux-gnu/openblas-pthread

@ -11,9 +11,10 @@ require:
- rubocop-rspec
- rubocop-performance
- rubocop-capybara
- ./lib/linter/rubocop_middle_dot
AllCops:
TargetRubyVersion: 2.7 # Set to minimum supported version of CI
TargetRubyVersion: 3.0 # Set to minimum supported version of CI
DisplayCopNames: true
DisplayStyleGuide: true
ExtraDetails: true
@ -23,11 +24,11 @@ AllCops:
Exclude:
- db/schema.rb
- 'bin/*'
- 'Rakefile'
- 'node_modules/**/*'
- 'Vagrantfile'
- 'vendor/**/*'
- 'lib/json_ld/*' # Generated files
- 'lib/mastodon/migration_helpers.rb' # Vendored from GitLab
- 'lib/templates/**/*'
# Reason: Prefer Hashes without extreme indentation
@ -38,14 +39,7 @@ Layout/FirstHashElementIndentation:
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_layout.html#layoutlinelength
Layout/LineLength:
AllowedPatterns:
# Allow comments to be long lines
- !ruby/regexp / \# .*$/
- !ruby/regexp /^\# .*$/
Exclude:
- lib/**/*cli*.rb
- db/*migrate/**/*
- db/seeds/**/*
Max: 320 # Default of 120 causes a duplicate entry in generated todo file
# Reason:
# https://docs.rubocop.org/rubocop/cops_lint.html#lintuselessaccessmodifier
@ -53,123 +47,63 @@ Lint/UselessAccessModifier:
ContextCreatingMethods:
- class_methods
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize:
Exclude:
- 'lib/**/*cli*.rb'
- db/*migrate/**/*
## Disable most Metrics/*Length cops
# Reason: those are often triggered and force significant refactors when this happend
# but the team feel they are not really improving the code quality.
# Reason: Some functions cannot be broken up, but others may be refactor candidates
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocklength
Metrics/BlockLength:
CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
Exclude:
- 'lib/mastodon/*_cli.rb'
- 'lib/tasks/*.rake'
- 'app/models/concerns/account_associations.rb'
- 'app/models/concerns/account_interactions.rb'
- 'app/models/concerns/ldap_authenticable.rb'
- 'app/models/concerns/omniauthable.rb'
- 'app/models/concerns/pam_authenticable.rb'
- 'app/models/concerns/remotable.rb'
- 'app/services/suspend_account_service.rb'
- 'app/services/unsuspend_account_service.rb'
- 'app/views/accounts/show.rss.ruby'
- 'app/views/tags/show.rss.ruby'
- 'config/environments/development.rb'
- 'config/environments/production.rb'
- 'config/initializers/devise.rb'
- 'config/initializers/doorkeeper.rb'
- 'config/initializers/omniauth.rb'
- 'config/initializers/simple_form.rb'
- 'config/navigation.rb'
- 'config/routes.rb'
- 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- 'lib/paperclip/gif_transcoder.rb'
# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting
Metrics/BlockNesting:
Exclude:
- 'lib/mastodon/*_cli.rb'
Enabled: false
# Reason: Some Excluded files would be candidates for refactoring but not currently addressed
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsclasslength
Metrics/ClassLength:
CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
Exclude:
- 'lib/mastodon/*_cli.rb'
- 'app/controllers/admin/accounts_controller.rb'
- 'app/controllers/api/base_controller.rb'
- 'app/controllers/api/v1/admin/accounts_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/auth/registrations_controller.rb'
- 'app/controllers/auth/sessions_controller.rb'
- 'app/lib/activitypub/activity.rb'
- 'app/lib/activitypub/activity/create.rb'
- 'app/lib/activitypub/tag_manager.rb'
- 'app/lib/feed_manager.rb'
- 'app/lib/link_details_extractor.rb'
- 'app/lib/request.rb'
- 'app/lib/text_formatter.rb'
- 'app/lib/user_settings_decorator.rb'
- 'app/mailers/user_mailer.rb'
- 'app/models/account.rb'
- 'app/models/admin/account_action.rb'
- 'app/models/form/account_batch.rb'
- 'app/models/media_attachment.rb'
- 'app/models/status.rb'
- 'app/models/tag.rb'
- 'app/models/user.rb'
- 'app/serializers/activitypub/actor_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
- 'app/serializers/rest/status_serializer.rb'
- 'app/services/account_search_service.rb'
- 'app/services/activitypub/process_account_service.rb'
- 'app/services/activitypub/process_status_update_service.rb'
- 'app/services/backup_service.rb'
- 'app/services/delete_account_service.rb'
- 'app/services/fan_out_on_write_service.rb'
- 'app/services/fetch_link_card_service.rb'
- 'app/services/import_service.rb'
- 'app/services/notify_service.rb'
- 'app/services/post_status_service.rb'
- 'app/services/update_status_service.rb'
- 'lib/paperclip/color_extractor.rb'
Enabled: false
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsmethodlength
Metrics/MethodLength:
Enabled: false
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsmodulelength
Metrics/ModuleLength:
Enabled: false
## End Disable Metrics/*Length cops
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize:
Exclude:
- lib/mastodon/*cli*.rb
- 'lib/mastodon/cli/*.rb'
- db/*migrate/**/*
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsmethodlength
Metrics/MethodLength:
CountAsOne: [array, heredoc]
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:
Exclude:
- 'lib/mastodon/*_cli.rb'
- lib/mastodon/cli/*.rb
- db/*migrate/**/*
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror
Metrics/ModuleLength:
CountAsOne: [array, heredoc]
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsparameterlists
Metrics/ParameterLists:
CountKeywordArgs: false
# Reason: Prevailing style is argument file paths
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsfilepath
Rails/FilePath:
EnforcedStyle: arguments
# Reason: Prevailing style uses numeric status codes, matches RSpec/Rails/HttpStatus
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railshttpstatus
Rails/HttpStatus:
EnforcedStyle: numeric
# Reason: Allowed only in the `tootctl` CLI application code
# Reason: Allowed in `tootctl` CLI code and in boot ENV checker
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit
Rails/Exit:
Exclude:
- 'lib/mastodon/*_cli.rb'
- 'lib/mastodon/cli_helper.rb'
- 'lib/cli.rb'
- 'config/boot.rb'
- 'lib/mastodon/cli/*.rb'
# Reason: Some single letter camel case files shouldn't be split
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
@ -185,12 +119,6 @@ RSpec/FilePath:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb' # namespaces usually have separate folder
- 'spec/lib/sanitize_config_spec.rb' # namespaces usually have separate folder
- 'spec/controllers/concerns/account_controller_concern_spec.rb' # Concerns describe ApplicationController and don't fit naming
- 'spec/controllers/concerns/export_controller_concern_spec.rb'
- 'spec/controllers/concerns/localized_spec.rb'
- 'spec/controllers/concerns/rate_limit_headers_spec.rb'
- 'spec/controllers/concerns/signature_verification_spec.rb'
- 'spec/controllers/concerns/user_tracking_concern_spec.rb'
# Reason:
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnamedsubject
@ -245,6 +173,11 @@ Style/RedundantBegin:
Style/RescueStandardError:
EnforcedStyle: implicit
# Reason: Simplify some spec layouts
# https://docs.rubocop.org/rubocop/cops_style.html#stylesemicolon
Style/Semicolon:
AllowAsExpressionSeparator: true
# Reason: Originally disabled for CodeClimate, and no config consensus has been found
# https://docs.rubocop.org/rubocop/cops_style.html#stylesymbolarray
Style/SymbolArray:
@ -259,3 +192,6 @@ Style/TrailingCommaInArrayLiteral:
# https://docs.rubocop.org/rubocop/cops_style.html#styletrailingcommainhashliteral
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: 'comma'
Style/MiddleDot:
Enabled: true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,4 +1,5 @@
ffmpeg
libopenblas0-pthread
libpq-dev
libxdamage1
libxfixes3

@ -2,6 +2,450 @@
All notable changes to this project will be documented in this file.
## [4.2.1] - 2023-10-10
### Added
- Add redirection on `/deck` URLs for logged-out users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27128))
- Add support for v4.2.0 migrations to `tootctl maintenance fix-duplicates` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27147))
### Changed
- Change some worker lock TTLs to be shorter-lived ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27246))
- Change user archive export allowed period from 7 days to 6 days ([suddjian](https://github.com/mastodon/mastodon/pull/27200))
### Fixed
- Fix duplicate reports being sent when reporting some remote posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27355))
- Fix clicking on already-opened thread post scrolling to the top of the thread ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27331), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27338), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27350))
- Fix some remote posts getting truncated ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27307))
- Fix some cases of infinite scroll code trying to fetch inaccessible posts in a loop ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27286))
- Fix `Vary` headers not being set on some redirects ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27272))
- Fix mentions being matched in some URL query strings ([mjankowski](https://github.com/mastodon/mastodon/pull/25656))
- Fix unexpected linebreak in version string in the Web UI ([vmstan](https://github.com/mastodon/mastodon/pull/26986))
- Fix double scroll bars in some columns in advanced interface ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27187))
- Fix boosts of local users being filtered in account timelines ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27204))
- Fix multiple instances of the trend refresh scheduler sometimes running at once ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27253))
- Fix importer returning negative row estimates ([jgillich](https://github.com/mastodon/mastodon/pull/27258))
- Fix incorrectly keeping outdated update notices absent from the API endpoint ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27021))
- Fix import progress not updating on certain failures ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27247))
- Fix websocket connections being incorrectly decremented twice on errors ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/27238))
- Fix explore prompt appearing because of posts being received out of order ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27211))
- Fix explore prompt sometimes showing up when the home TL is loading ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27062))
- Fix link handling of mentions in user profiles when logged out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27185))
- Fix filtering audit log for entries about disabling 2FA ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27186))
- Fix notification toasts not respecting reduce-motion ([c960657](https://github.com/mastodon/mastodon/pull/27178))
- Fix retention dashboard not displaying correct month ([vmstan](https://github.com/mastodon/mastodon/pull/27180))
- Fix tIME chunk not being properly removed from PNG uploads ([TheEssem](https://github.com/mastodon/mastodon/pull/27111))
- Fix division by zero in video in bitrate computation code ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27129))
- Fix inefficient queries in “Follows and followers” as well as several admin pages ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27116), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27306))
- Fix ActiveRecord using two connection pools when no replica is defined ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27061))
- Fix the search documentation URL in system checks ([renchap](https://github.com/mastodon/mastodon/pull/27036))
## [4.2.0] - 2023-09-21
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by [@danielmbrasil](https://github.com/danielmbrasil), [@mjankowski](https://github.com/mjankowski), [@nschonni](https://github.com/nschonni), [@renchap](https://github.com/renchap), and [@takayamaki](https://github.com/takayamaki).
### Added
- **Add full-text search of opted-in public posts and rework search operators** ([Gargron](https://github.com/mastodon/mastodon/pull/26485), [jsgoldstein](https://github.com/mastodon/mastodon/pull/26344), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26657), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26650), [jsgoldstein](https://github.com/mastodon/mastodon/pull/26659), [Gargron](https://github.com/mastodon/mastodon/pull/26660), [Gargron](https://github.com/mastodon/mastodon/pull/26663), [Gargron](https://github.com/mastodon/mastodon/pull/26688), [Gargron](https://github.com/mastodon/mastodon/pull/26689), [Gargron](https://github.com/mastodon/mastodon/pull/26686), [Gargron](https://github.com/mastodon/mastodon/pull/26687), [Gargron](https://github.com/mastodon/mastodon/pull/26692), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26697), [Gargron](https://github.com/mastodon/mastodon/pull/26699), [Gargron](https://github.com/mastodon/mastodon/pull/26701), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26710), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26739), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26754), [Gargron](https://github.com/mastodon/mastodon/pull/26662), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26755), [Gargron](https://github.com/mastodon/mastodon/pull/26781), [Gargron](https://github.com/mastodon/mastodon/pull/26782), [Gargron](https://github.com/mastodon/mastodon/pull/26760), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26756), [Gargron](https://github.com/mastodon/mastodon/pull/26784), [Gargron](https://github.com/mastodon/mastodon/pull/26807), [Gargron](https://github.com/mastodon/mastodon/pull/26835), [Gargron](https://github.com/mastodon/mastodon/pull/26847), [Gargron](https://github.com/mastodon/mastodon/pull/26834), [arbolitoloco1](https://github.com/mastodon/mastodon/pull/26893), [tribela](https://github.com/mastodon/mastodon/pull/26896), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26927), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26959), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27014))
This introduces a new `public_statuses` Elasticsearch index for public posts by users who have opted in to their posts being searchable (`toot#indexable` flag).
This also revisits the other indexes to provide more useful indexing, and adds new search operators such as `from:me`, `before:2022-11-01`, `after:2022-11-01`, `during:2022-11-01`, `language:fr`, `has:poll`, or `in:library` (for searching only in posts you have written or interacted with).
Results are now ordered chronologically.
- **Add admin notifications for new Mastodon versions** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26582))
This is done by querying `https://api.joinmastodon.org/update-check` every 30 minutes in a background job.
That URL can be changed using the `UPDATE_CHECK_URL` environment variable, and the feature outright disabled by setting that variable to an empty string (`UPDATE_CHECK_URL=`).
- **Add “Privacy and reach” tab in profile settings** ([Gargron](https://github.com/mastodon/mastodon/pull/26484), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26508))
This reorganized scattered privacy and reach settings to a single place, as well as improve their wording.
- **Add display of out-of-band hashtags in the web interface** ([Gargron](https://github.com/mastodon/mastodon/pull/26492), [arbolitoloco1](https://github.com/mastodon/mastodon/pull/26497), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26506), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26525), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26606), [Gargron](https://github.com/mastodon/mastodon/pull/26666), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26960))
- **Add role badges to the web interface** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25649), [Gargron](https://github.com/mastodon/mastodon/pull/26281))
- **Add ability to pick domains to forward reports to using the `forward_to_domains` parameter in `POST /api/v1/reports`** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25866), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26636))
The `forward_to_domains` REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained.
The `forward` parameter still needs to be set for `forward_to_domains` to be taken into account.
The forwarded-to domains can only include that of the original author and people being replied to.
- **Add forwarding of reported replies to servers being replied to** ([Gargron](https://github.com/mastodon/mastodon/pull/25341), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26189))
- Add `ONE_CLICK_SSO_LOGIN` environment variable to directly link to the Single-Sign On provider if there is only one sign up method available ([CSDUMMI](https://github.com/mastodon/mastodon/pull/26083), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26368), [CSDUMMI](https://github.com/mastodon/mastodon/pull/26857), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26901))
- **Add webhook templating** ([Gargron](https://github.com/mastodon/mastodon/pull/23289))
- **Add webhooks for local `status.created`, `status.updated`, `account.updated` and `report.updated`** ([VyrCossont](https://github.com/mastodon/mastodon/pull/24133), [VyrCossont](https://github.com/mastodon/mastodon/pull/24243), [VyrCossont](https://github.com/mastodon/mastodon/pull/24211))
- **Add exclusive lists** ([dariusk, necropolina](https://github.com/mastodon/mastodon/pull/22048), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25324))
- **Add a confirmation screen when suspending a domain** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25144), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25603))
- **Add support for importing lists** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25203), [mgmn](https://github.com/mastodon/mastodon/pull/26120), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26372))
- **Add optional hCaptcha support** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25019), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25057), [Gargron](https://github.com/mastodon/mastodon/pull/25395), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26388))
- **Add lines to threads in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24549), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24677), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24696), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24711), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24713), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24715), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24800), [teeerevor](https://github.com/mastodon/mastodon/pull/25706), [renchap](https://github.com/mastodon/mastodon/pull/25807))
- **Add new onboarding flow to web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24619), [Gargron](https://github.com/mastodon/mastodon/pull/24646), [Gargron](https://github.com/mastodon/mastodon/pull/24705), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24872), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24883), [Gargron](https://github.com/mastodon/mastodon/pull/24954), [stevenjlm](https://github.com/mastodon/mastodon/pull/24959), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25010), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25275), [Gargron](https://github.com/mastodon/mastodon/pull/25559), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25561))
- **Add auto-refresh of accounts we get new messages/edits of** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26510))
- **Add Elasticsearch cluster health check and indexes mismatch check to dashboard** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26448), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26605), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26658))
- Add `hide_collections`, `discoverable` and `indexable` attributes to credentials API ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26998))
- Add `S3_ENABLE_CHECKSUM_MODE` environment variable to enable checksum verification on compatible S3-providers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26435))
- Add admin API for managing tags ([rrgeorge](https://github.com/mastodon/mastodon/pull/26872))
- Add a link to hashtag timelines from the Trending hashtags moderation interface ([gunchleoc](https://github.com/mastodon/mastodon/pull/26724))
- Add timezone to datetimes in e-mails ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26822))
- Add `authorized_fetch` server setting in addition to env var ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26958))
- Add avatar image to webfinger responses ([tvler](https://github.com/mastodon/mastodon/pull/26558))
- Add debug logging on signature verification failure ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26637), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26812))
- Add explicit error messages when DeepL quota is exceeded ([lutoma](https://github.com/mastodon/mastodon/pull/26704))
- Add Elasticsearch/OpenSearch version to “Software” in admin dashboard ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26652))
- Add `data-nosnippet` attribute to remote posts and local posts with `noindex` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26648))
- Add support for federating `memorial` attribute ([rrgeorge](https://github.com/mastodon/mastodon/pull/26583))
- Add Cherokee and Kalmyk to languages dropdown ([gunchleoc](https://github.com/mastodon/mastodon/pull/26012), [gunchleoc](https://github.com/mastodon/mastodon/pull/26013))
- Add `DELETE /api/v1/profile/avatar` and `DELETE /api/v1/profile/header` to the REST API ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25124), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26573))
- Add `ES_PRESET` option to customize numbers of shards and replicas ([Gargron](https://github.com/mastodon/mastodon/pull/26483), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26489))
This can have a value of `single_node_cluster` (default), `small_cluster` (uses one replica) or `large_cluster` (uses one replica and a higher number of shards).
- Add `CACHE_BUSTER_HTTP_METHOD` environment variable ([renchap](https://github.com/mastodon/mastodon/pull/26528), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26542))
- Add support for `DB_PASS` when using `DATABASE_URL` ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26295))
- Add `GET /api/v1/instance/languages` to REST API ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24443))
- Add primary key to `preview_cards_statuses` join table ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25243), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26384), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26447), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26737), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26979))
- Add client-side timeout on resend confirmation button ([Gargron](https://github.com/mastodon/mastodon/pull/26300))
- Add published date and author to news on the explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26155))
- Add `lang` attribute to various UI components ([c960657](https://github.com/mastodon/mastodon/pull/23869), [c960657](https://github.com/mastodon/mastodon/pull/23891), [c960657](https://github.com/mastodon/mastodon/pull/26111), [c960657](https://github.com/mastodon/mastodon/pull/26149))
- Add stricter protocol fields validation for accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25937))
- Add support for Azure blob storage ([mistydemeo](https://github.com/mastodon/mastodon/pull/23607), [mistydemeo](https://github.com/mastodon/mastodon/pull/26080))
- Add toast with option to open post after publishing in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25564), [Signez](https://github.com/mastodon/mastodon/pull/25919), [Gargron](https://github.com/mastodon/mastodon/pull/26664))
- Add canonical link tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25715))
- Add button to see results for polls in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25726))
- Add at-symbol prepended to mention span title ([forsamori](https://github.com/mastodon/mastodon/pull/25684))
- Add users index on `unconfirmed_email` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25672), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25702))
- Add superapp index on `oauth_applications` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25670))
- Add index to backups on `user_id` column ([mjankowski](https://github.com/mastodon/mastodon/pull/25647))
- Add onboarding prompt when home feed too slow in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25267), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25556), [Gargron](https://github.com/mastodon/mastodon/pull/25579), [renchap](https://github.com/mastodon/mastodon/pull/25580), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25581), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25917), [Gargron](https://github.com/mastodon/mastodon/pull/26829), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26935))
- Add `POST /api/v1/conversations/:id/unread` API endpoint to mark a conversation as unread ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25509))
- Add `translate="no"` to outgoing mentions and links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25524))
- Add unsubscribe link and headers to e-mails ([Gargron](https://github.com/mastodon/mastodon/pull/25378), [c960657](https://github.com/mastodon/mastodon/pull/26085))
- Add logging of websocket send errors ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25280))
- Add time zone preference ([Gargron](https://github.com/mastodon/mastodon/pull/25342), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26025))
- Add `legal` as report category ([Gargron](https://github.com/mastodon/mastodon/pull/23941), [renchap](https://github.com/mastodon/mastodon/pull/25400), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26509))
- Add `data-nosnippet` so Google doesn't use trending posts in snippets for `/` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25279))
- Add card with who invited you to join when displaying rules on sign-up ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23475))
- Add missing primary keys to `accounts_tags` and `statuses_tags` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25210))
- Add support for custom sign-up URLs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25014), [renchap](https://github.com/mastodon/mastodon/pull/25108), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25190), [mgmn](https://github.com/mastodon/mastodon/pull/25531))
This is set using `SSO_ACCOUNT_SIGN_UP` and reflected in the REST API by adding `registrations.sign_up_url` to the `/api/v2/instance` endpoint.
- Add polling and automatic redirection to `/start` on email confirmation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25013))
- Add ability to block sign-ups from IP using the CLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24870))
- Add ALT badges to media that has alternative text in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24782), [c960657](https://github.com/mastodon/mastodon/pull/26166)
- Add ability to include accounts with pending follow requests in lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19727), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24810))
- Add trend management to admin API ([rrgeorge](https://github.com/mastodon/mastodon/pull/24257))
- `POST /api/v1/admin/trends/statuses/:id/approve`
- `POST /api/v1/admin/trends/statuses/:id/reject`
- `POST /api/v1/admin/trends/links/:id/approve`
- `POST /api/v1/admin/trends/links/:id/reject`
- `POST /api/v1/admin/trends/tags/:id/approve`
- `POST /api/v1/admin/trends/tags/:id/reject`
- `GET /api/v1/admin/trends/links/publishers`
- `POST /api/v1/admin/trends/links/publishers/:id/approve`
- `POST /api/v1/admin/trends/links/publishers/:id/reject`
- Add user handle to notification mail recipient address ([HeitorMC](https://github.com/mastodon/mastodon/pull/24240))
- Add progress indicator to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/24545))
- Add client-side validation for taken username in sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24546))
- Add `--approve` option to `tootctl accounts create` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24533))
- Add “In Memoriam” banner back to profiles ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23591), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23614))
This adds the `memorial` attribute to the `Account` REST API entity.
- Add colour to follow button when hashtag is being followed ([c960657](https://github.com/mastodon/mastodon/pull/24361))
- Add further explanations to the profile link verification instructions ([drzax](https://github.com/mastodon/mastodon/pull/19723))
- Add a link to Identity provider's account settings from the account settings ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24100), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24628))
- Add support for streaming server to connect to postgres with self-signed certs through the `sslmode` URL parameter ([ramuuns](https://github.com/mastodon/mastodon/pull/21431))
- Add support for specifying S3 storage classes through the `S3_STORAGE_CLASS` environment variable ([hyl](https://github.com/mastodon/mastodon/pull/22480))
- Add support for incoming rich text ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23913))
- Add support for Ruby 3.2 ([tenderlove](https://github.com/mastodon/mastodon/pull/22928), [casperisfine](https://github.com/mastodon/mastodon/pull/24142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24202), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26934))
- Add API parameter to safeguard unexpected mentions in new posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18350))
### Changed
- **Change hashtags to be displayed separately when they are the last line of a post** ([renchap](https://github.com/mastodon/mastodon/pull/26499), [renchap](https://github.com/mastodon/mastodon/pull/26614), [renchap](https://github.com/mastodon/mastodon/pull/26615))
- **Change reblogs to be excluded from "Posts and replies" tab in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26302))
- **Change interaction modal in web interface** ([Gargron, ClearlyClaire](https://github.com/mastodon/mastodon/pull/26075), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26269), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26268), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26267), [mgmn](https://github.com/mastodon/mastodon/pull/26459), [tribela](https://github.com/mastodon/mastodon/pull/26461), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26593), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26795))
- **Change design of link previews in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26136), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26151), [Gargron](https://github.com/mastodon/mastodon/pull/26153), [Gargron](https://github.com/mastodon/mastodon/pull/26250), [Gargron](https://github.com/mastodon/mastodon/pull/26287), [Gargron](https://github.com/mastodon/mastodon/pull/26286), [c960657](https://github.com/mastodon/mastodon/pull/26184))
- **Change "direct message" nomenclature to "private mention" in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24248))
- **Change translation feature to cover Content Warnings, poll options and media descriptions** ([c960657](https://github.com/mastodon/mastodon/pull/24175), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25251), [c960657](https://github.com/mastodon/mastodon/pull/26168), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26452))
- **Change account search to match by text when opted-in** ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25599), [Gargron](https://github.com/mastodon/mastodon/pull/26378))
- **Change import feature to be clearer, less error-prone and more reliable** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21054), [mgmn](https://github.com/mastodon/mastodon/pull/24874))
- **Change local and federated timelines to be tabs of a single “Live feeds” column** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25641), [Gargron](https://github.com/mastodon/mastodon/pull/25683), [mgmn](https://github.com/mastodon/mastodon/pull/25694), [Plastikmensch](https://github.com/mastodon/mastodon/pull/26247), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26633))
- **Change user archive export to be faster and more reliable, and export `.zip` archives instead of `.tar.gz` ones** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23360), [TheEssem](https://github.com/mastodon/mastodon/pull/25034))
- **Change `mastodon-streaming` systemd unit files to be templated** ([e-nomem](https://github.com/mastodon/mastodon/pull/24751))
- **Change `statsd` integration to disable sidekiq metrics by default** ([mjankowski](https://github.com/mastodon/mastodon/pull/25265), [mjankowski](https://github.com/mastodon/mastodon/pull/25336), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26310))
This deprecates `statsd` support and disables the sidekiq integration unless `STATSD_SIDEKIQ` is set to `true`.
This is because the `nsa` gem is unmaintained, and its sidekiq integration is known to add very significant overhead.
Later versions of Mastodon will have other ways to get the same metrics.
- **Change replica support to native Rails adapter** ([krainboltgreene](https://github.com/mastodon/mastodon/pull/25693), [Gargron](https://github.com/mastodon/mastodon/pull/25849), [Gargron](https://github.com/mastodon/mastodon/pull/25874), [Gargron](https://github.com/mastodon/mastodon/pull/25851), [Gargron](https://github.com/mastodon/mastodon/pull/25977), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26074), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26386), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26856))
This is a breaking change, dropping `makara` support, and requiring you to update your database configuration if you are using replicas.
To tell Mastodon to use a read replica, you can either set the `REPLICA_DB_NAME` environment variable (along with `REPLICA_DB_USER`, `REPLICA_DB_PASS`, `REPLICA_DB_HOST`, and `REPLICA_DB_PORT`, if they differ from the primary database), or the `REPLICA_DATABASE_URL` environment variable if your configuration is based on `DATABASE_URL`.
- Change DCT method used for JPEG encoding to float ([electroCutie](https://github.com/mastodon/mastodon/pull/26675))
- Change from `node-redis` to `ioredis` for streaming ([gmemstr](https://github.com/mastodon/mastodon/pull/26581))
- Change private statuses index to index without crutches ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26713))
- Change video compression parameters ([Gargron](https://github.com/mastodon/mastodon/pull/26631), [Gargron](https://github.com/mastodon/mastodon/pull/26745), [Gargron](https://github.com/mastodon/mastodon/pull/26766), [Gargron](https://github.com/mastodon/mastodon/pull/26970))
- Change admin e-mail notification settings to be their own settings group ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26596))
- Change opacity of the delete icon in the search field to be more visible ([AntoninDelFabbro](https://github.com/mastodon/mastodon/pull/26449))
- Change Account Search to prioritize username over display name ([jsgoldstein](https://github.com/mastodon/mastodon/pull/26623))
- Change follow recommendation materialized view to be faster in most cases ([renchap, ClearlyClaire](https://github.com/mastodon/mastodon/pull/26545))
- Change `robots.txt` to block GPTBot ([Foritus](https://github.com/mastodon/mastodon/pull/26396))
- Change header of hashtag timelines in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26362), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26416))
- Change streaming `/metrics` to include additional metrics ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26299), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26945))
- Change indexing frequency from 5 minutes to 1 minute, add locks to schedulers ([Gargron](https://github.com/mastodon/mastodon/pull/26304))
- Change column link to add a better keyboard focus indicator ([teeerevor](https://github.com/mastodon/mastodon/pull/26278))
- Change poll form element colors to fit with the rest of the ui ([teeerevor](https://github.com/mastodon/mastodon/pull/26139), [teeerevor](https://github.com/mastodon/mastodon/pull/26162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26164))
- Change 'favourite' to 'favorite' for American English ([marekr](https://github.com/mastodon/mastodon/pull/24667), [gunchleoc](https://github.com/mastodon/mastodon/pull/26009), [nabijaczleweli](https://github.com/mastodon/mastodon/pull/26109))
- Change ActivityStreams representation of suspended accounts to not use a blank `name` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25276))
- Change focus UI for keyboard only input ([teeerevor](https://github.com/mastodon/mastodon/pull/25935), [Gargron](https://github.com/mastodon/mastodon/pull/26125), [Gargron](https://github.com/mastodon/mastodon/pull/26767))
- Change thread view to scroll to the selected post rather than the post being replied to ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24685))
- Change links in multi-column mode so tabs are open in single-column mode ([Signez](https://github.com/mastodon/mastodon/pull/25893), [Signez](https://github.com/mastodon/mastodon/pull/26070), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25973), [Signez](https://github.com/mastodon/mastodon/pull/26019), [Signez](https://github.com/mastodon/mastodon/pull/26759))
- Change searching with `#` to include account index ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25638))
- Change label and design of sensitive and unavailable media in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25712), [Gargron](https://github.com/mastodon/mastodon/pull/26135), [Gargron](https://github.com/mastodon/mastodon/pull/26330))
- Change button colors to increase hover/focus contrast and consistency ([teeerevor](https://github.com/mastodon/mastodon/pull/25677), [Gargron](https://github.com/mastodon/mastodon/pull/25679))
- Change dropdown icon above compose form from ellipsis to bars in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25661))
- Change header backgrounds to use fewer different colors in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25577))
- Change files to be deleted in batches instead of one-by-one ([Gargron](https://github.com/mastodon/mastodon/pull/23302), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25586), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25587))
- Change emoji picker icon ([iparr](https://github.com/mastodon/mastodon/pull/25479))
- Change edit profile page ([Gargron](https://github.com/mastodon/mastodon/pull/25413), [c960657](https://github.com/mastodon/mastodon/pull/26538))
- Change "bot" label to "automated" ([Gargron](https://github.com/mastodon/mastodon/pull/25356))
- Change design of dropdowns in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25107))
- Change wording of “Content cache retention period” setting to highlight destructive implications ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23261))
- Change autolinking to allow carets in URL search params ([renchap](https://github.com/mastodon/mastodon/pull/25216))
- Change share action from being in action bar to being in dropdown in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25105))
- Change sessions to be ordered from most-recent to least-recently updated ([frankieroberto](https://github.com/mastodon/mastodon/pull/25005))
- Change vacuum scheduler to also delete expired tokens and unused application records ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24868), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24871))
- Change "Sign in" to "Login" ([Gargron](https://github.com/mastodon/mastodon/pull/24942))
- Change domain suspensions to also be checked before trying to fetch unknown remote resources ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24535))
- Change media components to use aspect-ratio rather than compute height themselves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24686), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24943), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26801))
- Change logo version in header based on screen size in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24707))
- Change label from "For you" to "People" on explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24706))
- Change logged-out WebUI HTML pages to be cached for a few seconds ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24708))
- Change unauthenticated responses to be cached in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/24348), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24662), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24665))
- Change HTTP caching logic ([Gargron](https://github.com/mastodon/mastodon/pull/24347), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24604))
- Change hashtags and mentions in bios to open in-app in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24643))
- Change styling of the recommended accounts to allow bio to be more visible ([chike00](https://github.com/mastodon/mastodon/pull/24480))
- Change account search in moderation interface to allow searching by username including the leading `@` ([HeitorMC](https://github.com/mastodon/mastodon/pull/24242))
- Change all components to use the same error page in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24512))
- Change search pop-out in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24305))
- Change user settings to be stored in a more optimal way ([Gargron](https://github.com/mastodon/mastodon/pull/23630), [c960657](https://github.com/mastodon/mastodon/pull/24321), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24460), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24558), [Gargron](https://github.com/mastodon/mastodon/pull/24761), [Gargron](https://github.com/mastodon/mastodon/pull/24783), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25508), [jsgoldstein](https://github.com/mastodon/mastodon/pull/25340), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26884), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27012))
- Change media upload limits and remove client-side resizing ([Gargron](https://github.com/mastodon/mastodon/pull/23726))
- Change design of account rows in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24247), [Gargron](https://github.com/mastodon/mastodon/pull/24343), [Gargron](https://github.com/mastodon/mastodon/pull/24956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25131))
- Change log-out to use Single Logout when using external log-in through OIDC ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24020))
- Change sidekiq-bulk's batch size from 10,000 to 1,000 jobs in one Redis call ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24034))
- Change translation to only be offered for supported languages ([c960657](https://github.com/mastodon/mastodon/pull/23879), [c960657](https://github.com/mastodon/mastodon/pull/24037))
This adds the `/api/v1/instance/translation_languages` REST API endpoint that returns an object with the supported translation language pairs in the form:
```json
{
"fr": ["en", "de"]
}
```
(where `fr` is a supported source language and `en` and `de` or supported output language when translating a `fr` string)
- Change compose form checkbox to native input with `appearance: none` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22949))
- Change posts' clickable area to be larger ([c960657](https://github.com/mastodon/mastodon/pull/23621))
- Change `followed_by` link to `location=all` if account is local on /admin/accounts/:id page ([tribela](https://github.com/mastodon/mastodon/pull/23467))
### Removed
- **Remove support for Node.js 14** ([renchap](https://github.com/mastodon/mastodon/pull/25198))
- **Remove support for Ruby 2.7** ([nschonni](https://github.com/mastodon/mastodon/pull/24237))
- **Remove clustering from streaming API** ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24655))
- **Remove anonymous access to the streaming API** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23989))
- Remove obfuscation of reply count in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26768))
- Remove `kmr` from language selection, as it was a duplicate for `ku` ([gunchleoc](https://github.com/mastodon/mastodon/pull/26014), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26787))
- Remove 16:9 cropping from web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26132))
- Remove back button from bookmarks, favourites and lists screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26126))
- Remove display name input from sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24704))
- Remove `tai` locale ([c960657](https://github.com/mastodon/mastodon/pull/23880))
- Remove empty Kushubian (csb) local files ([nschonni](https://github.com/mastodon/mastodon/pull/24151))
- Remove `Permissions-Policy` header from all responses ([Gargron](https://github.com/mastodon/mastodon/pull/24124))
### Fixed
- **Fix filters not being applying in the explore page** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25887))
- **Fix being unable to load past a full page of filtered posts in Home timeline** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24930))
- **Fix log-in flow when involving both OAuth and external authentication** ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24073))
- **Fix broken links in account gallery** ([c960657](https://github.com/mastodon/mastodon/pull/24218))
- **Fix migration handler not updating lists** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24808))
- Fix crash when viewing a moderation appeal and the moderator account has been deleted ([xrobau](https://github.com/mastodon/mastodon/pull/25900))
- Fix error in Web UI when server rules cannot be fetched ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26957))
- Fix paragraph margins resulting in irregular read-more cut-off in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26828))
- Fix notification permissions being requested immediately after login ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26472))
- Fix performances of profile directory ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26840), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26842))
- Fix mute button and volume slider feeling disconnected in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26827), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26860))
- Fix “Scoped order is ignored, it's forced to be batch order.” warnings ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26793))
- Fix blocked domain appearing in account feeds ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26823))
- Fix invalid `Content-Type` header for WebP images ([c960657](https://github.com/mastodon/mastodon/pull/26773))
- Fix minor inefficiencies in `tootctl search deploy` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26721))
- Fix filter form in profiles directory overflowing instead of wrapping ([arbolitoloco1](https://github.com/mastodon/mastodon/pull/26682))
- Fix sign up steps progress layout in right-to-left locales ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26728))
- Fix bug with “favorited by” and “reblogged by“ view on posts only showing up to 40 items ([timothyjrogers](https://github.com/mastodon/mastodon/pull/26577), [timothyjrogers](https://github.com/mastodon/mastodon/pull/26574))
- Fix bad search type heuristic ([Gargron](https://github.com/mastodon/mastodon/pull/26673))
- Fix not being able to negate prefix clauses in search ([Gargron](https://github.com/mastodon/mastodon/pull/26672))
- Fix timeout on invalid set of exclusionary parameters in `/api/v1/timelines/public` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/26239))
- Fix adding column with default value taking longer on Postgres >= 11 ([Gargron](https://github.com/mastodon/mastodon/pull/26375))
- Fix light theme select option for hashtags ([teeerevor](https://github.com/mastodon/mastodon/pull/26311))
- Fix AVIF attachments ([c960657](https://github.com/mastodon/mastodon/pull/26264))
- Fix incorrect URL normalization when fetching remote resources ([c960657](https://github.com/mastodon/mastodon/pull/26219), [c960657](https://github.com/mastodon/mastodon/pull/26285))
- Fix being unable to filter posts for individual Chinese languages ([gunchleoc](https://github.com/mastodon/mastodon/pull/26066))
- Fix preview card sometimes linking to 4xx error pages ([c960657](https://github.com/mastodon/mastodon/pull/26200))
- Fix emoji picker button scrolling with textarea content in single-column view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25304))
- Fix missing border on error screen in light theme in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26152))
- Fix UI overlap with the loupe icon in the Explore Tab ([gol-cha](https://github.com/mastodon/mastodon/pull/26113))
- Fix unexpected redirection to `/explore` after sign-in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26143))
- Fix `/api/v1/statuses/:id/unfavourite` and `/api/v1/statuses/:id/unreblog` returning non-updated counts ([c960657](https://github.com/mastodon/mastodon/pull/24365))
- Fix clicking the “Back” button sometimes leading out of Mastodon ([c960657](https://github.com/mastodon/mastodon/pull/23953), [CSFlorin](https://github.com/mastodon/mastodon/pull/24835), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/24867), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25281))
- Fix processing of `null` ActivityPub activities ([tribela](https://github.com/mastodon/mastodon/pull/26021))
- Fix hashtag posts not being removed from home feed on hashtag unfollow ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26028))
- Fix for "follows you" indicator in light web UI not readable ([vmstan](https://github.com/mastodon/mastodon/pull/25993))
- Fix incorrect line break between icon and number of reposts & favourites ([edent](https://github.com/mastodon/mastodon/pull/26004))
- Fix sounds not being loaded from assets host ([Signez](https://github.com/mastodon/mastodon/pull/25931))
- Fix buttons showing inconsistent styles ([teeerevor](https://github.com/mastodon/mastodon/pull/25903), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25965), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26341), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26482))
- Fix trend calculation working on too many items at a time ([Gargron](https://github.com/mastodon/mastodon/pull/25835))
- Fix dropdowns being disabled for logged out users in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25964))
- Fix explore page being inaccessible when opted-out of trends in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25716))
- Fix re-activated accounts possibly getting deleted by `AccountDeletionWorker` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25711))
- Fix `/api/v2/search` not working with following query param ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25681))
- Fix inefficient query when requesting a new confirmation email from a logged-in account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25669))
- Fix unnecessary concurrent calls to `/api/*/instance` in web UI ([mgmn](https://github.com/mastodon/mastodon/pull/25663))
- Fix resolving local URL for remote content ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25637))
- Fix search not being easily findable on smaller screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25576), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25631))
- Fix j/k keyboard shortcuts on some status lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25554))
- Fix missing validation on `default_privacy` setting ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25513))
- Fix incorrect pagination headers in `/api/v2/admin/accounts` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25477))
- Fix non-interactive upload container being given a `button` role and tabIndex ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25462))
- Fix always redirecting to onboarding in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25396))
- Fix inconsistent use of middle dot (·) instead of bullet (•) to separate items ([j-f1](https://github.com/mastodon/mastodon/pull/25248))
- Fix spacing of middle dots in the detailed status meta section ([j-f1](https://github.com/mastodon/mastodon/pull/25247))
- Fix prev/next buttons color in media viewer ([renchap](https://github.com/mastodon/mastodon/pull/25231))
- Fix email addresses not being properly updated in `tootctl maintenance fix-duplicates` ([mjankowski](https://github.com/mastodon/mastodon/pull/25118))
- Fix unicode surrogate pairs sometimes being broken in page title ([eai04191](https://github.com/mastodon/mastodon/pull/25148))
- Fix various inefficient queries against account domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25126))
- Fix video player offering to expand in a lightbox when it's in an `iframe` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25067))
- Fix post embed previews ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25071))
- Fix inadequate error handling in several API controllers when given invalid parameters ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24947), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24958), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25063), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25072), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25386), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25595))
- Fix uncaught `ActiveRecord::StatementInvalid` in Mastodon::IpBlocksCLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24861))
- Fix various edge cases with local moves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24812))
- Fix `tootctl accounts cull` crashing when encountering a domain resolving to a private address ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23378))
- Fix `tootctl accounts approve --number N` not aproving the N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605))
- Fix being unable to clear media description when editing posts ([c960657](https://github.com/mastodon/mastodon/pull/24720))
- Fix unavailable translations not falling back to English ([mgmn](https://github.com/mastodon/mastodon/pull/24727))
- Fix anonymous visitors getting a session cookie on first visit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24584), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24664))
- Fix cutting off first letter of hashtag links sometimes in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24623))
- Fix crash in `tootctl accounts create --reattach --force` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24557), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24680))
- Fix characters being emojified even when using Variation Selector 15 (text) ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20949), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24615))
- Fix uncaught ActiveRecord::StatementInvalid exception in `Mastodon::AccountsCLI#approve` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24590))
- Fix email confirmation skip option in `tootctl accounts modify USERNAME --email EMAIL --confirm` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24578))
- Fix tooltip for dates without time ([c960657](https://github.com/mastodon/mastodon/pull/24244))
- Fix missing loading spinner and loading more on scroll in Private Mentions column ([c960657](https://github.com/mastodon/mastodon/pull/24446))
- Fix account header image missing from `/settings/profile` on narrow screens ([c960657](https://github.com/mastodon/mastodon/pull/24433))
- Fix height of announcements not being updated when using reduced animations ([c960657](https://github.com/mastodon/mastodon/pull/24354))
- Fix inconsistent radius in advanced interface drawer ([thislight](https://github.com/mastodon/mastodon/pull/24407))
- Fix loading more trending posts on scroll in the advanced interface ([OmmyZhang](https://github.com/mastodon/mastodon/pull/24314))
- Fix poll ending notification for edited polls ([c960657](https://github.com/mastodon/mastodon/pull/24311))
- Fix max width of media in `/about` and `/privacy-policy` ([mgmn](https://github.com/mastodon/mastodon/pull/24180))
- Fix streaming API not being usable without `DATABASE_URL` ([Gargron](https://github.com/mastodon/mastodon/pull/23960))
- Fix external authentication not running onboarding code for new users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23458))
## [4.1.8] - 2023-09-19
### Fixed
- Fix post edits not being forwarded as expected ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26936))
- Fix moderator rights inconsistencies ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26729))
- Fix crash when encountering invalid URL ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26814))
- Fix cached posts including stale stats ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26409))
- Fix uploading of video files for which `ffprobe` reports `0/0` average framerate ([NicolaiSoeborg](https://github.com/mastodon/mastodon/pull/26500))
- Fix unexpected audio stream transcoding when uploaded video is eligible to passthrough ([yufushiro](https://github.com/mastodon/mastodon/pull/26608))
### Security
- Fix missing HTML sanitization in translation API (CVE-2023-42452, [GHSA-2693-xr3m-jhqr](https://github.com/mastodon/mastodon/security/advisories/GHSA-2693-xr3m-jhqr))
- Fix incorrect domain name normalization (CVE-2023-42451, [GHSA-v3xf-c9qf-j667](https://github.com/mastodon/mastodon/security/advisories/GHSA-v3xf-c9qf-j667))
## [4.1.7] - 2023-09-05
### Changed
- Change remote report processing to accept reports with long comments, but truncate them ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25028))
### Fixed
- **Fix blocking subdomains of an already-blocked domain** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26392))
- Fix `/api/v1/timelines/tag/:hashtag` allowing for unauthenticated access when public preview is disabled ([danielmbrasil](https://github.com/mastodon/mastodon/pull/26237))
- Fix inefficiencies in `PlainTextFormatter` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26727))
## [4.1.6] - 2023-07-31
### Fixed
- Fix memory leak in streaming server ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26228))
- Fix wrong filters sometimes applying in streaming ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26159), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26213), [renchap](https://github.com/mastodon/mastodon/pull/26233))
- Fix incorrect connect timeout in outgoing requests ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26116))
## [4.1.5] - 2023-07-21
### Added
- Add check preventing Sidekiq workers from running with Makara configured ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25850))
### Changed
- Change request timeout handling to use a longer deadline ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26055))
### Fixed
- Fix moderation interface for remote instances with a .zip TLD ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25885))
- Fix remote accounts being possibly persisted to database with incomplete protocol values ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25886))
- Fix trending publishers table not rendering correctly on narrow screens ([vmstan](https://github.com/mastodon/mastodon/pull/25945))
### Security
- Fix CSP headers being unintentionally wide ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26105))
## [4.1.4] - 2023-07-07
### Fixed
- Fix branding:generate_app_icons failing because of disallowed ICO coder ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25794))
- Fix crash in admin interface when viewing a remote user with verified links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25796))
- Fix processing of media files with unusual names ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25788))
## [4.1.3] - 2023-07-06
### Added
- Add fallback redirection when getting a webfinger query `LOCAL_DOMAIN@LOCAL_DOMAIN` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23600))
### Changed
- Change OpenGraph-based embeds to allow fullscreen ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25058))
- Change AccessTokensVacuum to also delete expired tokens ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24868))
- Change profile updates to be sent to recently-mentioned servers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24852))
- Change automatic post deletion thresholds and load detection ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24614))
- Change `/api/v1/statuses/:id/history` to always return at least one item ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25510))
- Change auto-linking to allow carets in URL query params ([renchap](https://github.com/mastodon/mastodon/pull/25216))
### Removed
- Remove invalid `X-Frame-Options: ALLOWALL` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25070))
### Fixed
- Fix wrong view being displayed when a webhook fails validation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25464))
- Fix soft-deleted post cleanup scheduler overwhelming the streaming server ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25519))
- Fix incorrect pagination headers in `/api/v2/admin/accounts` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25477))
- Fix multiple inefficiencies in automatic post cleanup worker ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24607), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24785), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24840))
- Fix performance of streaming by parsing message JSON once ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25278), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25361))
- Fix CSP headers when `S3_ALIAS_HOST` includes a path component ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25273))
- Fix `tootctl accounts approve --number N` not approving N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605))
- Fix reports not being closed when performing batch suspensions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24988))
- Fix being able to vote on your own polls ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25015))
- Fix race condition when reblogging a status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25016))
- Fix “Authorized applications” inefficiently and incorrectly getting last use date ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25060))
- Fix “Authorized applications” crashing when listing apps with certain admin API scopes ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25713))
- Fix multiple N+1s in ConversationsController ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25134), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25399), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25499))
- Fix user archive takeouts when using OpenStack Swift ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24431))
- Fix searching for remote content by URL not working under certain conditions ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25637))
- Fix inefficiencies in indexing content for search ([VyrCossont](https://github.com/mastodon/mastodon/pull/24285), [VyrCossont](https://github.com/mastodon/mastodon/pull/24342))
### Security
- Add finer permission requirements for managing webhooks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25463))
- Update dependencies
- Add hardening headers for user-uploaded files ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25756))
- Fix verified links possibly hiding important parts of the URL (CVE-2023-36462)
- Fix timeout handling of outbound HTTP requests (CVE-2023-36461)
- Fix arbitrary file creation through media processing (CVE-2023-36460)
- Fix possible XSS in preview cards (CVE-2023-36459)
## [4.1.2] - 2023-04-04
### Fixed
@ -87,7 +531,7 @@ All notable changes to this project will be documented in this file.
- Add instance activity API endpoint toggle back to the admin interface ([dariusk](https://github.com/mastodon/mastodon/pull/22833))
- Add setting for status page URL ([Gargron](https://github.com/mastodon/mastodon/pull/23390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23499))
- REST API changes:
- Add `configuration.urls.status` attribute to the object returned by `GET /api/v1/instance`
- Add `configuration.urls.status` attribute to the object returned by `GET /api/v2/instance`
- Add `account.approved` webhook ([Saiv46](https://github.com/mastodon/mastodon/pull/22938))
- Add 12 hours option to polls ([Pleclown](https://github.com/mastodon/mastodon/pull/21131))
- Add dropdown menu item to open admin interface for remote domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21895))

@ -1,15 +0,0 @@
# frozen_string_literal: true
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/scm/git'
install_plugin Capistrano::SCM::Git
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/yarn'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.4
# This needs to be bullseye-slim because the Ruby image is built on bullseye-slim
ARG NODE_VERSION="16.20-bullseye-slim"
# This needs to be bookworm-slim because the Ruby image is built on bookworm-slim
ARG NODE_VERSION="20.8-bookworm-slim"
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby
FROM node:${NODE_VERSION} as build
@ -17,10 +17,11 @@ COPY Gemfile* package.json yarn.lock /opt/mastodon/
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get -yq dist-upgrade && \
apt-get install -y --no-install-recommends build-essential \
git \
libicu-dev \
libidn11-dev \
libidn-dev \
libpq-dev \
libjemalloc-dev \
zlib1g-dev \
@ -41,6 +42,10 @@ RUN apt-get update && \
FROM node:${NODE_VERSION}
# Use those args to specify your own version flags & suffixes
ARG MASTODON_VERSION_PRERELEASE=""
ARG MASTODON_VERSION_METADATA=""
ARG UID="991"
ARG GID="991"
@ -51,7 +56,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin"
# Ignoreing these here since we don't want to pin any versions and the Debian image removes apt-get content after use
# Ignoring these here since we don't want to pin any versions and the Debian image removes apt-get content after use
# hadolint ignore=DL3008,DL3009
RUN apt-get update && \
echo "Etc/UTC" > /etc/localtime && \
@ -60,13 +65,13 @@ RUN apt-get update && \
apt-get -y --no-install-recommends install whois \
wget \
procps \
libssl1.1 \
libssl3 \
libpq5 \
imagemagick \
ffmpeg \
libjemalloc2 \
libicu67 \
libidn11 \
libicu72 \
libidn12 \
libyaml-0-2 \
file \
ca-certificates \
@ -84,7 +89,9 @@ COPY --chown=mastodon:mastodon --from=build /opt/mastodon /opt/mastodon
ENV RAILS_ENV="production" \
NODE_ENV="production" \
RAILS_SERVE_STATIC_FILES="true" \
BIND="0.0.0.0"
BIND="0.0.0.0" \
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}"
# Set the run user
USER mastodon

@ -27,4 +27,5 @@ More information on HTTP Signatures, as well as examples, can be found here: htt
- Linked-Data Signatures: https://docs.joinmastodon.org/spec/security/#ld
- Bearcaps: https://docs.joinmastodon.org/spec/bearcaps/
- Followers collection synchronization: https://git.activitypub.dev/ActivityPubDev/Fediverse-Enhancement-Proposals/src/branch/main/feps/fep-8fcf.md
- Followers collection synchronization: https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md
- Search indexing consent for actors: https://codeberg.org/fediverse/fep/src/branch/main/fep/5feb/fep-5feb.md

@ -1,26 +1,24 @@
# frozen_string_literal: true
source 'https://rubygems.org'
ruby '>= 2.7.0', '< 3.3.0'
ruby '>= 3.0.0'
gem 'pkg-config', '~> 1.5'
gem 'puma', '~> 6.2'
gem 'rails', '~> 6.1.7'
gem 'puma', '~> 6.3'
gem 'rails', '~> 7.0'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.6'
gem 'rack', '~> 2.2.7'
gem 'haml-rails', '~>2.0'
gem 'pg', '~> 1.4'
gem 'makara', '~> 0.5'
gem 'pg', '~> 1.5'
gem 'pghero'
gem 'dotenv-rails', '~> 2.8'
gem 'aws-sdk-s3', '~> 1.120', require: false
gem 'aws-sdk-s3', '~> 1.123', require: false
gem 'fog-core', '<= 2.4.0'
gem 'fog-openstack', '~> 0.3', require: false
gem 'kt-paperclip', '~> 7.1', github: 'kreeti/kt-paperclip', ref: '11abf222dc31bff71160a1d138b445214f434b2b'
gem 'kt-paperclip', '~> 7.2'
gem 'md-paperclip-azure', '~> 2.2', require: false
gem 'blurhash', '~> 0.1'
gem 'active_model_serializers', '~> 0.10'
@ -28,20 +26,23 @@ gem 'addressable', '~> 2.8'
gem 'bootsnap', '~> 1.16.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.2'
gem 'chewy', '~> 7.3'
gem 'devise', '~> 4.9'
gem 'devise-two-factor', '~> 4.0'
gem 'devise-two-factor', '~> 4.1'
group :pam_authentication, optional: true do
gem 'devise_pam_authenticatable2', '~> 9.2'
end
gem 'net-ldap', '~> 0.17'
gem 'omniauth-cas', '~> 2.0'
gem 'omniauth-saml', '~> 1.10'
gem 'net-ldap', '~> 0.18'
# TODO: Point back at released omniauth-cas gem when PR merged
# https://github.com/dlindahl/omniauth-cas/pull/68
gem 'omniauth-cas', github: 'stanhu/omniauth-cas', ref: '4211e6d05941b4a981f9a36b49ec166cecd0e271'
gem 'omniauth-saml', '~> 2.0'
gem 'omniauth_openid_connect', '~> 0.6.1'
gem 'omniauth', '~> 1.9'
gem 'omniauth-rails_csrf_protection', '~> 0.1'
gem 'omniauth', '~> 2.0'
gem 'omniauth-rails_csrf_protection', '~> 1.0'
gem 'color_diff', '~> 0.1'
gem 'discard', '~> 1.2'
@ -58,9 +59,9 @@ gem 'httplog', '~> 1.6.2'
gem 'idn-ruby', require: 'idn'
gem 'kaminari', '~> 1.2'
gem 'link_header', '~> 0.0'
gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar'
gem 'nokogiri', '~> 1.14'
gem 'nsa', '~> 0.2'
gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar'
gem 'nokogiri', '~> 1.15'
gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b'
gem 'oj', '~> 3.14'
gem 'ox', '~> 2.14'
gem 'parslet'
@ -70,13 +71,13 @@ gem 'pundit', '~> 2.3'
gem 'premailer-rails'
gem 'rack-attack', '~> 6.6'
gem 'rack-cors', '~> 2.0', require: 'rack/cors'
gem 'rails-i18n', '~> 6.0'
gem 'rails-i18n', '~> 7.0'
gem 'rails-settings-cached', '~> 0.6', git: 'https://github.com/mastodon/rails-settings-cached.git', branch: 'v0.6.6-aliases-true'
gem 'redcarpet', '~> 3.6'
gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis']
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
gem 'rqrcode', '~> 2.1'
gem 'ruby-progressbar', '~> 1.11'
gem 'rqrcode', '~> 2.2'
gem 'ruby-progressbar', '~> 1.13'
gem 'sanitize', '~> 6.0'
gem 'scenic', '~> 1.7'
gem 'sidekiq', '~> 6.5'
@ -99,54 +100,92 @@ gem 'json-ld'
gem 'json-ld-preloaded', '~> 3.2'
gem 'rdf-normalize', '~> 0.5'
group :development, :test do
gem 'fabrication', '~> 2.30'
gem 'fuubar', '~> 2.5'
gem 'i18n-tasks', '~> 1.0', require: false
gem 'rspec-rails', '~> 6.0'
gem 'private_address_check', '~> 0.5'
group :test do
# Used to split testing into chunks in CI
gem 'rspec_chunked', '~> 0.6'
gem 'rubocop-capybara', require: false
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
gem 'rubocop', require: false
end
# Adds RSpec Error/Warning annotations to GitHub PRs on the Files tab
gem 'rspec-github', '~> 2.4', require: false
group :production, :test do
gem 'private_address_check', '~> 0.5'
end
# RSpec progress bar formatter
gem 'fuubar', '~> 2.5'
group :test do
# Extra RSpec extenion methods and helpers for sidekiq
gem 'rspec-sidekiq', '~> 4.0'
# Browser integration testing
gem 'capybara', '~> 3.39'
gem 'climate_control'
gem 'faker', '~> 3.1'
gem 'json-schema', '~> 3.0'
gem 'rack-test', '~> 2.1'
gem 'selenium-webdriver'
# Used to reset the database between system tests
gem 'database_cleaner-active_record'
# Used to mock environment variables
gem 'climate_control', '~> 0.2'
# Generating fake data for specs
gem 'faker', '~> 3.2'
# Generate test objects for specs
gem 'fabrication', '~> 2.30'
# Add back helpers functions removed in Rails 5.1
gem 'rails-controller-testing', '~> 1.0'
gem 'rspec_junit_formatter', '~> 0.6'
gem 'rspec-sidekiq', '~> 3.1'
# Validate schemas in specs
gem 'json-schema', '~> 4.0'
# Test harness fo rack components
gem 'rack-test', '~> 2.1'
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false
gem 'simplecov', '~> 0.22', require: false
# Stub web requests for specs
gem 'webmock', '~> 3.18'
end
group :development do
# Code linting CLI and plugins
gem 'rubocop', require: false
gem 'rubocop-capybara', require: false
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
# Annotates modules with schema
gem 'annotate', '~> 3.2'
# Enhanced error message pages for development
gem 'better_errors', '~> 2.9'
gem 'binding_of_caller', '~> 1.0'
# Preview mail in the browser
gem 'letter_opener', '~> 1.8'
gem 'letter_opener_web', '~> 2.0'
gem 'memory_profiler'
gem 'brakeman', '~> 5.4', require: false
# Security analysis CLI tools
gem 'brakeman', '~> 6.0', require: false
gem 'bundler-audit', '~> 0.9', require: false
# Linter CLI for HAML files
gem 'haml_lint', require: false
gem 'capistrano', '~> 3.17'
gem 'capistrano-rails', '~> 1.6'
gem 'capistrano-rbenv', '~> 2.2'
gem 'capistrano-yarn', '~> 2.0'
# Validate missing i18n keys
gem 'i18n-tasks', '~> 1.0', require: false
end
group :development, :test do
# Profiling tools
gem 'memory_profiler', require: false
gem 'ruby-prof', require: false
gem 'stackprof', require: false
gem 'test-prof'
gem 'stackprof'
# RSpec runner for rails
gem 'rspec-rails', '~> 6.0'
end
group :production do
@ -157,7 +196,9 @@ gem 'concurrent-ruby', require: false
gem 'connection_pool', require: false
gem 'xorcist', '~> 1.1'
gem 'hcaptcha', '~> 7.1'
gem 'cocoon', '~> 1.2'
gem 'net-http', '~> 0.3.2'
gem 'rubyzip', '~> 2.3'
gem 'hcaptcha', '~> 7.1'

@ -8,16 +8,15 @@ GIT
jwt (~> 2.0)
GIT
remote: https://github.com/kreeti/kt-paperclip.git
revision: 11abf222dc31bff71160a1d138b445214f434b2b
ref: 11abf222dc31bff71160a1d138b445214f434b2b
remote: https://github.com/jhawthorn/nsa.git
revision: e020fcc3a54d993ab45b7194d89ab720296c111b
ref: e020fcc3a54d993ab45b7194d89ab720296c111b
specs:
kt-paperclip (7.1.1)
activemodel (>= 4.2.0)
activesupport (>= 4.2.0)
marcel (~> 1.0.1)
mime-types
terrapin (~> 0.6.0)
nsa (0.2.8)
activesupport (>= 4.2, < 7.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0)
GIT
remote: https://github.com/mastodon/rails-settings-cached.git
@ -27,109 +26,132 @@ GIT
rails-settings-cached (0.6.6)
rails (>= 4.2.0)
GIT
remote: https://github.com/stanhu/omniauth-cas.git
revision: 4211e6d05941b4a981f9a36b49ec166cecd0e271
ref: 4211e6d05941b4a981f9a36b49ec166cecd0e271
specs:
omniauth-cas (2.0.0)
addressable (~> 2.3)
nokogiri (~> 1.5)
omniauth (>= 1.2, < 3)
GEM
remote: https://rubygems.org/
specs:
actioncable (6.1.7.3)
actionpack (= 6.1.7.3)
activesupport (= 6.1.7.3)
actioncable (7.0.8)
actionpack (= 7.0.8)
activesupport (= 7.0.8)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (6.1.7.3)
actionpack (= 6.1.7.3)
activejob (= 6.1.7.3)
activerecord (= 6.1.7.3)
activestorage (= 6.1.7.3)
activesupport (= 6.1.7.3)
actionmailbox (7.0.8)
actionpack (= 7.0.8)
activejob (= 7.0.8)
activerecord (= 7.0.8)
activestorage (= 7.0.8)
activesupport (= 7.0.8)
mail (>= 2.7.1)
actionmailer (6.1.7.3)
actionpack (= 6.1.7.3)
actionview (= 6.1.7.3)
activejob (= 6.1.7.3)
activesupport (= 6.1.7.3)
net-imap
net-pop
net-smtp
actionmailer (7.0.8)
actionpack (= 7.0.8)
actionview (= 7.0.8)
activejob (= 7.0.8)
activesupport (= 7.0.8)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (6.1.7.3)
actionview (= 6.1.7.3)
activesupport (= 6.1.7.3)
rack (~> 2.0, >= 2.0.9)
actionpack (7.0.8)
actionview (= 7.0.8)
activesupport (= 7.0.8)
rack (~> 2.0, >= 2.2.4)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (6.1.7.3)
actionpack (= 6.1.7.3)
activerecord (= 6.1.7.3)
activestorage (= 6.1.7.3)
activesupport (= 6.1.7.3)
actiontext (7.0.8)
actionpack (= 7.0.8)
activerecord (= 7.0.8)
activestorage (= 7.0.8)
activesupport (= 7.0.8)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (6.1.7.3)
activesupport (= 6.1.7.3)
actionview (7.0.8)
activesupport (= 7.0.8)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
active_model_serializers (0.10.13)
actionpack (>= 4.1, < 7.1)
activemodel (>= 4.1, < 7.1)
active_model_serializers (0.10.14)
actionpack (>= 4.1)
activemodel (>= 4.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (6.1.7.3)
activesupport (= 6.1.7.3)
activejob (7.0.8)
activesupport (= 7.0.8)
globalid (>= 0.3.6)
activemodel (6.1.7.3)
activesupport (= 6.1.7.3)
activerecord (6.1.7.3)
activemodel (= 6.1.7.3)
activesupport (= 6.1.7.3)
activestorage (6.1.7.3)
actionpack (= 6.1.7.3)
activejob (= 6.1.7.3)
activerecord (= 6.1.7.3)
activesupport (= 6.1.7.3)
activemodel (7.0.8)
activesupport (= 7.0.8)
activerecord (7.0.8)
activemodel (= 7.0.8)
activesupport (= 7.0.8)
activestorage (7.0.8)
actionpack (= 7.0.8)
activejob (= 7.0.8)
activerecord (= 7.0.8)
activesupport (= 7.0.8)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (6.1.7.3)
activesupport (7.0.8)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.2)
addressable (2.8.5)
public_suffix (>= 2.0.2, < 6.0)
aes_key_wrap (1.1.0)
airbrussh (1.4.1)
sshkit (>= 1.6.1, != 1.7.0)
android_key_attestation (0.3.0)
annotate (3.2.0)
activerecord (>= 3.2, < 8.0)
rake (>= 10.4, < 14.0)
ast (2.4.2)
attr_encrypted (3.1.0)
attr_encrypted (4.0.0)
encryptor (~> 3.0.0)
attr_required (1.0.1)
awrence (1.2.1)
aws-eventstream (1.2.0)
aws-partitions (1.739.0)
aws-sdk-core (3.171.0)
aws-partitions (1.809.0)
aws-sdk-core (3.181.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.63.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (1.71.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.120.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-s3 (1.133.0)
aws-sdk-core (~> 3, >= 3.181.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.2)
aws-sigv4 (~> 1.6)
aws-sigv4 (1.6.0)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
better_errors (2.9.1)
coderay (>= 1.0.0)
azure-storage-blob (2.0.3)
azure-storage-common (~> 2.0)
nokogiri (~> 1, >= 1.10.8)
azure-storage-common (2.0.4)
faraday (~> 1.0)
faraday_middleware (~> 1.0, >= 1.0.0.rc1)
net-http-persistent (~> 4.0)
nokogiri (~> 1, >= 1.10.8)
base64 (0.1.1)
bcrypt (3.1.19)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
better_html (2.0.1)
rouge (>= 1.0.0)
better_html (2.0.2)
actionview (>= 6.0)
activesupport (>= 6.0)
ast (~> 2.0)
@ -142,7 +164,7 @@ GEM
blurhash (0.1.7)
bootsnap (1.16.0)
msgpack (~> 1.2)
brakeman (5.4.0)
brakeman (6.0.1)
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
@ -151,22 +173,7 @@ GEM
bundler-audit (0.9.1)
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
capistrano (3.17.2)
airbrussh (>= 1.0.0)
i18n
rake (>= 10.0.0)
sshkit (>= 1.9.0)
capistrano-bundler (2.0.1)
capistrano (~> 3.1)
capistrano-rails (1.6.2)
capistrano (~> 3.1)
capistrano-bundler (>= 1.1, < 3)
capistrano-rbenv (2.2.0)
capistrano (~> 3.1)
sshkit (~> 1.3)
capistrano-yarn (2.0.2)
capistrano (~> 3.0)
capybara (3.39.0)
capybara (3.39.2)
addressable
matrix
mini_mime (>= 0.1.3)
@ -179,38 +186,41 @@ GEM
activesupport
cbor (0.5.9.6)
charlock_holmes (0.7.7)
chewy (7.2.7)
chewy (7.3.4)
activesupport (>= 5.2)
elasticsearch (>= 7.12.0, < 7.14.0)
elasticsearch-dsl
chunky_png (1.4.0)
climate_control (0.2.0)
cocoon (1.2.15)
coderay (1.1.3)
color_diff (0.1)
concurrent-ruby (1.2.2)
connection_pool (2.3.0)
connection_pool (2.4.1)
cose (1.3.0)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 1.0)
crack (0.4.5)
rexml
crass (1.0.6)
css_parser (1.12.0)
css_parser (1.14.0)
addressable
database_cleaner-active_record (2.1.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.3.3)
debug_inspector (1.0.0)
devise (4.9.2)
debug_inspector (1.1.0)
devise (4.9.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (4.0.2)
activesupport (< 7.1)
attr_encrypted (>= 1.3, < 4, != 2)
devise-two-factor (4.1.1)
activesupport (~> 7.0)
attr_encrypted (>= 1.3, < 5, != 2)
devise (~> 4.0)
railties (< 7.1)
railties (~> 7.0)
rotp (~> 6.0)
devise_pam_authenticatable2 (9.2.0)
devise (>= 4.0.0)
@ -241,9 +251,9 @@ GEM
erubi (1.12.0)
et-orbi (1.2.7)
tzinfo
excon (0.95.0)
excon (0.100.0)
fabrication (2.30.0)
faker (3.1.1)
faker (3.2.1)
i18n (>= 1.8.11, < 2)
faraday (1.10.3)
faraday-em_http (~> 1.0)
@ -268,8 +278,10 @@ GEM
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fast_blank (1.0.1)
fastimage (2.2.6)
fastimage (2.2.7)
ffi (1.15.5)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
@ -295,7 +307,7 @@ GEM
ruby-progressbar (~> 1.4)
globalid (1.1.0)
activesupport (>= 5.0)
haml (6.1.1)
haml (6.2.0)
temple (>= 0.8.2)
thor
tilt
@ -304,17 +316,17 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.45.0)
haml (>= 4.0, < 6.2)
haml_lint (0.51.0)
haml (>= 4.0)
parallel (~> 1.10)
rainbow
rubocop (>= 0.50.0)
rubocop (>= 1.0)
sysexits (~> 1.1)
hashdiff (1.0.1)
hashie (5.0.0)
hcaptcha (7.1.0)
json
highline (2.0.3)
highline (2.1.0)
hiredis (0.6.3)
hkdf (0.3.0)
htmlentities (4.3.4)
@ -331,16 +343,16 @@ GEM
httplog (1.6.2)
rack (>= 2.0)
rainbow (>= 2.0.0)
i18n (1.12.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.12)
i18n-tasks (1.0.13)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
better_html (>= 1.0, < 3.0)
erubi
highline (>= 2.0.0)
i18n
parser (>= 2.2.3.0)
parser (>= 3.2.2.1)
rails-i18n
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
@ -348,26 +360,26 @@ GEM
ipaddress (0.8.3)
jmespath (1.6.2)
json (2.6.3)
json-canonicalization (0.3.0)
json-canonicalization (0.3.2)
json-jwt (1.15.3)
activesupport (>= 4.2)
aes_key_wrap
bindata
httpclient
json-ld (3.2.3)
json-ld (3.2.5)
htmlentities (~> 4.3)
json-canonicalization (~> 0.3)
json-canonicalization (~> 0.3, >= 0.3.2)
link_header (~> 0.0, >= 0.0.8)
multi_json (~> 1.15)
rack (~> 2.2)
rdf (~> 3.2, >= 3.2.9)
rack (>= 2.2, < 4)
rdf (~> 3.2, >= 3.2.10)
json-ld-preloaded (3.2.2)
json-ld (~> 3.2)
rdf (~> 3.2)
json-schema (3.0.0)
json-schema (4.0.0)
addressable (>= 2.8)
jsonapi-renderer (0.2.2)
jwt (2.7.0)
jwt (2.7.1)
kaminari (1.2.2)
activesupport (>= 4.1.0)
kaminari-actionview (= 1.2.2)
@ -380,8 +392,15 @@ GEM
activerecord
kaminari-core (= 1.2.2)
kaminari-core (1.2.2)
launchy (2.5.0)
addressable (~> 2.7)
kt-paperclip (7.2.1)
activemodel (>= 4.2.0)
activesupport (>= 4.2.0)
marcel (~> 1.0.1)
mime-types
terrapin (~> 0.6.0)
language_server-protocol (3.17.0.3)
launchy (2.5.2)
addressable (~> 2.8)
letter_opener (1.8.1)
launchy (>= 2.2, < 3)
letter_opener_web (2.0.0)
@ -393,74 +412,67 @@ GEM
llhttp-ffi (0.4.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
lograge (0.12.0)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.20.0)
loofah (2.21.4)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
nokogiri (>= 1.12.0)
mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
makara (0.5.1)
activerecord (>= 5.2.0)
marcel (1.0.2)
mario-redis-lock (1.2.1)
redis (>= 3.0.5)
matrix (0.4.2)
md-paperclip-azure (2.2.0)
addressable (~> 2.5)
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.0.1)
method_source (1.0.0)
mime-types (3.4.1)
mime-types (3.5.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2022.0105)
mini_mime (1.1.2)
mini_portile2 (2.8.1)
minitest (5.18.0)
msgpack (1.6.0)
mime-types-data (3.2023.0808)
mini_mime (1.1.5)
mini_portile2 (2.8.4)
minitest (5.20.0)
msgpack (1.7.1)
multi_json (1.15.0)
multipart-post (2.3.0)
net-http (0.3.2)
uri
net-imap (0.3.4)
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
net-imap (0.3.7)
date
net-protocol
net-ldap (0.17.1)
net-ldap (0.18.0)
net-pop (0.1.2)
net-protocol
net-protocol (0.2.1)
timeout
net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-protocol
net-ssh (7.0.1)
nio4r (2.5.9)
nokogiri (1.14.2)
mini_portile2 (~> 2.8.0)
nokogiri (1.15.4)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nsa (0.2.8)
activesupport (>= 4.2, < 7)
concurrent-ruby (~> 1.0, >= 1.0.2)
sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0)
oj (3.14.2)
omniauth (1.9.2)
oj (3.16.1)
omniauth (2.1.1)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
omniauth-cas (2.0.0)
addressable (~> 2.3)
nokogiri (~> 1.5)
omniauth (~> 1.2)
omniauth-rails_csrf_protection (0.1.2)
rack (>= 2.2.3)
rack-protection
omniauth-rails_csrf_protection (1.0.1)
actionpack (>= 4.2)
omniauth (>= 1.3.1)
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
ruby-saml (~> 1.9)
omniauth (~> 2.0)
omniauth-saml (2.1.0)
omniauth (~> 2.0)
ruby-saml (~> 1.12)
omniauth_openid_connect (0.6.1)
omniauth (>= 1.9, < 3)
openid_connect (~> 1.1)
@ -479,19 +491,19 @@ GEM
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
orm_adapter (0.5.0)
ox (2.14.14)
parallel (1.22.1)
parser (3.2.2.0)
ox (2.14.17)
parallel (1.23.0)
parser (3.2.2.4)
ast (~> 2.4.1)
racc
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.4.6)
pghero (3.3.1)
pg (1.5.4)
pghero (3.3.4)
activerecord (>= 6)
pkg-config (1.5.1)
posix-spawn (0.3.15)
premailer (1.18.0)
premailer (1.21.0)
addressable
css_parser (>= 1.12.0)
htmlentities (>= 4.0.0)
@ -500,16 +512,16 @@ GEM
net-smtp
premailer (~> 1.7, >= 1.7.9)
private_address_check (0.5.0)
public_suffix (5.0.1)
puma (6.2.1)
public_suffix (5.0.3)
puma (6.4.0)
nio4r (~> 2.0)
pundit (2.3.0)
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.6.2)
rack (2.2.6.4)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
racc (1.7.1)
rack (2.2.8)
rack-attack (6.7.0)
rack (>= 1.0, < 4)
rack-cors (2.0.1)
rack (>= 2.0.0)
rack-oauth2 (1.21.3)
@ -518,138 +530,156 @@ GEM
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
rack-protection (3.0.5)
rack
rack-proxy (0.7.6)
rack
rack-test (2.1.0)
rack (>= 1.3)
rails (6.1.7.3)
actioncable (= 6.1.7.3)
actionmailbox (= 6.1.7.3)
actionmailer (= 6.1.7.3)
actionpack (= 6.1.7.3)
actiontext (= 6.1.7.3)
actionview (= 6.1.7.3)
activejob (= 6.1.7.3)
activemodel (= 6.1.7.3)
activerecord (= 6.1.7.3)
activestorage (= 6.1.7.3)
activesupport (= 6.1.7.3)
rails (7.0.8)
actioncable (= 7.0.8)
actionmailbox (= 7.0.8)
actionmailer (= 7.0.8)
actionpack (= 7.0.8)
actiontext (= 7.0.8)
actionview (= 7.0.8)
activejob (= 7.0.8)
activemodel (= 7.0.8)
activerecord (= 7.0.8)
activestorage (= 7.0.8)
activesupport (= 7.0.8)
bundler (>= 1.15.0)
railties (= 6.1.7.3)
sprockets-rails (>= 2.0.0)
railties (= 7.0.8)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
activesupport (>= 5.0.1.rc1)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.5.0)
loofah (~> 2.19, >= 2.19.1)
rails-i18n (6.0.0)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
rails-i18n (7.0.8)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 7)
railties (6.1.7.3)
actionpack (= 6.1.7.3)
activesupport (= 6.1.7.3)
railties (>= 6.0.0, < 8)
railties (7.0.8)
actionpack (= 7.0.8)
activesupport (= 7.0.8)
method_source
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
rainbow (3.1.1)
rake (13.0.6)
rdf (3.2.9)
rdf (3.2.11)
link_header (~> 0.0, >= 0.0.8)
rdf-normalize (0.5.1)
rdf-normalize (0.6.1)
rdf (~> 3.2)
redcarpet (3.6.0)
redis (4.8.1)
redis-namespace (1.10.0)
redis-namespace (1.11.0)
redis (>= 4)
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.7.0)
regexp_parser (2.8.2)
request_store (1.5.1)
rack (>= 1.4)
responders (3.1.0)
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.2.5)
rotp (6.2.0)
rexml (3.2.6)
rotp (6.2.2)
rouge (4.1.2)
rpam2 (4.0.2)
rqrcode (2.1.2)
rqrcode (2.2.0)
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
rqrcode_core (1.2.0)
rspec-core (3.12.1)
rspec-core (3.12.2)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.2)
rspec-expectations (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.3)
rspec-github (2.4.0)
rspec-core (~> 3.0)
rspec-mocks (3.12.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-rails (6.0.1)
rspec-rails (6.0.3)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-core (~> 3.11)
rspec-expectations (~> 3.11)
rspec-mocks (~> 3.11)
rspec-support (~> 3.11)
rspec-sidekiq (3.1.0)
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
rspec-support (3.12.0)
rspec-core (~> 3.12)
rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12)
rspec-support (~> 3.12)
rspec-sidekiq (4.0.1)
rspec-core (~> 3.0)
rspec-expectations (~> 3.0)
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.12.1)
rspec_chunked (0.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.49.0)
rubocop (1.57.1)
base64 (~> 0.1.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.2.0.0)
parser (>= 3.2.2.4)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.28.0, < 2.0)
rubocop-ast (>= 1.28.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.28.0)
rubocop-ast (1.29.0)
parser (>= 3.2.1.0)
rubocop-capybara (2.17.1)
rubocop-capybara (2.19.0)
rubocop (~> 1.41)
rubocop-performance (1.16.0)
rubocop-factory_bot (2.23.1)
rubocop (~> 1.33)
rubocop-performance (1.19.1)
rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0)
rubocop-rails (2.18.0)
rubocop-rails (2.20.2)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-rspec (2.19.0)
rubocop-rspec (2.23.2)
rubocop (~> 1.33)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
ruby-prof (1.6.3)
ruby-progressbar (1.13.0)
ruby-saml (1.13.0)
nokogiri (>= 1.10.5)
ruby-saml (1.15.0)
nokogiri (>= 1.13.10)
rexml
ruby2_keywords (0.0.5)
rufus-scheduler (3.8.2)
rubyzip (2.3.2)
rufus-scheduler (3.9.1)
fugit (~> 1.1, >= 1.1.6)
safety_net_attestation (0.4.0)
jwt (~> 2.0)
sanitize (6.0.1)
sanitize (6.0.2)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
scenic (1.7.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
selenium-webdriver (4.13.1)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic_range (3.0.0)
sidekiq (6.5.8)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
redis (>= 4.5.0, < 5)
sidekiq-bulk (0.2.0)
sidekiq
sidekiq-scheduler (5.0.2)
sidekiq-scheduler (5.0.3)
rufus-scheduler (~> 3.2)
sidekiq (>= 6, < 8)
tilt (>= 1.4.0)
@ -678,12 +708,9 @@ GEM
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
sshkit (1.21.4)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
stackprof (0.2.24)
stackprof (0.2.25)
statsd-ruby (1.5.0)
stoplight (3.0.1)
stoplight (3.0.2)
redlock (~> 1.0)
strong_migrations (0.8.0)
activerecord (>= 5.2)
@ -692,14 +719,15 @@ GEM
attr_required (>= 0.0.5)
httpclient (>= 2.4)
sysexits (1.2.0)
temple (0.10.0)
temple (0.10.2)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
thor (1.2.1)
tilt (2.1.0)
timeout (0.3.2)
test-prof (1.2.3)
thor (1.2.2)
tilt (2.3.0)
timeout (0.4.0)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
openssl (> 2.0)
@ -724,8 +752,8 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.4.2)
uri (0.12.1)
unicode-display_width (2.5.0)
uri (0.12.2)
validate_email (0.1.6)
activemodel (>= 3.0)
mail (>= 2.2.5)
@ -746,7 +774,7 @@ GEM
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.18.1)
webmock (3.19.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
@ -755,14 +783,15 @@ GEM
rack-proxy (>= 0.6.1)
railties (>= 5.2)
semantic_range (>= 2.3.0)
websocket-driver (0.7.5)
websocket (1.2.10)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
wisper (2.0.1)
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.7)
zeitwerk (2.6.12)
PLATFORMS
ruby
@ -771,35 +800,32 @@ DEPENDENCIES
active_model_serializers (~> 0.10)
addressable (~> 2.8)
annotate (~> 3.2)
aws-sdk-s3 (~> 1.120)
aws-sdk-s3 (~> 1.123)
better_errors (~> 2.9)
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.16.0)
brakeman (~> 5.4)
brakeman (~> 6.0)
browser
bundler-audit (~> 0.9)
capistrano (~> 3.17)
capistrano-rails (~> 1.6)
capistrano-rbenv (~> 2.2)
capistrano-yarn (~> 2.0)
capybara (~> 3.39)
charlock_holmes (~> 0.7.7)
chewy (~> 7.2)
climate_control
chewy (~> 7.3)
climate_control (~> 0.2)
cocoon (~> 1.2)
color_diff (~> 0.1)
concurrent-ruby
connection_pool
database_cleaner-active_record
devise (~> 4.9)
devise-two-factor (~> 4.0)
devise-two-factor (~> 4.1)
devise_pam_authenticatable2 (~> 9.2)
discard (~> 1.2)
doorkeeper (~> 5.6)
dotenv-rails (~> 2.8)
ed25519 (~> 1.3)
fabrication (~> 2.30)
faker (~> 3.1)
faker (~> 3.2)
fast_blank (~> 1.0)
fastimage
fog-core (<= 2.4.0)
@ -817,63 +843,65 @@ DEPENDENCIES
idn-ruby
json-ld
json-ld-preloaded (~> 3.2)
json-schema (~> 3.0)
json-schema (~> 4.0)
kaminari (~> 1.2)
kt-paperclip (~> 7.1)!
kt-paperclip (~> 7.2)
letter_opener (~> 1.8)
letter_opener_web (~> 2.0)
link_header (~> 0.0)
lograge (~> 0.12)
makara (~> 0.5)
mario-redis-lock (~> 1.2)
md-paperclip-azure (~> 2.2)
memory_profiler
mime-types (~> 3.4.1)
mime-types (~> 3.5.0)
net-http (~> 0.3.2)
net-ldap (~> 0.17)
nokogiri (~> 1.14)
nsa (~> 0.2)
net-ldap (~> 0.18)
nokogiri (~> 1.15)
nsa!
oj (~> 3.14)
omniauth (~> 1.9)
omniauth-cas (~> 2.0)
omniauth-rails_csrf_protection (~> 0.1)
omniauth-saml (~> 1.10)
omniauth (~> 2.0)
omniauth-cas!
omniauth-rails_csrf_protection (~> 1.0)
omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1)
ox (~> 2.14)
parslet
pg (~> 1.4)
pg (~> 1.5)
pghero
pkg-config (~> 1.5)
posix-spawn
premailer-rails
private_address_check (~> 0.5)
public_suffix (~> 5.0)
puma (~> 6.2)
puma (~> 6.3)
pundit (~> 2.3)
rack (~> 2.2.6)
rack (~> 2.2.7)
rack-attack (~> 6.6)
rack-cors (~> 2.0)
rack-test (~> 2.1)
rails (~> 6.1.7)
rails (~> 7.0)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)
rails-i18n (~> 7.0)
rails-settings-cached (~> 0.6)!
rdf-normalize (~> 0.5)
redcarpet (~> 3.6)
redis (~> 4.5)
redis-namespace (~> 1.10)
rqrcode (~> 2.1)
rqrcode (~> 2.2)
rspec-github (~> 2.4)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
rspec-sidekiq (~> 4.0)
rspec_chunked (~> 0.6)
rspec_junit_formatter (~> 0.6)
rubocop
rubocop-capybara
rubocop-performance
rubocop-rails
rubocop-rspec
ruby-progressbar (~> 1.11)
ruby-prof
ruby-progressbar (~> 1.13)
rubyzip (~> 2.3)
sanitize (~> 6.0)
scenic (~> 1.7)
selenium-webdriver
sidekiq (~> 6.5)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 5.0)
@ -886,6 +914,7 @@ DEPENDENCIES
stackprof
stoplight (~> 3.0.1)
strong_migrations (~> 0.8)
test-prof
thor (~> 1.2)
tty-prompt (~> 0.23)
twitter-text (~> 3.1.0)
@ -895,3 +924,9 @@ DEPENDENCIES
webpacker (~> 5.4)
webpush!
xorcist (~> 1.1)
RUBY VERSION
ruby 3.2.2p53
BUNDLED WITH
2.4.13

@ -1,4 +1,4 @@
web: env PORT=3000 RAILS_ENV=development bundle exec puma -C config/puma.rb
sidekiq: env PORT=3000 RAILS_ENV=development bundle exec sidekiq
stream: env PORT=4000 yarn run start
webpack: ./bin/webpack-dev-server --listen-host 0.0.0.0
webpack: bin/webpack-dev-server

@ -1,6 +1,8 @@
# frozen_string_literal: true
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
require File.expand_path('config/application', __dir__)
Rails.application.load_tasks

@ -1,8 +1,11 @@
# Security Policy
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <security@joinmastodon.org>.
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can either:
You should _not_ report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
- open a [Github security issue on the Mastodon project](https://github.com/mastodon/mastodon/security/advisories/new)
- reach us at <security@joinmastodon.org>
You should _not_ report such issues on public GitHub issues or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
## Scope
@ -10,9 +13,10 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions
| Version | Supported |
| ------- | --------- |
| 4.1.x | Yes |
| 4.0.x | Yes |
| 3.5.x | Yes |
| < 3.5 | No |
| Version | Supported |
| ------- | ---------------- |
| 4.2.x | Yes |
| 4.1.x | Yes |
| 4.0.x | Until 2023-10-31 |
| 3.5.x | Until 2023-12-31 |
| < 3.5 | No |

44
Vagrantfile vendored

@ -60,6 +60,38 @@ sudo usermod -a -G rvm $USER
SCRIPT
$provisionElasticsearch = <<SCRIPT
# Install Elastic Search
sudo apt install openjdk-17-jre-headless -y
sudo wget -O /usr/share/keyrings/elasticsearch.asc https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/elasticsearch.asc] https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
sudo apt update
sudo apt install elasticsearch -y
sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
echo 'path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["localhost"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false' > /etc/elasticsearch/elasticsearch.yml
sudo systemctl restart elasticsearch
# Install Kibana
sudo apt install kibana -y
sudo systemctl enable --now kibana
echo 'server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]' > /etc/kibana/kibana.yml
sudo systemctl restart kibana
SCRIPT
$provisionB = <<SCRIPT
source "/etc/profile.d/rvm.sh"
@ -102,10 +134,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider :virtualbox do |vb|
vb.name = "mastodon"
vb.customize ["modifyvm", :id, "--memory", "4096"]
# Increase the number of CPUs. Uncomment and adjust to
# increase performance
# vb.customize ["modifyvm", :id, "--cpus", "3"]
vb.customize ["modifyvm", :id, "--memory", "8192"]
vb.customize ["modifyvm", :id, "--cpus", "3"]
# Disable VirtualBox DNS proxy to skip long-delay IPv6 resolutions.
# https://github.com/mitchellh/vagrant/issues/1172
@ -141,9 +171,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.network :forwarded_port, guest: 3000, host: 3000
config.vm.network :forwarded_port, guest: 4000, host: 4000
config.vm.network :forwarded_port, guest: 8080, host: 8080
config.vm.network :forwarded_port, guest: 9200, host: 9200
config.vm.network :forwarded_port, guest: 9300, host: 9300
config.vm.network :forwarded_port, guest: 9243, host: 9243
config.vm.network :forwarded_port, guest: 5601, host: 5601
# Full provisioning script, only runs on first 'vagrant up' or with 'vagrant provision'
config.vm.provision :shell, inline: $provisionA, privileged: false, reset: true
# Run with elevated privileges for Elasticsearch installation
config.vm.provision :shell, inline: $provisionElasticsearch, privileged: true
config.vm.provision :shell, inline: $provisionB, privileged: false
config.vm.post_up_message = <<MESSAGE

@ -1,10 +1,40 @@
# frozen_string_literal: true
class AccountsIndex < Chewy::Index
settings index: { refresh_interval: '30s' }, analysis: {
settings index: index_preset(refresh_interval: '30s'), analysis: {
filter: {
english_stop: {
type: 'stop',
stopwords: '_english_',
},
english_stemmer: {
type: 'stemmer',
language: 'english',
},
english_possessive_stemmer: {
type: 'stemmer',
language: 'possessive_english',
},
},
analyzer: {
content: {
tokenizer: 'whitespace',
natural: {
tokenizer: 'standard',
filter: %w(
lowercase
asciifolding
cjk_width
elision
english_possessive_stemmer
english_stop
english_stemmer
),
},
verbatim: {
tokenizer: 'standard',
filter: %w(lowercase asciifolding cjk_width),
},
@ -26,18 +56,13 @@ class AccountsIndex < Chewy::Index
index_scope ::Account.searchable.includes(:account_stat)
root date_detection: false do
field :id, type: 'long'
field :display_name, type: 'text', analyzer: 'content' do
field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content'
end
field :acct, type: 'text', analyzer: 'content', value: ->(account) { [account.username, account.domain].compact.join('@') } do
field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content'
end
field :following_count, type: 'long', value: ->(account) { account.following_count }
field :followers_count, type: 'long', value: ->(account) { account.followers_count }
field :last_status_at, type: 'date', value: ->(account) { account.last_status_at || account.created_at }
field(:id, type: 'long')
field(:following_count, type: 'long')
field(:followers_count, type: 'long')
field(:properties, type: 'keyword', value: ->(account) { account.searchable_properties })
field(:last_status_at, type: 'date', value: ->(account) { account.last_status_at || account.created_at })
field(:display_name, type: 'text', analyzer: 'verbatim') { field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'verbatim' }
field(:username, type: 'text', analyzer: 'verbatim', value: ->(account) { [account.username, account.domain].compact.join('@') }) { field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'verbatim' }
field(:text, type: 'text', analyzer: 'verbatim', value: ->(account) { account.searchable_text }) { field :stemmed, type: 'text', analyzer: 'natural' }
end
end

@ -0,0 +1,12 @@
# frozen_string_literal: true
class InstancesIndex < Chewy::Index
settings index: index_preset(refresh_interval: '30s')
index_scope ::Instance.searchable
root date_detection: false do
field :domain, type: 'text', index_prefixes: { min_chars: 1, max_chars: 5 }
field :accounts_count, type: 'long'
end
end

@ -0,0 +1,67 @@
# frozen_string_literal: true
class PublicStatusesIndex < Chewy::Index
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
type: 'stop',
stopwords: '_english_',
},
english_stemmer: {
type: 'stemmer',
language: 'english',
},
english_possessive_stemmer: {
type: 'stemmer',
language: 'possessive_english',
},
},
analyzer: {
verbatim: {
tokenizer: 'uax_url_email',
filter: %w(lowercase),
},
content: {
tokenizer: 'standard',
filter: %w(
lowercase
asciifolding
cjk_width
elision
english_possessive_stemmer
english_stop
english_stemmer
),
},
hashtag: {
tokenizer: 'keyword',
filter: %w(
word_delimiter_graph
lowercase
asciifolding
cjk_width
),
},
},
}
index_scope ::Status.unscoped
.kept
.indexable
.includes(:media_attachments, :preloadable_poll, :preview_cards, :tags)
root date_detection: false do
field(:id, type: 'long')
field(:account_id, type: 'long')
field(:text, type: 'text', analyzer: 'verbatim', value: ->(status) { status.searchable_text }) { field(:stemmed, type: 'text', analyzer: 'content') }
field(:tags, type: 'text', analyzer: 'hashtag', value: ->(status) { status.tags.map(&:display_name) })
field(:language, type: 'keyword')
field(:properties, type: 'keyword', value: ->(status) { status.searchable_properties })
field(:created_at, type: 'date')
end
end

@ -1,75 +1,65 @@
# frozen_string_literal: true
class StatusesIndex < Chewy::Index
include FormattingHelper
settings index: { refresh_interval: '30s' }, analysis: {
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
type: 'stop',
stopwords: '_english_',
},
english_stemmer: {
type: 'stemmer',
language: 'english',
},
english_possessive_stemmer: {
type: 'stemmer',
language: 'possessive_english',
},
},
analyzer: {
content: {
verbatim: {
tokenizer: 'uax_url_email',
filter: %w(lowercase),
},
content: {
tokenizer: 'standard',
filter: %w(
english_possessive_stemmer
lowercase
asciifolding
cjk_width
elision
english_possessive_stemmer
english_stop
english_stemmer
),
},
hashtag: {
tokenizer: 'keyword',
filter: %w(
word_delimiter_graph
lowercase
asciifolding
cjk_width
),
},
},
}
# We do not use delete_if option here because it would call a method that we
# expect to be called with crutches without crutches, causing n+1 queries
index_scope ::Status.unscoped.kept.without_reblogs.includes(:media_attachments, :preloadable_poll)
crutch :mentions do |collection|
data = ::Mention.where(status_id: collection.map(&:id)).where(account: Account.local, silent: false).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
crutch :favourites do |collection|
data = ::Favourite.where(status_id: collection.map(&:id)).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
crutch :reblogs do |collection|
data = ::Status.where(reblog_of_id: collection.map(&:id)).where(account: Account.local).pluck(:reblog_of_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
crutch :bookmarks do |collection|
data = ::Bookmark.where(status_id: collection.map(&:id)).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
crutch :votes do |collection|
data = ::PollVote.joins(:poll).where(poll: { status_id: collection.map(&:id) }).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end
index_scope ::Status.unscoped.kept.without_reblogs.includes(:media_attachments, :preview_cards, :local_mentioned, :local_favorited, :local_reblogged, :local_bookmarked, :tags, preloadable_poll: :local_voters), delete_if: ->(status) { status.searchable_by.empty? }
root date_detection: false do
field :id, type: 'long'
field :account_id, type: 'long'
field :text, type: 'text', value: ->(status) { status.searchable_text } do
field :stemmed, type: 'text', analyzer: 'content'
end
field :searchable_by, type: 'long', value: ->(status, crutches) { status.searchable_by(crutches) }
field(:id, type: 'long')
field(:account_id, type: 'long')
field(:text, type: 'text', analyzer: 'verbatim', value: ->(status) { status.searchable_text }) { field(:stemmed, type: 'text', analyzer: 'content') }
field(:tags, type: 'text', analyzer: 'hashtag', value: ->(status) { status.tags.map(&:display_name) })
field(:searchable_by, type: 'long', value: ->(status) { status.searchable_by })
field(:language, type: 'keyword')
field(:properties, type: 'keyword', value: ->(status) { status.searchable_properties })
field(:created_at, type: 'date')
end
end

@ -1,16 +1,25 @@
# frozen_string_literal: true
class TagsIndex < Chewy::Index
settings index: { refresh_interval: '30s' }, analysis: {
settings index: index_preset(refresh_interval: '30s'), analysis: {
analyzer: {
content: {
tokenizer: 'keyword',
filter: %w(lowercase asciifolding cjk_width),
filter: %w(
word_delimiter_graph
lowercase
asciifolding
cjk_width
),
},
edge_ngram: {
tokenizer: 'edge_ngram',
filter: %w(lowercase asciifolding cjk_width),
filter: %w(
lowercase
asciifolding
cjk_width
),
},
},
@ -30,12 +39,9 @@ class TagsIndex < Chewy::Index
end
root date_detection: false do
field :name, type: 'text', analyzer: 'content' do
field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content'
end
field :reviewed, type: 'boolean', value: ->(tag) { tag.reviewed? }
field :usage, type: 'long', value: ->(tag, crutches) { tag.history.aggregate(crutches.time_period).accounts }
field :last_status_at, type: 'date', value: ->(tag) { tag.last_status_at || tag.created_at }
field(:name, type: 'text', analyzer: 'content', value: :display_name) { field(:edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content') }
field(:reviewed, type: 'boolean', value: ->(tag) { tag.reviewed? })
field(:usage, type: 'long', value: ->(tag, crutches) { tag.history.aggregate(crutches.time_period).accounts })
field(:last_status_at, type: 'date', value: ->(tag) { tag.last_status_at || tag.created_at })
end
end

@ -5,15 +5,7 @@ class AboutController < ApplicationController
skip_before_action :require_functional!
before_action :set_instance_presenter
def show
expires_in 0, public: true unless user_signed_in?
end
private
def set_instance_presenter
@instance_presenter = InstancePresenter.new
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
end
end

@ -7,16 +7,17 @@ class AccountsController < ApplicationController
include AccountControllerConcern
include SignatureAuthentication
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? }
before_action :set_cache_headers
skip_around_action :set_locale, if: -> { [:json, :rss].include?(request.format&.to_sym) }
skip_before_action :require_functional!, unless: :whitelist_mode?
skip_before_action :require_functional!, unless: :limited_federation_mode?
def show
respond_to do |format|
format.html do
expires_in 0, public: true unless user_signed_in?
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
@rss_url = rss_url
end

@ -7,10 +7,6 @@ class ActivityPub::BaseController < Api::BaseController
private
def set_cache_headers
response.headers['Vary'] = 'Signature' if authorized_fetch_mode?
end
def skip_temporary_suspension_response?
false
end

@ -4,11 +4,12 @@ class ActivityPub::CollectionsController < ActivityPub::BaseController
include SignatureVerification
include AccountOwnedConcern
vary_by -> { 'Signature' if authorized_fetch_mode? }
before_action :require_account_signature!, if: :authorized_fetch_mode?
before_action :set_items
before_action :set_size
before_action :set_type
before_action :set_cache_headers
def show
expires_in 3.minutes, public: public_fetch_mode?

@ -4,9 +4,10 @@ class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseContro
include SignatureVerification
include AccountOwnedConcern
vary_by -> { 'Signature' if authorized_fetch_mode? }
before_action :require_account_signature!
before_action :set_items
before_action :set_cache_headers
def show
expires_in 0, public: false

@ -6,9 +6,10 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
include SignatureVerification
include AccountOwnedConcern
vary_by -> { 'Signature' if authorized_fetch_mode? || page_requested? }
before_action :require_account_signature!, if: :authorized_fetch_mode?
before_action :set_statuses
before_action :set_cache_headers
def show
if page_requested?
@ -16,6 +17,7 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
else
expires_in(3.minutes, public: public_fetch_mode?)
end
render json: outbox_presenter, serializer: ActivityPub::OutboxSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
end
@ -80,8 +82,4 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
def set_account
@account = params[:account_username].present? ? Account.find_local!(username_param) : Account.representative
end
def set_cache_headers
response.headers['Vary'] = 'Signature' if authorized_fetch_mode? || page_requested?
end
end

@ -7,9 +7,10 @@ class ActivityPub::RepliesController < ActivityPub::BaseController
DESCENDANTS_LIMIT = 60
vary_by -> { 'Signature' if authorized_fetch_mode? }
before_action :require_account_signature!, if: :authorized_fetch_mode?
before_action :set_status
before_action :set_cache_headers
before_action :set_replies
def index

@ -14,6 +14,10 @@ class Admin::AnnouncementsController < Admin::BaseController
@announcement = Announcement.new
end
def edit
authorize :announcement, :update?
end
def create
authorize :announcement, :create?
@ -28,10 +32,6 @@ class Admin::AnnouncementsController < Admin::BaseController
end
end
def edit
authorize :announcement, :update?
end
def update
authorize :announcement, :update?

@ -9,6 +9,8 @@ module Admin
before_action :set_pack
before_action :set_body_classes
before_action :set_cache_headers
after_action :verify_authorized
private
@ -21,6 +23,10 @@ module Admin
use_pack 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
def set_user
@user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound)
end

@ -14,15 +14,5 @@ module Admin
@pending_tags_count = Tag.pending_review.count
@pending_appeals_count = Appeal.pending.count
end
private
def redis_info
@redis_info ||= if redis.is_a?(Redis::Namespace)
redis.redis.info
else
redis.info
end
end
end
end

@ -31,31 +31,41 @@ module Admin
@domain_block = DomainBlock.new(resource_params)
existing_domain_block = resource_params[:domain].present? ? DomainBlock.rule_for(resource_params[:domain]) : nil
# Disallow accidentally downgrading a domain block
if existing_domain_block.present? && !@domain_block.stricter_than?(existing_domain_block)
@domain_block.save
flash.now[:alert] = I18n.t('admin.domain_blocks.existing_domain_block_html', name: existing_domain_block.domain, unblock_url: admin_domain_block_path(existing_domain_block)).html_safe # rubocop:disable Rails/OutputSafety
flash.now[:alert] = I18n.t('admin.domain_blocks.existing_domain_block_html', name: existing_domain_block.domain, unblock_url: admin_domain_block_path(existing_domain_block)).html_safe
@domain_block.errors.delete(:domain)
render :new
return render :new
end
# Allow transparently upgrading a domain block
if existing_domain_block.present? && existing_domain_block.domain == TagManager.instance.normalize_domain(@domain_block.domain.strip)
@domain_block = existing_domain_block
@domain_block.assign_attributes(resource_params)
end
# Require explicit confirmation when suspending
return render :confirm_suspension if requires_confirmation?
if @domain_block.save
DomainBlockWorker.perform_async(@domain_block.id)
log_action :create, @domain_block
redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg')
else
if existing_domain_block.present?
@domain_block = existing_domain_block
@domain_block.update(resource_params)
end
if @domain_block.save
DomainBlockWorker.perform_async(@domain_block.id)
log_action :create, @domain_block
redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg')
else
render :new
end
render :new
end
end
def update
authorize :domain_block, :update?
if @domain_block.update(update_params)
@domain_block.assign_attributes(update_params)
# Require explicit confirmation when suspending
return render :confirm_suspension if requires_confirmation?
if @domain_block.save
DomainBlockWorker.perform_async(@domain_block.id, @domain_block.severity_previously_changed?)
log_action :update, @domain_block
redirect_to admin_instances_path(limited: '1'), notice: I18n.t('admin.domain_blocks.created_msg')
@ -92,5 +102,9 @@ module Admin
def action_from_button
'save' if params[:save]
end
def requires_confirmation?
@domain_block.valid? && (@domain_block.new_record? || @domain_block.severity_changed?) && @domain_block.severity.to_s == 'suspend' && !params[:confirm]
end
end
end

@ -65,7 +65,7 @@ module Admin
end
def filtered_instances
InstanceFilter.new(whitelist_mode? ? { allowed: true } : filter_params).results
InstanceFilter.new(limited_federation_mode? ? { allowed: true } : filter_params).results
end
def filter_params

@ -16,6 +16,10 @@ module Admin
@role = UserRole.new
end
def edit
authorize @role, :update?
end
def create
authorize :user_role, :create?
@ -30,10 +34,6 @@ module Admin
end
end
def edit
authorize @role, :update?
end
def update
authorize @role, :update?

@ -11,6 +11,10 @@ module Admin
@rule = Rule.new
end
def edit
authorize @rule, :update?
end
def create
authorize :rule, :create?
@ -24,10 +28,6 @@ module Admin
end
end
def edit
authorize @rule, :update?
end
def update
authorize @rule, :update?

@ -0,0 +1,18 @@
# frozen_string_literal: true
module Admin
class SoftwareUpdatesController < BaseController
before_action :check_enabled!
def index
authorize :software_update, :index?
@software_updates = SoftwareUpdate.all.sort_by(&:gem_version)
end
private
def check_enabled!
not_found unless SoftwareUpdate.check_enabled?
end
end
end

@ -11,6 +11,10 @@ module Admin
@warning_preset = AccountWarningPreset.new
end
def edit
authorize @warning_preset, :update?
end
def create
authorize :account_warning_preset, :create?
@ -24,10 +28,6 @@ module Admin
end
end
def edit
authorize @warning_preset, :update?
end
def update
authorize @warning_preset, :update?

@ -10,16 +10,25 @@ module Admin
@webhooks = Webhook.page(params[:page])
end
def show
authorize @webhook, :show?
end
def new
authorize :webhook, :create?
@webhook = Webhook.new
end
def edit
authorize @webhook, :update?
end
def create
authorize :webhook, :create?
@webhook = Webhook.new(resource_params)
@webhook.current_account = current_account
if @webhook.save
redirect_to admin_webhook_path(@webhook)
@ -28,21 +37,15 @@ module Admin
end
end
def show
authorize @webhook, :show?
end
def edit
authorize @webhook, :update?
end
def update
authorize @webhook, :update?
@webhook.current_account = current_account
if @webhook.update(resource_params)
redirect_to admin_webhook_path(@webhook)
else
render :show
render :edit
end
end
@ -71,7 +74,7 @@ module Admin
end
def resource_params
params.require(:webhook).permit(:url, events: [])
params.require(:webhook).permit(:url, :template, events: [])
end
end
end

@ -6,13 +6,14 @@ class Api::BaseController < ApplicationController
include RateLimitHeaders
include AccessTokenTrackingConcern
include ApiCachingConcern
skip_before_action :store_current_location
skip_before_action :require_functional!, unless: :whitelist_mode?
skip_before_action :require_functional!, unless: :limited_federation_mode?
before_action :require_authenticated_user!, if: :disallow_unauthenticated_api_access?
before_action :require_not_suspended!
before_action :set_cache_headers
vary_by 'Authorization'
protect_from_forgery with: :null_session
@ -148,12 +149,8 @@ class Api::BaseController < ApplicationController
doorkeeper_authorize!(*scopes) if doorkeeper_token
end
def set_cache_headers
response.headers['Cache-Control'] = 'private, no-store'
end
def disallow_unauthenticated_api_access?
ENV['DISALLOW_UNAUTHENTICATED_API_ACCESS'] == 'true' || Rails.configuration.x.whitelist_mode
ENV['DISALLOW_UNAUTHENTICATED_API_ACCESS'] == 'true' || Rails.configuration.x.limited_federation_mode
end
private

@ -30,6 +30,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
:bot,
:discoverable,
:hide_collections,
:indexable,
fields_attributes: [:name, :value]
)
end

@ -6,6 +6,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
after_action :insert_pagination_headers
def index
cache_if_unauthenticated!
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
end

@ -6,6 +6,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
after_action :insert_pagination_headers
def index
cache_if_unauthenticated!
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
end

@ -5,6 +5,7 @@ class Api::V1::Accounts::LookupController < Api::BaseController
before_action :set_account
def show
cache_if_unauthenticated!
render json: @account, serializer: REST::AccountSerializer
end

@ -7,6 +7,7 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
after_action :insert_pagination_headers, unless: -> { truthy_param?(:pinned) }
def index
cache_if_unauthenticated!
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
end

@ -18,6 +18,7 @@ class Api::V1::AccountsController < Api::BaseController
override_rate_limit_headers :follow, family: :follows
def show
cache_if_unauthenticated!
render json: @account, serializer: REST::AccountSerializer
end
@ -89,7 +90,7 @@ class Api::V1::AccountsController < Api::BaseController
end
def account_params
params.permit(:username, :email, :password, :agreement, :locale, :reason)
params.permit(:username, :email, :password, :agreement, :locale, :reason, :time_zone)
end
def check_enabled_registrations

@ -58,7 +58,7 @@ class Api::V1::Admin::CanonicalEmailBlocksController < Api::BaseController
end
def set_canonical_email_blocks_from_test
@canonical_email_blocks = CanonicalEmailBlock.matching_email(params[:email])
@canonical_email_blocks = CanonicalEmailBlock.matching_email(params.require(:email))
end
def set_canonical_email_block

@ -16,10 +16,20 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController
PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :domain_allow, :index?
render json: @domain_allows, each_serializer: REST::Admin::DomainAllowSerializer
end
def show
authorize @domain_allow, :show?
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end
def create
authorize :domain_allow, :create?
@domain_allow = DomainAllow.find_by(resource_params)
@domain_allow = DomainAllow.find_by(domain: resource_params[:domain])
if @domain_allow.nil?
@domain_allow = DomainAllow.create!(resource_params)
@ -29,16 +39,6 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end
def index
authorize :domain_allow, :index?
render json: @domain_allows, each_serializer: REST::Admin::DomainAllowSerializer
end
def show
authorize @domain_allow, :show?
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end
def destroy
authorize @domain_allow, :destroy?
UnallowDomainService.new.call(@domain_allow)

@ -16,6 +16,16 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :domain_block, :index?
render json: @domain_blocks, each_serializer: REST::Admin::DomainBlockSerializer
end
def show
authorize @domain_block, :show?
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end
def create
authorize :domain_block, :create?
@ -28,16 +38,6 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end
def index
authorize :domain_block, :index?
render json: @domain_blocks, each_serializer: REST::Admin::DomainBlockSerializer
end
def show
authorize @domain_block, :show?
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end
def update
authorize @domain_block, :update?
@domain_block.update!(domain_block_params)

@ -18,15 +18,6 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController
limit
).freeze
def create
authorize :email_domain_block, :create?
@email_domain_block = EmailDomainBlock.create!(resource_params)
log_action :create, @email_domain_block
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end
def index
authorize :email_domain_block, :index?
render json: @email_domain_blocks, each_serializer: REST::Admin::EmailDomainBlockSerializer
@ -37,6 +28,15 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end
def create
authorize :email_domain_block, :create?
@email_domain_block = EmailDomainBlock.create!(resource_params)
log_action :create, @email_domain_block
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end
def destroy
authorize @email_domain_block, :destroy?
@email_domain_block.destroy!

@ -18,13 +18,6 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController
limit
).freeze
def create
authorize :ip_block, :create?
@ip_block = IpBlock.create!(resource_params)
log_action :create, @ip_block
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end
def index
authorize :ip_block, :index?
render json: @ip_blocks, each_serializer: REST::Admin::IpBlockSerializer
@ -35,6 +28,13 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end
def create
authorize :ip_block, :create?
@ip_block = IpBlock.create!(resource_params)
log_action :create, @ip_block
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end
def update
authorize @ip_block, :update?
@ip_block.update(resource_params)

@ -0,0 +1,74 @@
# frozen_string_literal: true
class Api::V1::Admin::TagsController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }, only: [:index, :show]
before_action -> { authorize_if_got_token! :'admin:write' }, only: :update
before_action :set_tags, only: :index
before_action :set_tag, except: :index
after_action :insert_pagination_headers, only: :index
after_action :verify_authorized
LIMIT = 100
PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :tag, :index?
render json: @tags, each_serializer: REST::Admin::TagSerializer
end
def show
authorize @tag, :show?
render json: @tag, serializer: REST::Admin::TagSerializer
end
def update
authorize @tag, :update?
@tag.update!(tag_params.merge(reviewed_at: Time.now.utc))
render json: @tag, serializer: REST::Admin::TagSerializer
end
private
def set_tag
@tag = Tag.find(params[:id])
end
def set_tags
@tags = Tag.all.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
end
def tag_params
params.permit(:display_name, :trendable, :usable, :listable)
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
end
def next_path
api_v1_admin_tags_url(pagination_params(max_id: pagination_max_id)) if records_continue?
end
def prev_path
api_v1_admin_tags_url(pagination_params(min_id: pagination_since_id)) unless @tags.empty?
end
def pagination_max_id
@tags.last.id
end
def pagination_since_id
@tags.first.id
end
def records_continue?
@tags.size == limit_param(LIMIT)
end
def pagination_params(core_params)
params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params)
end
end

@ -0,0 +1,72 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::Links::PreviewCardProvidersController < Api::BaseController
include Authorization
LIMIT = 100
before_action -> { authorize_if_got_token! :'admin:read' }, only: :index
before_action -> { authorize_if_got_token! :'admin:write' }, except: :index
before_action :set_providers, only: :index
after_action :verify_authorized
after_action :insert_pagination_headers, only: :index
PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :preview_card_provider, :index?
render json: @providers, each_serializer: REST::Admin::Trends::Links::PreviewCardProviderSerializer
end
def approve
authorize :preview_card_provider, :review?
provider = PreviewCardProvider.find(params[:id])
provider.update(trendable: true, reviewed_at: Time.now.utc)
render json: provider, serializer: REST::Admin::Trends::Links::PreviewCardProviderSerializer
end
def reject
authorize :preview_card_provider, :review?
provider = PreviewCardProvider.find(params[:id])
provider.update(trendable: false, reviewed_at: Time.now.utc)
render json: provider, serializer: REST::Admin::Trends::Links::PreviewCardProviderSerializer
end
private
def set_providers
@providers = PreviewCardProvider.all.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
end
def next_path
api_v1_admin_trends_links_preview_card_providers_url(pagination_params(max_id: pagination_max_id)) if records_continue?
end
def prev_path
api_v1_admin_trends_links_preview_card_providers_url(pagination_params(min_id: pagination_since_id)) unless @providers.empty?
end
def pagination_max_id
@providers.last.id
end
def pagination_since_id
@providers.first.id
end
def records_continue?
@providers.size == limit_param(LIMIT)
end
def pagination_params(core_params)
params.slice(*PAGINATION_PARAMS).permit(*PAGINATION_PARAMS).merge(core_params)
end
end

@ -1,7 +1,36 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::LinksController < Api::V1::Trends::LinksController
before_action -> { authorize_if_got_token! :'admin:read' }
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }, only: :index
before_action -> { authorize_if_got_token! :'admin:write' }, except: :index
after_action :verify_authorized, except: :index
def index
if current_user&.can?(:manage_taxonomies)
render json: @links, each_serializer: REST::Admin::Trends::LinkSerializer
else
super
end
end
def approve
authorize :preview_card, :review?
link = PreviewCard.find(params[:id])
link.update(trendable: true)
render json: link, serializer: REST::Admin::Trends::LinkSerializer
end
def reject
authorize :preview_card, :review?
link = PreviewCard.find(params[:id])
link.update(trendable: false)
render json: link, serializer: REST::Admin::Trends::LinkSerializer
end
private

@ -1,7 +1,36 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::StatusesController < Api::V1::Trends::StatusesController
before_action -> { authorize_if_got_token! :'admin:read' }
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }, only: :index
before_action -> { authorize_if_got_token! :'admin:write' }, except: :index
after_action :verify_authorized, except: :index
def index
if current_user&.can?(:manage_taxonomies)
render json: @statuses, each_serializer: REST::Admin::Trends::StatusSerializer
else
super
end
end
def approve
authorize [:admin, :status], :review?
status = Status.find(params[:id])
status.update(trendable: true)
render json: status, serializer: REST::Admin::Trends::StatusSerializer
end
def reject
authorize [:admin, :status], :review?
status = Status.find(params[:id])
status.update(trendable: false)
render json: status, serializer: REST::Admin::Trends::StatusSerializer
end
private

@ -1,7 +1,12 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::TagsController < Api::V1::Trends::TagsController
before_action -> { authorize_if_got_token! :'admin:read' }
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }, only: :index
before_action -> { authorize_if_got_token! :'admin:write' }, except: :index
after_action :verify_authorized, except: :index
def index
if current_user&.can?(:manage_taxonomies)
@ -11,6 +16,22 @@ class Api::V1::Admin::Trends::TagsController < Api::V1::Trends::TagsController
end
end
def approve
authorize :tag, :review?
tag = Tag.find(params[:id])
tag.update(trendable: true, reviewed_at: Time.now.utc)
render json: tag, serializer: REST::Admin::TagSerializer
end
def reject
authorize :tag, :review?
tag = Tag.find(params[:id])
tag.update(trendable: false, reviewed_at: Time.now.utc)
render json: tag, serializer: REST::Admin::TagSerializer
end
private
def enabled?

@ -1,9 +1,9 @@
# frozen_string_literal: true
class Api::V1::Apps::CredentialsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read }
def show
render json: doorkeeper_token.application, serializer: REST::ApplicationSerializer, fields: %i(name website vapid_key)
return doorkeeper_render_error unless valid_doorkeeper_token?
render json: doorkeeper_token.application, serializer: REST::ApplicationSerializer, fields: %i(name website vapid_key client_id scopes)
end
end

@ -21,7 +21,7 @@ class Api::V1::BookmarksController < Api::BaseController
end
def results
@_results ||= account_bookmarks.joins(:status).eager_load(:status).to_a_paginated_by_id(
@results ||= account_bookmarks.joins(:status).eager_load(:status).to_a_paginated_by_id(
limit_param(DEFAULT_STATUSES_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)

@ -11,7 +11,7 @@ class Api::V1::ConversationsController < Api::BaseController
def index
@conversations = paginated_conversations
render json: @conversations, each_serializer: REST::ConversationSerializer
render json: @conversations, each_serializer: REST::ConversationSerializer, relationships: StatusRelationshipsPresenter.new(@conversations.map(&:last_status), current_user&.account_id)
end
def read
@ -19,6 +19,11 @@ class Api::V1::ConversationsController < Api::BaseController
render json: @conversation, serializer: REST::ConversationSerializer
end
def unread
@conversation.update!(unread: true)
render json: @conversation, serializer: REST::ConversationSerializer
end
def destroy
@conversation.destroy!
render_empty
@ -32,6 +37,19 @@ class Api::V1::ConversationsController < Api::BaseController
def paginated_conversations
AccountConversation.where(account: current_account)
.includes(
account: :account_stat,
last_status: [
:media_attachments,
:preview_cards,
:status_stat,
:tags,
{
active_mentions: [account: :account_stat],
account: :account_stat,
},
]
)
.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
end

@ -1,10 +1,10 @@
# frozen_string_literal: true
class Api::V1::CustomEmojisController < Api::BaseController
skip_before_action :set_cache_headers
vary_by '', unless: :disallow_unauthenticated_api_access?
def index
expires_in 3.minutes, public: true
cache_even_if_authenticated! unless disallow_unauthenticated_api_access?
render_with_cache(each_serializer: REST::CustomEmojiSerializer) { CustomEmoji.listed.includes(:category) }
end
end

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save