Compare commits

...

1045 Commits

Author SHA1 Message Date
Claire 1726085db5
Merge pull request from GHSA-3fjr-858r-92rw
* Fix insufficient origin validation

* Bump version to 4.3.0-alpha.1
2024-02-01 15:56:46 +01:00
Eugen Rochko 9cdc60ecc6
Change onboarding prompt to follow suggestions carousel in web UI (#28878) 2024-02-01 13:37:04 +00:00
Claire 7316a08380
Fix missing `workflow_dispatch` trigger for `build-security` (#29041) 2024-02-01 09:52:01 +00:00
Matt Jankowski 8b7b0ee598
Configure selenium to use Chrome version 120 (#29038) 2024-02-01 09:46:31 +00:00
Claire 812a131423
Add github action workflow for manual security builds (#29040) 2024-02-01 09:33:12 +00:00
Matt Jankowski dd934ebb07
Update `actions/cache` to v4 (updates node 16->20) (#29025) 2024-01-31 16:55:50 +00:00
renovate[bot] 738dba0cf7
Update dependency capybara to v3.40.0 (#28966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 12:55:15 +00:00
Matt Jankowski 022d2a3793
Make factory gems available in test+development envs (#28969) 2024-01-31 12:52:51 +00:00
Eugen Rochko fa0ba67753
Change materialized views to be refreshed concurrently to avoid locks (#29015) 2024-01-30 18:21:30 +00:00
Eugen Rochko c4af668e5c
Fix follow recommendations for less used languages (#29017) 2024-01-30 17:24:40 +00:00
renovate[bot] 0c0d077276
Update dependency chewy to v7.5.1 (#29018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 15:40:43 +00:00
renovate[bot] 0bc526a967
Update eslint (non-major) (#29001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 15:39:59 +00:00
renovate[bot] 8c08e5cdb2
Update devDependencies (non-major) (#29000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 15:39:34 +00:00
Matt Jankowski ce0d134147
Add `redirect_with_vary` to `AllowedMethods` for `Style/FormatStringToken` cop (#28973) 2024-01-30 15:39:01 +00:00
Matt Jankowski 86fbde7b46
Fix `Style/NumericLiterals` cop in ProfileStories support module (#28971) 2024-01-30 15:38:33 +00:00
Yamagishi Kazutoshi b3075a9993
Remove unused l18n messages (#28964) 2024-01-30 15:34:07 +00:00
Matt Jankowski f91acba70a
Combine repeated requests in account controller concern spec (#28957) 2024-01-30 15:32:20 +00:00
renovate[bot] 9d3830344f
Update dependency immutable to v4.3.5 (#28933)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 15:30:39 +00:00
Matt Jankowski adcd693b71
Use existing `MediaAttachment.remote` scope in media CLI (#28912) 2024-01-30 15:29:42 +00:00
J H 1467f1e1e1
Fixed the toggle emoji dropdown bug (#29012) 2024-01-30 13:38:49 +00:00
Matt Jankowski ff8937aa2c
Move `api/v1/statuses/*` to request spec (#28954) 2024-01-26 17:45:54 +00:00
Matt Jankowski 44f6d285af
Combine repeated subject in ap fetch remote actor service spec (#28953) 2024-01-26 17:44:12 +00:00
Matt Jankowski 239244e2ed
Combine repeated subject in ap fetch remote account service spec (#28952) 2024-01-26 17:43:08 +00:00
Matt Jankowski 5119fbc9b7
Move `api/v1/admin/trends/links/preview_card_providers` to request spec (#28951) 2024-01-26 17:41:39 +00:00
Matt Jankowski b6baab447d
Move `api/v2/admin/accounts` to request spec (#28950) 2024-01-26 17:41:13 +00:00
Matt Jankowski 7adcc0aae3
Move `api/v1/trends/*` to request specs (#28949) 2024-01-26 17:40:39 +00:00
Matt Jankowski 0b0ca6f3b8
Move `api/v1/timelines/list` to request spec (#28948) 2024-01-26 17:40:15 +00:00
renovate[bot] 87ad398ddc
Update formatjs monorepo (#28925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 16:49:16 +00:00
renovate[bot] f4a12adfb7
Update dependency axios to v1.6.7 (#28917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 16:49:09 +00:00
renovate[bot] 160c8f4923
Update babel monorepo to v7.23.9 (#28916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 16:49:03 +00:00
Matt Jankowski e519f113e8
Combine repeated subject in `cacheable response` shared example (#28945) 2024-01-26 16:37:05 +00:00
Matt Jankowski d791bca11b
Combine double subject in `well_known/webfinger` shared example (#28944) 2024-01-26 16:36:21 +00:00
Matt Jankowski 09a3493fca
Combine double subject in `api/v1/media` shared example (#28943) 2024-01-26 16:35:49 +00:00
Matt Jankowski 5fbdb2055b
Combine repeated `subject` in `cli/accounts` spec shared example (#28942) 2024-01-26 16:35:19 +00:00
Matt Jankowski 1a30a517d6
Combine repeated subjects in link details extractor spec (#28941) 2024-01-26 16:31:07 +00:00
Matt Jankowski 685eaa04d4
Combine double subject in admin/statuses controller shared example (#28940) 2024-01-26 16:30:30 +00:00
Matt Jankowski beb74fd71c
Combine double subjects in instance actors controller shared example (#28939) 2024-01-26 16:28:50 +00:00
Matt Jankowski beaef4b672
Combine double subjects in application controller shared example (#28938) 2024-01-26 16:23:12 +00:00
Matt Jankowski 6d35a77c92
Combine repeated subjects in `models/user` spec (#28937) 2024-01-26 16:22:44 +00:00
Matt Jankowski 2f8656334d
Combine double subjects in `admin/accounts` controller spec (#28936) 2024-01-26 16:21:31 +00:00
Matt Jankowski 9cc1817bb4
Fix intmermittent failure in `api/v1/accounts/statuses` controller spec (#28931) 2024-01-26 14:10:26 +00:00
Claire 805dba7f8d
Change compose form to use server-provided post character limit (#28928) 2024-01-26 14:09:45 +00:00
github-actions[bot] 45287049ab
New Crowdin Translations (automated) (#28923)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-26 09:15:55 +00:00
Matt Jankowski 0e0a94f483
Handle CLI failure exit status at the top-level script (#28322) 2024-01-26 08:53:44 +00:00
Emelia Smith 881e8c113c
Refactor: fix streaming postgresql and redis typing issues (#28747) 2024-01-25 16:46:02 +00:00
Eugen Rochko 6936e5aa69
Change design of compose form in web UI (#28119)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-25 15:41:31 +00:00
Matt Jankowski 42ab855b23
Add specs for `Instance` model scopes and add `with_domain_follows` scope (#28767) 2024-01-25 15:28:27 +00:00
Matt Jankowski 4cdf62e576
Extract `rebuild_index` method in maintenance CLI (#28911) 2024-01-25 15:26:51 +00:00
Matt Jankowski 0b38946c87
Update paperclip and climate_control gems (#28379) 2024-01-25 15:18:15 +00:00
Matt Jankowski 17ea22671d
Fix `Style/GuardClause` cop in app/controllers (#28420) 2024-01-25 15:13:41 +00:00
Eugen Rochko 3205a654ca
Refactor conversations components in web UI (#28833)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-25 14:34:26 +00:00
Matt Jankowski 274a48a9f4
Extract helper methods for db connection and table existence check in `CLI::Maintenance` task (#28281) 2024-01-25 13:49:33 +00:00
Matt Jankowski 2866106ec1
Reduce factory creation in `spec/models/account_statuses_cleanup_policy` (#28361) 2024-01-25 13:37:25 +00:00
Matt Jankowski c8f59d2ca4
Fix `Style/TernaryParentheses` cop (#28387) 2024-01-25 13:28:49 +00:00
Matt Jankowski ca7053f19c
Consolidate db test prep steps to rake task (#28886) 2024-01-25 13:10:39 +00:00
github-actions[bot] 59d2ea0d82
New Crowdin Translations (automated) (#28899)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-25 13:00:44 +00:00
Matt Jankowski 6b6586f5d0
Add `CustomFilterKeyword#to_regex` method (#28893) 2024-01-25 13:00:34 +00:00
renovate[bot] a69506a434
fix(deps): update dependency dotenv to v16.4.1 (#28889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 12:37:23 +00:00
Matt Jankowski 7c9c6c7f80
Fix remaining `Rails/WhereExists` cop violations, regenerate todo (#28892) 2024-01-25 12:37:07 +00:00
renovate[bot] 1a565e4bea
fix(deps): update dependency axios to v1.6.6 (#28895)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 12:36:20 +00:00
renovate[bot] d158f7e622
chore(deps): update dependency rspec-rails to v6.1.1 (#28905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 12:33:56 +00:00
Claire 087415d0fe
Add tests for processing statuses using bearcap URIs (#28904) 2024-01-25 11:13:36 +00:00
Claire 0471a78055
Add tests for redirect confirmations (#28903) 2024-01-25 11:13:33 +00:00
Claire c50274a0ac
Fix redirect confirmation for accounts (#28902) 2024-01-25 10:44:25 +00:00
KMY(雪あすか) 9a8293f58d
Fix process of receiving posts with bearcaps is not working (#26527) 2024-01-25 10:37:09 +00:00
Matt Jankowski 38f7f8b909
Tidy up association declaration in `Instance` model (#28880) 2024-01-24 17:30:28 +00:00
renovate[bot] 9c5be13980
chore(deps): update dependency chewy to v7.5.0 (#28730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 16:51:47 +00:00
renovate[bot] 7019af431d
fix(deps): update dependency dotenv to v16.4.0 (#28872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 16:51:36 +00:00
renovate[bot] 559bbf0aa6
chore(deps): update artifact actions (major) to v4 (major) (#28415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 16:51:18 +00:00
renovate[bot] ea5397c373
chore(deps): update dependency selenium-webdriver to v4.17.0 (#28858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 14:55:06 +00:00
renovate[bot] 64993d3f77
chore(deps): update dependency haml_lint to v0.55.0 (#28856)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 13:37:37 +00:00
Claire 5a838ceaa9
Use active variants for boost icons and increase icon size (#27924) 2024-01-24 12:37:43 +00:00
Matt Jankowski 1290fede65
Fix `Rails/WhereExists` cop in app/lib (#28862) 2024-01-24 11:51:09 +00:00
renovate[bot] 41c2af2270
chore(deps): update dependency rubocop to v1.60.1 (#28731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 11:50:41 +00:00
Eugen Rochko b19ae521b7
Add confirmation when redirecting logged-out requests to permalink (#27792)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-24 10:49:19 +00:00
Matt Jankowski 7a1f087659
Add `created_before` and `updated_before` scopes to `MediaAttachment` (#28869) 2024-01-24 10:32:54 +00:00
Matt Jankowski a11a2fb052
Add error classes to api/base errors coverage (#28864) 2024-01-24 10:31:31 +00:00
github-actions[bot] a34d27c18f
New Crowdin Translations (automated) (#28875)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-24 10:06:56 +00:00
Matt Jankowski 9d413cbaf8
Fix `Rails/WhereExists` cop in app/models (#28863) 2024-01-24 09:57:49 +00:00
Matt Jankowski 599bc69503
Simplify `AccountSummary.filtered` query generation (#28868) 2024-01-24 09:57:32 +00:00
Eugen Rochko 5b1eb09d54
Add annual reports for accounts (#28693) 2024-01-24 09:38:10 +00:00
Eugen Rochko 01ce9df880
Fix search form re-rendering spuriously in web UI (#28876) 2024-01-24 07:03:30 +00:00
renovate[bot] 61a0ec69fc
chore(deps): update devdependencies (non-major) (#28840)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2024-01-23 11:44:50 +00:00
Matt Jankowski c0e8e457ab
Eager loading fixes for `api/` controllers (#28848) 2024-01-23 11:41:54 +00:00
Matt Jankowski ceade78182
Fix `Rails/WhereExists` cop in app/services (#28853) 2024-01-23 11:41:34 +00:00
github-actions[bot] 78ee1453f9
New Crowdin Translations (automated) (#28857)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-23 10:11:37 +00:00
Matt Jankowski d03fe2bdee
N+1 fixes for CLI maintenance command (#28847) 2024-01-23 09:31:59 +00:00
Matt Jankowski b0207d7757
Add coverage for `Tag.recently_used` scope (#28850) 2024-01-23 09:10:11 +00:00
Matt Jankowski defe5f4076
Fix `Rails/WhereExists` cop in lib/tasks (#28852) 2024-01-23 09:07:22 +00:00
Matt Jankowski 67f54c4e75
Fix `Rails/WhereExists` cop in app/validators (#28854) 2024-01-23 09:06:53 +00:00
Claire e2d9635074
Add notification email on invalid second authenticator (#28822) 2024-01-22 13:55:43 +00:00
Matt Jankowski 18004bf227
Add `Account.matches_uri_prefix` scope and use in activitypub/followers_synchronizations controller (#28820) 2024-01-22 13:55:37 +00:00
Matt Jankowski 7ecf7f5403
Move controller->request specs for api/v1/statuses/* (#28818) 2024-01-22 11:58:54 +00:00
Matt Jankowski 5efb00ddb8
Use ruby version 3.2.3 (#28817) 2024-01-22 11:55:51 +00:00
github-actions[bot] 76e383ea1e
New Crowdin Translations (automated) (#28827)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-22 11:52:26 +00:00
Andy Piper 9620b21259
docs: update FEDERATION.md to more closely follow FEP conventions. (#28838) 2024-01-22 11:11:47 +00:00
renovate[bot] e078d0048c
Update dependency @types/react to v18.2.48 (#28839)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 11:08:22 +00:00
renovate[bot] a83aeccac9
Update dependency dotenv to v16.3.2 (#28824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 11:08:06 +00:00
renovate[bot] 9ff9849381
Update dependency core-js to v3.35.1 (#28831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 11:07:44 +00:00
renovate[bot] 62001b5a31
Update dependency jsdom to v24 (#28836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 11:04:28 +00:00
Emelia Smith 3fbf01918f
Streaming: Move more methods to the utils from the main file (#28825) 2024-01-22 10:02:26 +00:00
Eugen Rochko 9f8e3cca9a
Fix duplicate and missing keys in search popout component in web UI (#28834) 2024-01-21 07:44:46 +00:00
Claire 93957daa50
Fix error when processing remote files with unusually long names (#28823) 2024-01-19 18:52:59 +00:00
Claire cf2a2ed71c
Fix processing of compacted single-item JSON-LD collections (#28816) 2024-01-19 12:43:10 +00:00
Claire 3593ee2e36
Add rate-limit of TOTP authentication attempts at controller level (#28801) 2024-01-19 12:19:49 +00:00
Matt Jankowski 5fc4ae7c5f
Move privacy policy into markdown file (#28699) 2024-01-19 11:22:23 +00:00
Matt Jankowski 6a5d70e146
Update pre_migration_check postgres version requirement (#28800) 2024-01-19 11:20:20 +00:00
github-actions[bot] 9cd17020bc
New Crowdin Translations (automated) (#28798)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-19 09:41:57 +00:00
renovate[bot] 163db814c2
Update dependency react-redux to v9.1.0 (#28717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2024-01-19 09:41:03 +00:00
Matt Jankowski 4ec7d7d989
Fix `Rails/WhereExists` cop in REST::TagSerializer model (#28790) 2024-01-19 09:35:58 +00:00
Matt Jankowski 329911b0a3
Migrate controller->request spec for api/v1/follow* (#28811) 2024-01-19 09:32:41 +00:00
HTeuMeuLeu 86cc88c216
Fix banner image not showing in follow emails (#28814) 2024-01-19 09:23:59 +00:00
renovate[bot] 6a1c998722
Update dependency kt-paperclip to v7.2.2 (#28813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 09:21:07 +00:00
renovate[bot] 6dc97321a3
Update dependency intl-messageformat to v10.5.10 (#28809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 09:20:16 +00:00
Matt Jankowski fd64817fbe
Fix `Rails/WhereExists` cop in app/lib/status_cache_hydrator (#28808) 2024-01-19 09:19:48 +00:00
Jonathan de Jong de09176ab9
Retry 401 errors on replies fetching (#28788)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-19 09:18:21 +00:00
Matt Jankowski 1480573c83
Add `Account.auditable` scope, fix N+1 in admin/action_logs#index (#28812) 2024-01-19 01:39:30 +00:00
renovate[bot] 5ae3bae586
Update dependency sass to v1.70.0 (#28799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 18:43:03 +00:00
renovate[bot] 244182ad63
Update dependency rdf-normalize to v0.7.0 (#26769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 18:42:07 +00:00
Emelia Smith 1335083bed
Streaming: replace npmlog with pino & pino-http (#27828) 2024-01-18 18:40:25 +00:00
Matt Jankowski f866413e72
Extract shared tagged statuses method in `FeaturedTag` (#28805) 2024-01-18 16:14:15 +00:00
Matt Jankowski f0b93ab02f
Use AR `database_version` in PG version checks in migrations (#28804) 2024-01-18 16:11:50 +00:00
Matt Jankowski d0b3bc23d7
Remove unused `matches_domain` scopes on Account, DomainAllow, DomainBlock (#28803) 2024-01-18 16:11:04 +00:00
Matt Jankowski 0b853678a4
Add coverage for `api/v1/peers/search` endpoint and extract controller query to Instance scope (#28796) 2024-01-18 15:57:10 +00:00
Matt Jankowski 2115bc52e4
Order by sql in `CLI::Maintenance` task (#28289) 2024-01-18 14:53:29 +00:00
Matt Jankowski 9fb9ef418a
Fix `Rails/WhereExists` cop in User model (#28792) 2024-01-18 13:55:44 +00:00
Matt Jankowski 81e4e65610
Update links to upstream migration helpers, remove unused methods (#28781) 2024-01-18 12:29:54 +00:00
Matt Jankowski aaa6f2e930
Group common `class_name` options in associations (#28779) 2024-01-18 12:29:41 +00:00
Matt Jankowski da31792ac7
Fix `Rails/WhereExists` cop in FeaturedTag model (#28791) 2024-01-18 12:22:12 +00:00
Matt Jankowski 3d82040b26
Reduced repeated setup in `UnallowDomainService` spec (#28785) 2024-01-18 10:11:10 +00:00
Matt Jankowski 6c5a2d51bc
Reduced repeated setup in `PurgeDomainService` spec (#28786) 2024-01-18 10:07:49 +00:00
Matt Jankowski 07e10e3747
Combine assertions about same setup in `Account#suspend!` spec (#28787) 2024-01-18 09:36:59 +00:00
Matt Jankowski 89c9a4502d
Fix `Rails/WhereExists` cop in account/interactions concern (#28789) 2024-01-18 09:36:16 +00:00
renovate[bot] 4c23297c04
Update dependency autoprefixer to v10.4.17 (#28794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 09:33:21 +00:00
renovate[bot] 83a90f20d7
Update dependency async-mutex to v0.4.1 (#28797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 09:31:59 +00:00
Matt Jankowski 127503eb2c
Fix `Rails/RakeEnvironment` cop (#28782) 2024-01-17 16:33:17 +00:00
Santiago Kozak 30b193b856
Improve display of lock icon in account headers (#28780) 2024-01-17 16:32:30 +00:00
Matt Jankowski 09f76c5c8d
Regenerate rubocop todo, removes last `Layout/LineLength` violation (#28778) 2024-01-17 15:42:13 +00:00
Claire e817fe4c35
Change media “ALT” label to a specific class (#28777) 2024-01-17 15:32:56 +00:00
HTeuMeuLeu 1a3859d8e2
Update follow and follow_request emails (#28755)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-17 14:37:04 +00:00
Matt Jankowski 6fab50ba9e
Use bundler version 2.5.4 (#28765) 2024-01-17 14:35:55 +00:00
github-actions[bot] 1ab42ad12b
New Crowdin Translations (automated) (#28749)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-17 14:23:14 +00:00
Matt Jankowski 9a475ea8b3
Finish up the CLI spec area pattern adoption for `CLI::Accounts#refresh` specs (#28764) 2024-01-17 13:38:37 +00:00
Renaud Chaput cb5ac15923
Use a helper to avoid using `media/` asset prefixes (#28756) 2024-01-17 12:19:51 +00:00
Claire baab58c80b
Fix various icon alignment issues (#28775) 2024-01-17 10:42:47 +00:00
Matt Jankowski c523a9601b
Rename local webpack* var in development env CSP config (#28766) 2024-01-17 09:22:16 +00:00
Matt Jankowski 1b0cb3b54d
Announcement reactions query spec improvement and refactor (#28768) 2024-01-17 09:18:13 +00:00
renovate[bot] afb5e6cf46
Update dependency rails to v7.1.3 (#28772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 09:11:22 +00:00
renovate[bot] 259874f2ac
Update dependency @rails/ujs to v7.1.3 (#28771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 09:11:18 +00:00
Matt Jankowski 0ce081fe49
Remove monkey patch in favor of supported Devise config value (#28760) 2024-01-17 09:08:17 +00:00
renovate[bot] 8cc322a0e1
Update dependency concurrent-ruby to v1.2.3 (#28754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 09:06:38 +00:00
renovate[bot] bd538598c2
Update formatjs monorepo (#28751)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 18:34:53 +00:00
renovate[bot] 4e277f83dc
Update devDependencies (non-major) (#28728)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2024-01-16 18:34:22 +00:00
renovate[bot] e85e2929aa
Update eslint (non-major) (#28729)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 17:53:32 +00:00
Renaud Chaput 01b6c83c36
Add a new `@/` alias for the root frontend directory and use it where possible (#28753) 2024-01-16 10:27:26 +00:00
Jeong Arm f0abba67db
Ignore RecordNotUnique errors in LinkCrawlWorker (#28748) 2024-01-16 08:35:54 +00:00
renovate[bot] f09035cc3f
Update dependency stackprof to v0.2.26 (#28743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 08:32:40 +00:00
Matt Jankowski b4c332104a
Use top-level `warn` in JS errors check (#28745) 2024-01-15 21:26:11 +00:00
HTeuMeuLeu 7f471e70c0
Update new email templates (#28416)
Co-authored-by: Matt Jankowski <matt@jankowski.online>
2024-01-15 18:18:59 +00:00
Claire 98b5f85f10
Rename and refactor `User#confirm!` to `User#mark_email_as_confirmed!` (#28735) 2024-01-15 18:04:58 +00:00
Claire e621c1c44c
Fix registrations not checking MX records for email domain blocks requiring approval (#28608) 2024-01-15 17:10:57 +00:00
Matt Jankowski a2f02a0775
Disable `Rails/SkipsModelValidations` cop (#28712) 2024-01-15 13:46:47 +00:00
renovate[bot] b5afbe0a61
Update dependency bootsnap to v1.17.1 (#28713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 11:17:25 +00:00
renovate[bot] 367be82a29
Update libretranslate/libretranslate Docker tag to v1.5.4 (#28727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 11:09:28 +00:00
Claire 8cb4825c8b
Fix sign-up restrictions based on email addresses not being enforced (#28732) 2024-01-15 11:06:48 +00:00
renovate[bot] 8013d6c56d
Update dependency faker to v3.2.3 (#28720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 11:06:28 +00:00
github-actions[bot] 1012ffac9e
New Crowdin Translations (automated) (#28721)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-15 11:06:25 +00:00
Claire e81c5c0a51
Ignore the devise-two-factor advisory as we have rate limits in place (#28733) 2024-01-15 10:45:48 +00:00
Emelia Smith 58830be943
Streaming: Rework websocket server initialisation & authentication code (#28631) 2024-01-15 10:36:30 +00:00
Matt Jankowski e72676e83a
Improve `api/v1/markers#create` performance against simultaneous requests (#28718) 2024-01-15 09:47:25 +00:00
Matt Jankowski cc3ff66246
Use rubygems released version of `omniauth-cas` gem (#28719) 2024-01-12 22:39:23 +00:00
Claire 6bbcd9348e
Switch from 48px weight 600 material symbol icons to 24px weight 400 icons (#28064) 2024-01-12 20:16:48 +00:00
Claire 1070804a1a
Fix `RedownloadMediaWorker` not being called on transient S3 failure (#28714) 2024-01-12 17:00:17 +00:00
MitarashiDango 2c05b8a60d
Fix Undo Announce activity is not sent, when not followed by the reblogged post author (#18482)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-12 15:58:28 +00:00
Matt Jankowski 28fdf93362
Disable `Rails/LexicallyScopedActionFilter` for inherited auth controllers (#28711) 2024-01-12 13:10:14 +00:00
Matt Jankowski a90c134850
Move followable by logic to suggestion class (#28710) 2024-01-12 13:09:33 +00:00
Renaud Chaput 608f66f978
Change icon SVG imports to use a default import (#28709) 2024-01-12 10:31:24 +00:00
Renaud Chaput c6684aa1e3
Use the assets pipeline to load `inert.css` (#28701) 2024-01-12 09:32:45 +00:00
Matt Jankowski a90696011e
Add coverage/bugfix for invalid appeal submission (#28703) 2024-01-12 09:21:00 +00:00
Matt Jankowski 7801db7ba4
Spec coverage for custom css endpoint (#28706) 2024-01-12 09:19:25 +00:00
github-actions[bot] b86083f0dc
New Crowdin Translations (automated) (#28708)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-12 09:17:10 +00:00
Matt Jankowski df9e220364
Add JS console errors check (#28682) 2024-01-12 09:12:31 +00:00
Matt Jankowski cd37048439
Move followable_by coverage to suggestions (#28697) 2024-01-12 09:11:34 +00:00
Matt Jankowski 32eeca9c7b
Refresh instance counts in spec (fixes intermittent failure) (#28698) 2024-01-12 09:10:37 +00:00
Renaud Chaput 923fc83190
Improve `lint-staged` config (#28704) 2024-01-12 09:09:57 +00:00
Matt Jankowski 575ab085be
Disable `Rails/ApplicationController` for `HealthController` (#28705) 2024-01-12 09:08:17 +00:00
Renaud Chaput 383be173af
Add a version comment to the emoji preval-ed file so it is regenerated (#28700) 2024-01-12 03:39:11 +00:00
Matt Jankowski 8b26614fa7
Combine results include check in spec/models/account (#28471) 2024-01-11 16:17:45 +00:00
Matt Jankowski 185c806d69
Extract spec helper for verifing to/from public AP collection namespace (#28472) 2024-01-11 16:17:21 +00:00
Essem b6e353537b
Add new emojis from `jdecked/twemoji` 15.0 (#28404) 2024-01-11 16:15:08 +00:00
renovate[bot] 22d866ee1b
Update dependency @material-symbols/svg-600 to v0.14.4 (#28603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 15:43:45 +00:00
Matt Jankowski 2954279e9c
Remove double subject call in `api/v1/admin/trends/links/links` spec (#28695) 2024-01-11 15:13:11 +00:00
Matt Jankowski 95bd46d32a
Remove double subject call in `api/v1/admin/ip_blocks` spec (#28696) 2024-01-11 15:11:57 +00:00
Matt Jankowski b68f185573
Reduce `LineLength` for `react_component` helper in views/admin (#28694) 2024-01-11 13:14:24 +00:00
renovate[bot] 782a0165c7
Update dependency node to 20.11 (#28670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-11 12:48:01 +00:00
Matt Jankowski 3f3df9ab20
Update omniauth-cas to version 3.0.0 (#28683) 2024-01-11 10:57:52 +00:00
Matt Jankowski 4e08a4892f
Move streaming `around` config into manager class (#28684) 2024-01-11 10:54:42 +00:00
Matt Jankowski 87097a227c
Clean up `settings/featured_tags/index` view (#28688) 2024-01-11 10:45:26 +00:00
Matt Jankowski 55802242ce
Refactor login activity partial (remove inline ruby) (#28687) 2024-01-11 10:36:27 +00:00
github-actions[bot] 204bbf49d2
New Crowdin Translations (automated) (#28692)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-11 10:08:49 +00:00
Matt Jankowski 6daa69327b
Fix `LineLength` haml-lint in `t` usage (#28686) 2024-01-11 09:32:32 +00:00
Matt Jankowski 0a7cff53c2
Add coverage for `Account.followable_by` scope (#28689) 2024-01-11 09:30:29 +00:00
Claire d7e13e2483
Fix potential redirection loop of streaming endpoint (#28665) 2024-01-10 15:05:46 +00:00
Matt Jankowski 8422b8ded0
Extract capybara config and improve headless_chrome driver config (#28681) 2024-01-10 14:54:11 +00:00
Matt Jankowski 543d7890fd
Use normalizes to prepare `User` values (#28650)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-10 13:36:06 +00:00
Matt Jankowski 00341c70ff
Use Sidekiq `fake!` instead of `inline!` in specs (#25369) 2024-01-10 11:06:58 +00:00
Matt Jankowski ea1c0feb86
Remove `add_column_with_default` migration helper (#28654) 2024-01-10 10:35:06 +00:00
zunda 36b46ea3b5
bundle add csv (#28671) 2024-01-10 09:37:31 +00:00
Matt Jankowski 742d8d30e2
Add coverage for `--days` option to CLI `media refresh` command (#28669) 2024-01-10 09:36:12 +00:00
Matt Jankowski a71e918e95
Fix `LineLength` haml-lint in `media/player` view (#28667) 2024-01-10 09:35:01 +00:00
Renaud Chaput 63d0b52cf3
Add a system spec for the `/share` endpoint (#28672) 2024-01-09 21:58:19 +00:00
renovate[bot] 1f44903991
Update dependency sidekiq-unique-jobs to v7.1.31 (#27818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 21:08:02 +00:00
Matt Jankowski eed4eef39a
Fix `LineLength` haml-lint in `app/views/auth` area (#28664) 2024-01-09 16:03:16 +00:00
Matt Jankowski 09ab073f0c
Fix `LineLength` haml-lint in `app/views/settings` area (#28663) 2024-01-09 15:28:56 +00:00
renovate[bot] 9a73a7dcaf
Update dependency irb to v1.11.1 (#28662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:17:18 +00:00
renovate[bot] 93938751eb
Update dependency ruby-prof to v1.7.0 (#28637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 14:40:24 +00:00
Claire 10203bd57a
Clean up `Setting` model and remove dead code (#28661) 2024-01-09 14:01:53 +00:00
Matt Jankowski 4e02838832
Enable "low risk" Rails 7.1 setting defaults (#28626) 2024-01-09 12:50:57 +00:00
renovate[bot] 1ad908e0c0
Update dependency fog-core to v2.4.0 (#28582)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 12:06:19 +00:00
Jean Boussier 1781849884
Inline what remains of the rails-settings-cached gem (#28618)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-09 11:50:21 +00:00
github-actions[bot] 01ca84e541
New Crowdin Translations (automated) (#28660)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-09 11:48:19 +00:00
gunchleoc 173953c23e
Fix ISO code for Canadian French (#26015)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-09 10:56:13 +00:00
Matt Jankowski 5dc634796a
Misc coverage improvements re: sidekiq/inline (#28651) 2024-01-09 09:40:08 +00:00
Matt Jankowski 68f06f1fd4
Fix haml-lint `LineLength` cop for `settings/preferences/notifications/show` (#28655) 2024-01-09 09:31:32 +00:00
github-actions[bot] 8e7d5fe2ac
New Crowdin Translations (automated) (#28658)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-09 09:30:33 +00:00
renovate[bot] f7b61959cf
Update babel monorepo to v7.23.8 (#28656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 08:05:16 +00:00
Matt Jankowski 557c27e03b
Update haml_lint to version 0.53.0 (#28652) 2024-01-08 16:43:38 +00:00
Matt Jankowski cd4b4d4734
Replace unused `by_recent_sign_in` scope (#28616) 2024-01-08 15:31:13 +00:00
Matt Jankowski e677eb164c
Remove unused `Announcement#time_range?` (#28648) 2024-01-08 15:26:30 +00:00
Matt Jankowski 3e43cd095c
Remove unused scope `Announcement.without_muted` (#28645) 2024-01-08 15:26:14 +00:00
Matt Jankowski 9322396e58
Use normalizes to prepare `Account#username` value (#28646) 2024-01-08 13:48:31 +00:00
Matt Jankowski cd58e37b25
Remove unused `DomainBlock#affected_accounts_count` method (#28642) 2024-01-08 13:38:52 +00:00
Matt Jankowski 3e7a9266ea
Remove unused `EmojiFormatter#count_tag_nesting` method (#28643) 2024-01-08 13:36:47 +00:00
Matt Jankowski 4ccba94489
Remove unused `*_silenced_accounts` scopes on Status (#28644) 2024-01-08 13:35:53 +00:00
Matt Jankowski c52a593a30
Remove unused scope `User.emailable` (#28647) 2024-01-08 13:33:45 +00:00
Matt Jankowski e827c4692c
Use Arel `matches` method in CustomEmoji search (#28615) 2024-01-08 13:26:12 +00:00
github-actions[bot] cc67943df2
New Crowdin Translations (automated) (#28627)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-08 12:46:25 +00:00
Claire 157fc69954
Make request_pool_spec tests more robust (#28610) 2024-01-08 12:29:05 +00:00
Matt Jankowski 1bc5a52139
Extract SQL heredoc method for Announcement scopes (#28613) 2024-01-08 11:22:16 +00:00
Matt Jankowski aa6d07dbd9
Use normalizes to prepare CustomEmoji `domain` value (#28624) 2024-01-08 11:20:59 +00:00
Matt Jankowski 202951e6d9
Use Arel `in_order_of` method to generate CASE for `DomainBlock.by_severity` (#28617) 2024-01-08 11:15:36 +00:00
Matt Jankowski 57f49c8191
Use Arel `nulls_first` method in ordering CustomEmojiFilter scope (#28614) 2024-01-08 11:09:50 +00:00
Matt Jankowski 832b92ac3e
Add attachment check to spec/service/suspend_account_service spec (#28619) 2024-01-08 11:05:10 +00:00
renovate[bot] 2ae53e655c
Update dependency jsdom to v23.2.0 (#28612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 11:04:25 +00:00
renovate[bot] 8a44b182e8
Update dependency axios to v1.6.5 (#28620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 11:03:04 +00:00
renovate[bot] 4ed663a94f
Update DefinitelyTyped types (non-major) (#28638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 11:02:55 +00:00
Renaud Chaput a0e237a96f
Upgrade Redux packages (#28585) 2024-01-08 10:57:40 +00:00
renovate[bot] fe2667bb0d
Update dependency rubocop-performance to v1.20.2 (#28641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 10:19:33 +00:00
renovate[bot] c9e6752158
Update dependency rubocop-rspec to v2.26.1 (#28611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 10:18:57 +00:00
renovate[bot] 8d06baf812
Update dependency strong_migrations to v1.7.0 (#28621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 10:17:53 +00:00
Matt Jankowski e09419f22a
Move old framework defaults file to regular config value (#28623) 2024-01-08 10:17:38 +00:00
Matt Jankowski a27a82939d
Remove the 7.1 marshalling format "todo" from new_framework_defaults (#28625) 2024-01-08 10:16:33 +00:00
renovate[bot] 352625c491
Update libretranslate/libretranslate Docker tag to v1.5.3 (#28639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 09:59:06 +00:00
renovate[bot] 8a312ad79b
Update dependency puma to v6.4.2 (#28640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 09:57:12 +00:00
Jean Boussier 5a6d533c53
Enable Rails 7.1 Marshalling format (#28609) 2024-01-05 21:57:47 +00:00
Matt Jankowski 12bed81187
Add validation specs to `CustomFilter` model (#28600) 2024-01-05 15:13:59 +00:00
Matt Jankowski b3dab17b58
Remove deprecated `RSpec/FilePath` cop (#28601) 2024-01-05 12:31:18 +00:00
Matt Jankowski e1b49d3454
Regenerate rubocop todo with version 1.59.0 (#28597) 2024-01-05 12:26:31 +00:00
github-actions[bot] 43d800ada6
New Crowdin Translations (automated) (#28604)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-05 11:29:19 +00:00
Claire 6ad0fb5a77
Fix NULL MX handling and tighten DNS resolving specs (#28607) 2024-01-05 11:07:57 +00:00
renovate[bot] 9699ea22d6
Update dependency postcss to v8.4.33 (#28602)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 10:47:22 +00:00
renovate[bot] d537b3926f
Update dependency sass-loader to v10.5.2 (#28594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 10:46:38 +00:00
renovate[bot] 6b63652656
Update dependency rubocop-rspec to v2.26.0 (#28595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 10:46:32 +00:00
renovate[bot] 9ecf99df14
Update dependency net-http to v0.4.1 (#28606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 10:45:55 +00:00
Claire 5f4643b895
Add `PAPERCLIP_ROOT_URL` to Content-Security-Policy when used (#28561) 2024-01-05 10:45:36 +00:00
Matt Jankowski 964a0ecf37
Add sleep statement to nudge thread scheduler in request pool spec (#28596) 2024-01-04 16:55:00 +00:00
Matt Jankowski ae39bed95b
Solve remaining `db/*migrate*` cops (#28579) 2024-01-04 16:40:28 +00:00
Claire d0fd14f851
Fix scrolling to detailed status not always working (#28577) 2024-01-04 14:17:38 +00:00
Claire 419c659bc4
Add fallback redirection when getting a webfinger query `WEB_DOMAIN@WEB_DOMAIN` (#28592) 2024-01-04 14:14:46 +00:00
renovate[bot] da7290839a
Update dependency stylelint-config-standard-scss to v13 (#28589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 09:24:43 +00:00
github-actions[bot] bdf4750633
New Crowdin Translations (automated) (#28590)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-04 09:24:13 +00:00
Matt Jankowski 1af5c37701
Use heredoc on federation CLI warning strings (#28578) 2024-01-04 09:21:27 +00:00
Matt Jankowski f06c1f1552
Fix `Capybara/ClickLinkOrButtonStyle` cop in spec/features (#28576) 2024-01-04 09:20:32 +00:00
renovate[bot] 06374d07c3
Update dependency cssnano to v6.0.3 (#28581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 09:19:38 +00:00
Emelia Smith 9826b7780a
Streaming: use standard cors package instead of custom implementation (#28523) 2024-01-04 09:18:03 +00:00
renovate[bot] 9c268c9413
Update dependency axios to v1.6.4 (#28586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 09:16:29 +00:00
renovate[bot] 0f3f98c01f
Update dependency react-redux-loading-bar to v5.0.8 (#28587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 09:16:12 +00:00
renovate[bot] 38e5d1b53f
Update dependency net-ldap to v0.19.0 (#28588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 09:15:56 +00:00
Claire dfdadb92e8
Add ability to require approval when users sign up using specific email domains (#28468) 2024-01-04 09:07:05 +00:00
Michael Stanclift 195b89d336
Fix .opus file uploads being misidentified by Paperclip (#28580) 2024-01-03 19:02:53 +00:00
Matt Jankowski f92d8c654d
Standardize on Thor methods in CLI classes (#28566) 2024-01-03 15:08:08 +00:00
Claire 905794fd57
Remove v3.5 branch from supported Mastodon versions (#28574) 2024-01-03 15:04:10 +00:00
Matt Jankowski 5c769de096
Add spec coverage for `CLI::Media#remove_orphans` command (#28267) 2024-01-03 14:12:56 +00:00
Matt Jankowski 51d2b80ff7
Solve `Abc/*` metrics for `db/*migrate*` files (#28568) 2024-01-03 13:22:03 +00:00
Matt Jankowski 74a0d81e90
Add coverage for CLI `self-destruct` command (#28565)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2024-01-03 13:06:38 +00:00
Matt Jankowski e12d8893f4
Fix intermittent failure from unspecified order in `export_domain_blocks` controller spec (#28562) 2024-01-03 13:06:15 +00:00
Claire 092bb8a27a
Fix Mastodon not correctly processing HTTP Signatures with query strings (#28476) 2024-01-03 11:29:26 +00:00
Claire bd415af9a1
Change streaming API host to not be overridden to localhost in development mode (#28557) 2024-01-03 10:23:58 +00:00
github-actions[bot] 7cce2a41f2
New Crowdin Translations (automated) (#28573)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-03 09:19:46 +00:00
renovate[bot] 2b330ede22
Update dependency eslint-plugin-jsdoc to v48 (#28564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 09:10:19 +00:00
renovate[bot] 8c5d3e5278
Update dependency puma to v6.4.1 (#28569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 09:05:52 +00:00
renovate[bot] c2b4588f1c
Update dependency sass to v1.69.7 (#28570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 09:04:59 +00:00
Matt Jankowski 3944b12b5e
Update `@typescript-eslint/parser` to version 6.17.0 (#28218) 2024-01-02 15:19:54 +00:00
Claire 65ea097f1d
Fix loading local accounts with extraneous domain part in WebUI (#28559) 2024-01-02 15:02:25 +00:00
Claire 1184887b01
Fix streaming API redirection ignoring the port of `streaming_api_base_url` (#28558) 2024-01-02 12:27:51 +00:00
renovate[bot] cd09be054f
Update dependency eslint-plugin-jsdoc to v47 (#28541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 10:13:22 +00:00
github-actions[bot] 0374e11091
New Crowdin Translations (automated) (#28529)
Co-authored-by: GitHub Actions <noreply@github.com>
2024-01-02 09:11:53 +00:00
Michael Stanclift fdec8d7ffb
Fix OCR when using S3/CDN for assets (#28551) 2024-01-02 09:09:54 +00:00
renovate[bot] 1982137590
Update dependency classnames to v2.5.1 (#28524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 08:52:09 +00:00
renovate[bot] c2340682aa
Update babel monorepo to v7.23.7 (#28528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 08:51:58 +00:00
renovate[bot] 629152a80d
Update DefinitelyTyped types (non-major) (#28542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 08:50:45 +00:00
renovate[bot] 663a7b6ba9
Update devDependencies (non-major) (#28543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 08:50:29 +00:00
renovate[bot] e082a98b4d
Update dependency mime-types to v3.5.2 (#28556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-02 08:50:08 +00:00
Michael Stanclift c652b0e46b
Add wget to base Dockerfile (#28548) 2024-01-02 08:47:38 +00:00
Dennis Kamau ac588daf37
Update copyright year to 2024 (#28550) 2024-01-01 19:08:01 +00:00
Claire 6374358357
Change media to be hidden/blurred by default in report modal (#28522) 2023-12-29 16:34:13 +00:00
Claire fcfdeadc04
Fix random `NoMethodError` errors on cached `CustomFilter` objects (#28521) 2023-12-29 16:23:07 +00:00
Cal Moody 3599622b5b
Fix destructive actions in dropdowns not using error color in light theme (#28484) 2023-12-29 11:32:40 +00:00
Matt Jankowski ba5f659bb3
Use shorter attribute query methods in `Announcement` (#28474) 2023-12-29 10:55:50 +00:00
renovate[bot] fd57e40681
Update dependency rubocop-performance to v1.20.1 (#28492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:55:05 +00:00
github-actions[bot] 7df9c4f6f3
New Crowdin Translations (automated) (#28481)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-29 10:39:10 +00:00
renovate[bot] 5fd16c3ffd
Update dependency nokogiri to v1.16.0 (#28513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:27:37 +00:00
renovate[bot] 54ed01538e
Update dependency core-js to v3.35.0 (#28518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:25:31 +00:00
Matt Jankowski 128c5b7db3
Fix `Performance/StringIdentifierArgument` cop (#28508) 2023-12-29 10:23:30 +00:00
renovate[bot] 63901bb34b
Update github/codeql-action action to v3 (#28495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:22:43 +00:00
renovate[bot] f7f7236fa2
Update dependency ws to v8.16.0 (#28504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:21:19 +00:00
renovate[bot] 87bf85ffdd
Update dependency classnames to v2.5.0 (#28498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:20:34 +00:00
renovate[bot] b01a027543
Update dependency tzinfo-data to v1.2023.4 (#28478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:19:56 +00:00
renovate[bot] f6f85b9521
Update dependency aws-sdk-s3 to v1.142.0 (#28479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:19:41 +00:00
renovate[bot] 3fbfc50f17
Update dependency brakeman to v6.1.1 (#28487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:17:31 +00:00
renovate[bot] de3fa293b0
Update dependency fastimage to v2.3.0 (#28488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:16:26 +00:00
renovate[bot] 07ab97d7f9
Update dependency rubocop-rails to v2.23.1 (#28493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:16:00 +00:00
renovate[bot] 87e9e87a14
Update eslint (non-major) (#28494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:15:43 +00:00
Christian Winther 01df9f1abb
install "wget" in streaming Dockerfile (#28497) 2023-12-29 10:15:10 +00:00
renovate[bot] 3f0140bbdf
Update dependency webauthn to v3.1.0 (#28507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:13:29 +00:00
renovate[bot] 851a9b80c8
Update dependency react-redux-loading-bar to v5.0.7 (#28511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:12:13 +00:00
renovate[bot] fb58397a33
Update dependency axios to v1.6.3 (#28509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:11:40 +00:00
renovate[bot] f923eeb9b8
Update dependency sass to v1.69.6 (#28517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 10:11:02 +00:00
Santiago Kozak 1cba91d6d1
Fix reply icon display in picture-in-picture footer (#28519) 2023-12-29 09:48:27 +00:00
Renaud Chaput fb5eb1f655
Replace our custom `compression-webpack-plugin` patch with the fixed upstream version (#28510) 2023-12-29 09:33:06 +00:00
Claire a2624ff739
Convert signature verification specs to request specs (#28443) 2023-12-22 18:56:22 +00:00
Matt Jankowski bb8077e784
Fix `RSpec/LetSetup` cop in models/account_status_cleanup_policy (#28470) 2023-12-22 15:29:50 +00:00
Claire 2bf84b93d4
Fix media attachment order of remote posts (#28469) 2023-12-22 15:10:39 +00:00
Matt Jankowski a4d49c236d
Fix `RSpec/LetSetup` cop in ap/fetch_featured_collection_service (#28461) 2023-12-22 12:57:29 +00:00
Matt Jankowski e6e217fedd
Clean up `tagged_with_*` Status specs, fix `RSpec/LetSetup` cop (#28462) 2023-12-22 08:32:27 +00:00
Matt Jankowski 513d35969e
Fix `RSpec/LetSetup` cop in auth controller specs (#28464) 2023-12-22 08:03:59 +00:00
github-actions[bot] e70a65761a
New Crowdin Translations (automated) (#28467)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-22 07:58:20 +00:00
renovate[bot] 43547cd210
Update dependency debug to v1.9.1 (#28466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 07:41:21 +00:00
Renaud Chaput 1c041356a1
Fix error on viewing a profile when unlogged (#28465) 2023-12-21 20:19:18 +00:00
Matt Jankowski 9251779d75
Fix `RSpec/LetSetup` cop in spec/services (#28459) 2023-12-21 14:23:53 +00:00
Matt Jankowski efd16f3c2c
Clean up of `RSpec/LetSetup` within `spec/services/activitypub` (#28445) 2023-12-21 11:20:12 +00:00
Matt Jankowski c99f88e1a8
Clean up of `RSpec/LetSetup` within `spec/lib` (#28447) 2023-12-21 11:19:56 +00:00
Matt Jankowski cd64a5b2ec
Clean up of `RSpec/LetSetup` within `api/` (#28448) 2023-12-21 10:10:18 +00:00
Eugen Rochko 5976d3702f
Change "Follow" to "Follow back" and "Mutual" when appropriate in web UI (#28452) 2023-12-21 09:44:09 +00:00
Matt Jankowski f32d672d2f
Clean up of `RSpec/LetSetup` within `spec/controllers` (#28446) 2023-12-21 09:28:41 +00:00
Matt Jankowski c753b1ad35
Clean up of `RSpec/LetSetup` within `spec/models` (#28444) 2023-12-21 09:18:38 +00:00
renovate[bot] 87e2bd02ac
Update dependency irb to v1.11.0 (#28442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-21 09:13:10 +00:00
github-actions[bot] 9e5ddc1745
New Crowdin Translations (automated) (#28451)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-21 09:09:00 +00:00
Matt Jankowski 2463b53363
More duplicates in cli maintenance spec, misc bug fixes (#28449) 2023-12-21 08:51:03 +00:00
Eugen Rochko 01f0a6ca4f
Fix profile setup showing default avatar in web UI (#28453) 2023-12-21 08:32:25 +00:00
Claire d29b1cca2e
Fix `friends_of_friends` sometimes suggesting already-followed accounts (#28433) 2023-12-20 14:35:59 +00:00
Claire ac04e62a0e
Remove unused route definitions (#28430) 2023-12-20 09:44:01 +00:00
github-actions[bot] fecc07856c
New Crowdin Translations (automated) (#28439)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-20 09:15:30 +00:00
renovate[bot] 9a24b12416
Update dependency sass-loader to v10.5.1 (#28432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 08:54:21 +00:00
Matt Jankowski 961d65aba6
Add coverage to CLI Maintenance for duplicate users on `confirmation_token` and `reset_password_token` values (#28434) 2023-12-20 08:54:04 +00:00
Claire 6fed0fcbaa
Remove unneeded settings cleanup from specs (#28425) 2023-12-19 15:17:22 +00:00
Matt Jankowski c7c727994a
Add spec for `CLI::Maintenance#fix_duplicates` (#28326) 2023-12-19 13:10:33 +00:00
renovate[bot] 5489d4c84c
Update dependency aws-sdk-s3 to v1.141.0 (#28116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 12:54:02 +00:00
renovate[bot] 4075b4d7ee
Update dependency node to 20.10 (#28040)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 12:39:59 +00:00
Eugen Rochko b5ac61b2c5
Change algorithm of follow recommendations (#28314)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-12-19 10:59:43 +00:00
renovate[bot] b7bdcd4f39
Update dependency @material-symbols/svg-600 to v0.14.3 (#28276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 10:56:23 +00:00
Matt Jankowski c28976d89e
Handle negative offset param in `api/v2/search` (#28282) 2023-12-19 10:55:39 +00:00
Renaud Chaput 7b1d390734
Fixes dropdown target without a `buttonRef` (edit history) (#28427) 2023-12-19 10:47:53 +00:00
github-actions[bot] fa987db738
New Crowdin Translations (automated) (#28423)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-19 09:40:37 +00:00
Claire 3598c2e1db
Revert "Feature - Prevents multiple audio/video attachments from being played at the same time (#24717)" (#28251) 2023-12-19 05:08:52 +00:00
Renaud Chaput 8b1eeb2f90
Fix the loading bar with the new Redux actions (#28422) 2023-12-18 23:19:27 +00:00
Matt Jankowski 7cfc078198
Fix rails mailer preview not honouring locale (#28418) 2023-12-18 21:49:17 +00:00
Matt Jankowski 476d1237d4
Typo fix in json ld helper spec (#28417) 2023-12-18 16:47:22 +00:00
renovate[bot] ab1201c9d9
Update dependency regenerator-runtime to v0.14.1 (#28393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 16:21:54 +00:00
Claire 7d9b209fe8
Fix call to inefficient `delete_matched` cache method in domain blocks (#28374) 2023-12-18 16:14:43 +00:00
Yamagishi Kazutoshi f4b9c2ba40
Group artifact actions (#28413) 2023-12-18 14:02:19 +00:00
Matt Jankowski af366f65ee
Add spec coverage for `models/form/custom_emoji_batch` class (#28388) 2023-12-18 12:41:37 +00:00
renovate[bot] b2ca71f733
Update dependency rubocop-performance to v1.20.0 (#28395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 12:41:22 +00:00
Matt Jankowski 0b42cf2979
Opt out of `Rails/NegateInclude` cop (#28370) 2023-12-18 12:21:45 +00:00
Matt Jankowski 1820bad646
Fix `Performance/StringIdentifierArgument` cop (#28399) 2023-12-18 10:26:09 +00:00
Matt Jankowski 2bd8d343cf
Fix `Style/SoleNestedConditional` and `Style/IfInsideElse` cops, regenerate haml todo (#28384) 2023-12-18 10:06:42 +00:00
Matt Jankowski 8e9e7d57d8
Opt out of `Rails/UnusedIgnoredColumns` cop (#28385) 2023-12-18 09:58:53 +00:00
Matt Jankowski 0e5b8fc46b
Fix `Style/RedundantReturn` cop (#28391) 2023-12-18 09:50:51 +00:00
Matt Jankowski 89d468ada7
Fix `Style/StderrPuts` cop (#28389) 2023-12-18 09:36:08 +00:00
Matt Jankowski e56fb9e489
Fix `Style/SymbolProc` cop (#28386) 2023-12-18 09:32:02 +00:00
renovate[bot] fc4eaa779a
Update dependency cssnano to v6.0.2 (#28382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 09:31:21 +00:00
renovate[bot] fad7dca0e4
Update dependency prom-client to v15.1.0 (#28394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 09:29:41 +00:00
renovate[bot] 43f637c130
Update dependency rubocop-rails to v2.23.0 (#28396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 09:28:19 +00:00
renovate[bot] 287384b3bb
Update DefinitelyTyped types (non-major) (#28407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 09:28:10 +00:00
renovate[bot] d099cf67c0
Update eslint (non-major) (#28408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 09:28:06 +00:00
github-actions[bot] f99e05710e
New Crowdin Translations (automated) (#28373)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-18 08:25:21 +00:00
Matt Jankowski b1dec09d20
Fix `Style/InverseMethods` cop (#28377) 2023-12-15 15:52:00 +00:00
Matt Jankowski 3e336fe706
Opt out of `Rails/SkipsModelValidations` cop in db/migrate (#28371) 2023-12-15 14:38:12 +00:00
Matt Jankowski e5717c9bc6
Fix `Style/Lambda` cop (#28378) 2023-12-15 14:34:24 +00:00
Matt Jankowski 1ee8d1e50e
Assign a proc to `Rack::Request.ip_filter` instead of patching method (#28380) 2023-12-15 14:33:56 +00:00
Matt Jankowski db897eaa5a
Unwind `map` on single-item array in `spec/services/delete_account_service` spec (#28358) 2023-12-14 14:07:54 +00:00
Matt Jankowski e17faedffb
Move default `meta` options from `InitialStateSerializer` to private method (AbcSize reduction) (#28355) 2023-12-14 14:04:55 +00:00
Matt Jankowski 1c3b5f4a78
Fix reference to non-existent var in CLI maintenance command (#28363) 2023-12-14 14:02:33 +00:00
Matt Jankowski ef9797a395
Un-nest contexts in `settings/2fa/webauthn` spec (#28359) 2023-12-14 10:46:43 +00:00
Matt Jankowski adbfd40a1b
Convert `api/v1/directories` controller spec to request spec (#28356) 2023-12-14 10:38:06 +00:00
Matt Jankowski cd9ebf5f0f
Update stylelint to version 16.0.2 (#28354) 2023-12-14 10:35:54 +00:00
Matt Jankowski 28e1a7a394
Improve spec coverage for `models/announcement` class (#28350) 2023-12-14 10:29:10 +00:00
renovate[bot] d791b47058
Update dependency chewy to v7.4.0 (#28349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-14 10:26:28 +00:00
Matt Jankowski 8a3d8c6c14
Remove the `stub_stdout` wrapper around CLI specs (#28340) 2023-12-13 10:14:19 +00:00
renovate[bot] 3a59365e40
Update dependency test-prof to v1.3.1 (#28342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:52:43 +00:00
renovate[bot] 49150e2f1d
Update dependency ws to v8.15.1 (#28343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:52:40 +00:00
github-actions[bot] b2f915b31a
New Crowdin Translations (automated) (#28344)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-13 09:52:37 +00:00
renovate[bot] aae4b5644f
Update dependency haml_lint to v0.52.0 (#28345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 09:52:33 +00:00
Claire dcc24db793
Fix N+1s because of association preloaders not actually getting called (#28339) 2023-12-13 07:47:32 +00:00
Claire 3f1ec16377
Fix empty column explainer getting cropped under certain conditions (#28337) 2023-12-12 14:31:37 +00:00
renovate[bot] db3220ff77
Update dependency rubocop to v1.59.0 (#28320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 14:18:30 +00:00
Claire f37c93f3d7
Change cookie rotator to use SHA1 digest for new cookies (#27392) 2023-12-12 12:01:08 +00:00
Claire 393e851649
Change Rails' cache format to 7.0 (#27393) 2023-12-12 12:00:23 +00:00
Matt Jankowski 4a7395d989
Add `migrator_version` method to CLI maintenance script (#28323) 2023-12-12 11:56:39 +00:00
renovate[bot] ca51e41239
Update dependency stylelint-config-standard-scss to v12 (#28333)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 11:45:39 +00:00
github-actions[bot] 14e64bc880
New Crowdin Translations (automated) (#28334)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-12 11:45:10 +00:00
renovate[bot] 8078520c76
Update dependency oj to v3.16.3 (#28332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 10:40:54 +00:00
Claire 89a496b42f
Fix status edits not always being streamed to mentioned users (#28324) 2023-12-12 10:39:21 +00:00
Claire a8a5c6514f
Fix `LinkCrawlWorker` error when encountering empty OEmbed response (#28268) 2023-12-12 08:29:46 +00:00
Matt Jankowski 2c6369918c
Fix `Style/RedundantArgument` cop (#28321) 2023-12-11 14:58:29 +00:00
renovate[bot] 9dfa940636
Update babel monorepo to v7.23.6 (#28319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 14:58:10 +00:00
Claire f3864db409
Fix notification sounds (#28316) 2023-12-11 14:23:30 +00:00
Matt Jankowski b5a1013ae3
Combine `CLI::...` spec example subjects (#28285) 2023-12-11 10:23:45 +00:00
renovate[bot] 4ad2e87c48
Update dependency debug to v1.9.0 (#28315)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 08:45:30 +00:00
github-actions[bot] 79a81da69c
New Crowdin Translations (automated) (#28291)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-11 08:22:52 +00:00
Matt Jankowski 0e4233de9d
Controller spec to request spec: `api/v2/suggestions` (#28297) 2023-12-11 08:13:57 +00:00
Matt Jankowski 0c64092500
Controller spec to request spec: `api/v1/accounts/search` (#28299) 2023-12-11 08:13:28 +00:00
Matt Jankowski 253393f3a8
Only attempt to remove indexes that exist in `CLI::Maintenance` script (#28286) 2023-12-11 08:04:45 +00:00
renovate[bot] f5d6143aa1
Update dependency addressable to v2.8.6 (#28296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 08:01:17 +00:00
Matt Jankowski 16ede59d0a
Controller spec to request spec: `api/v1/featured_tags/suggestions` (#28298) 2023-12-11 08:00:41 +00:00
Matt Jankowski 809506bdd4
Controller spec to request spec: `api/v1/accounts/pins` (#28300) 2023-12-11 07:59:40 +00:00
Matt Jankowski 94cc707ab3
Controller spec to request spec: `api/v1/accounts/notes` (#28301) 2023-12-11 07:58:48 +00:00
Matt Jankowski e544b6df42
Controller spec to request spec: `api/v1/accounts/lookup` (#28302) 2023-12-11 07:57:33 +00:00
Matt Jankowski a968898dc7
Controller spec to request spec: `api/v1/accounts/lists` (#28303) 2023-12-11 07:56:47 +00:00
Matt Jankowski 8f94502e7d
Controller spec to request spec: `api/v1/accounts/identify_proofs` (#28304) 2023-12-11 07:56:13 +00:00
Matt Jankowski 78347d2556
Controller spec to request spec: `api/v1/accounts/familiar_followers` (#28305) 2023-12-11 07:55:45 +00:00
Matt Jankowski 11d2bd9716
Fix intermittent failure from unspecified order in `api/v1/accounts/relationships` spec (#28306) 2023-12-11 07:55:07 +00:00
renovate[bot] b82fc8a2ca
Update dependency ws to v8.15.0 (#28308)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:54:22 +00:00
renovate[bot] a117155728
Update DefinitelyTyped types (non-major) (#28310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:54:01 +00:00
renovate[bot] 7ddd937330
Update dependency prettier to v3.1.1 (#28311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:53:32 +00:00
renovate[bot] d0e7999a90
Update dependency typescript to v5.3.3 (#28312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:53:13 +00:00
renovate[bot] bd88883b6e
Update eslint (non-major) (#28313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 07:52:53 +00:00
Michael Stanclift afc8550b63
Change preview card deletes to be done using batch method (#28183) 2023-12-11 07:49:10 +00:00
Matt Jankowski 490e4969a1
Correct section naming in maintenance cli script (#28279) 2023-12-08 13:54:48 +00:00
Matt Jankowski a3cbb4b2f1
Add spec for `CLI::Search#deploy` command (#28272) 2023-12-08 13:54:20 +00:00
github-actions[bot] ca1b7efb06
New Crowdin Translations (automated) (#28275)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-08 09:52:32 +00:00
JakePaustian f37a1535ef
Update CONTRIBUTING.md with additional requirements for API additions (#28274)
Co-authored-by: Jake Paustian <jake1500@iastate.edu>
2023-12-08 09:52:28 +00:00
Matt Jankowski 8de86eabbf
Add spec for `CLI::Domains#crawl` command (#28271) 2023-12-08 09:51:57 +00:00
Matt Jankowski 7e514688b3
Convert `api/v2/search` controller spec to request spec (#28269) 2023-12-08 09:27:33 +00:00
Matt Jankowski 8d8ae05a18
Add spec coverage for `CLI::Media#lookup` command (#28266) 2023-12-07 15:27:41 +00:00
Matt Jankowski 3918dc68c7
Use composite primary key for `PreviewCardsStatus` model (#28208) 2023-12-07 14:49:05 +00:00
Michael Stanclift da3d8aff79
Error handling for attachment batch delete process (#28184)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-12-07 14:40:44 +00:00
Matt Jankowski ad34d33bfd
Formalize some patterns in cli specs (#28255) 2023-12-07 13:49:14 +00:00
Ken Greeff 5d97a897c8
Add note to install libidn on MacOS (#28259) 2023-12-07 12:45:55 +00:00
Matt Jankowski 0b4a3a0437
Remove remaining `without_partial_double_verification` usage (#28127) 2023-12-07 12:15:50 +00:00
Matt Jankowski 1d7b8234c9
Remove useless `reorder(nil)` call in `tootctl statuses` (#28141) 2023-12-07 09:41:00 +00:00
github-actions[bot] e0dacf6b4c
New Crowdin Translations (automated) (#28264)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-07 09:38:44 +00:00
Claire 7593465c23
Fix error when processing link preview with an array as `inLanguage` (#28252) 2023-12-07 09:05:08 +00:00
renovate[bot] 336d6260ba
Update dependency chewy to v7.3.5 (#28253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 08:44:45 +00:00
renovate[bot] 54db2006a9
Update dependency sass-loader to v10.5.0 (#28254)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 08:44:16 +00:00
renovate[bot] 5e8a38e254
Update dependency oj to v3.16.2 (#28263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 08:42:47 +00:00
Claire 658ad7a6ca
Fix flaky tests related to file creation (#28248) 2023-12-06 22:22:25 +00:00
Matt Jankowski af66d3d836
Use `following` and `followers` scopes in CLI (#28154) 2023-12-06 14:15:54 +00:00
renovate[bot] 23b16aaab0
Update dependency selenium-webdriver to v4.16.0 (#28246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 13:50:59 +00:00
Matt Jankowski ee83d5c760
Enable the eslint `react/no-unknown-property` rule (#28217) 2023-12-06 13:42:12 +00:00
Matt Jankowski 42afd30324
Replace Sprockets with Propshaft (#28239) 2023-12-06 10:19:24 +00:00
github-actions[bot] 954169966b
New Crowdin Translations (automated) (#28245)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-06 08:52:55 +00:00
Matt Jankowski 0e8ba19113
Add spec coverage for `CLI::Emoji` class (#28182) 2023-12-06 08:52:30 +00:00
Matt Jankowski ed7b5c091b
Remove double subject call in `services/delete_account_service` spec (#28212) 2023-12-06 08:51:09 +00:00
Matt Jankowski be6bb1a10d
Remove double subject call in `services/suspend_account_service` spec (#28213) 2023-12-06 08:45:19 +00:00
Matt Jankowski 5517df61de
Remove double subject call in `services/activitypub/process_account_service` spec (#28214) 2023-12-06 08:44:51 +00:00
Matt Jankowski faffd81976
Remove double subject call in `services/unsuspend_account_service` spec (#28215) 2023-12-06 08:44:07 +00:00
renovate[bot] 3b710b96cf
Update dependency irb to v1.10.1 (#28240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 08:33:27 +00:00
renovate[bot] 996c13a24d
Update dependency core-js to v3.34.0 (#28241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 08:33:11 +00:00
github-actions[bot] 4238ec844d
New Crowdin Translations (automated) (#28120)
Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-12-05 16:07:53 +00:00
Jonathan de Jong d0a5ebf914
Fix error when encountering malformed Tag objects from Kbin (#28235) 2023-12-05 13:59:15 +00:00
renovate[bot] 2d2e23c68d
Update dependency brakeman to v6.1.0 (#28231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 12:59:31 +00:00
renovate[bot] f944a767c4
Update dependency json-ld to v3.3.1 (#28229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 12:57:16 +00:00
Matt Jankowski 89a8e6e622
Remove 2x double subject call in `models/form/account_batch` spec (#28209) 2023-12-04 15:41:43 +00:00
Matt Jankowski 71e5a16eba
Remove triple subject call in `api/v1/lists` spec (#28210) 2023-12-04 15:28:19 +00:00
Matt Jankowski cca19f5fbb
Use the `Admin::ActionLog` fabricator in admin/action_logs spec (#28194) 2023-12-04 12:56:28 +00:00
Matt Jankowski b3b009e6aa
Add spec coverage for `CLI::EmailDomainBlocks` commands (#28181) 2023-12-04 09:44:54 +00:00
renovate[bot] 829457212e
Update dependency rubocop to v1.58.0 (#28170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 09:38:49 +00:00
Claire a2bcfeb887
Fix `Style/HashEachMethods` cop in HAML files (#28178) 2023-12-04 09:09:43 +00:00
Matt Jankowski 9603198982
Add spec coverage for `CLI::Domains#purge` command (#28179) 2023-12-04 09:09:05 +00:00
Matt Jankowski 1bf2230fd1
Add spec coverage for `CLI::Upgrade#storage_schema` command (#28180) 2023-12-04 09:08:47 +00:00
Matt Jankowski 19ad51253d
Prevent triple-subject run in admin/domain_blocks spec (#28195) 2023-12-04 09:02:40 +00:00
renovate[bot] 154fb95e44
Update dependency postcss to v8.4.32 (#28185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 08:52:53 +00:00
Matt Jankowski d848d8d87c
Add helper methods for domains allow and export blocks files (#28196) 2023-12-04 08:52:21 +00:00
renovate[bot] 3ec263bf15
Update dependency irb to v1.10.0 (#28198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 08:51:08 +00:00
renovate[bot] b4fef6c26f
Update DefinitelyTyped types (non-major) (#28199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 08:50:43 +00:00
renovate[bot] 0ca7a50e96
Update devDependencies (non-major) (#28200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 08:50:28 +00:00
renovate[bot] 456597dae5
Update dependency doorkeeper to v5.6.8 (#28177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-01 16:22:15 +00:00
Matt Jankowski 469ee2ae36
Fix `Style/HashEachMethods` cop (#28173) 2023-12-01 16:07:19 +00:00
Matt Jankowski 3bc437b99a
Fix `Style/RedundantParentheses` cop (#28176) 2023-12-01 16:00:44 +00:00
Matt Jankowski 5631f139c1
Fix `Lint/SymbolConversion` cop (#28175) 2023-12-01 15:53:35 +00:00
Matt Jankowski aa8563d43d
Fix `Style/SuperWithArgsParentheses` cop (#28174) 2023-12-01 15:53:15 +00:00
Matt Jankowski d83d01eb1e
Fix `Lint/RedundantSafeNavigation` cop (#28172) 2023-12-01 15:52:56 +00:00
Matt Jankowski a98fccf84e
Fix `Style/SelfAssignment` cop (#28171) 2023-12-01 15:52:52 +00:00
Matt Jankowski f70f39dd04
Add explicit `dependent: nil` to associations (#28169) 2023-12-01 15:52:47 +00:00
Matt Jankowski 1564799952
Add spec coverage for media CLI `refresh` command (#28166) 2023-12-01 14:18:45 +00:00
Matt Jankowski 7753e5f715
Add shared example for CLI command specs (#28165) 2023-12-01 12:00:34 +00:00
Matt Jankowski 92fa9b109f
Add spec coverage for media CLI usage command (#28167) 2023-12-01 11:56:47 +00:00
Michael Stanclift 272592d16d
Change startup command for Puma in Docker Compose (#28138) 2023-12-01 11:06:37 +00:00
Matt Jankowski 440b80b2e7
Model concerns organization into module namespaces (#28149) 2023-12-01 11:00:41 +00:00
Matt Jankowski b751078fcd
Eliminate double subject call in admin/ controller specs (#28158) 2023-12-01 10:38:15 +00:00
Michael Stanclift 8710bdb183
Fix mastodon user not being owner of tmp folder in Dockerfile (#28137) 2023-11-30 16:11:21 +00:00
Claire 963354978a
Add `Account#unavailable?` and `Account#permanently_unavailable?` aliases (#28053) 2023-11-30 15:43:26 +00:00
Matt Jankowski 35deaaf90b
Reduce AbcSize complexity in `InitialStateSerializer` (#27782) 2023-11-30 15:41:26 +00:00
Matt Jankowski 1f1c75bba5
File cleanup/organization in `controllers/concerns` (#27846) 2023-11-30 14:39:41 +00:00
Matt Jankowski 0530ce5e95
Convert accounts controller spec to request spec (#28126) 2023-11-30 14:28:05 +00:00
Matt Jankowski e7c340a634
Spec coverage for missing `q` param and error conditions in `api/v2/search` controller (#27842) 2023-11-30 13:59:46 +00:00
Matt Jankowski a8473f582d
Add zeitwerk inflector for cli->CLI (#27635) 2023-11-30 13:55:20 +00:00
Claire b20af17a2c
Fix onboarding step descriptions being truncated on narrow screens (#28021) 2023-11-30 13:47:07 +00:00
Claire 85662a5a57
Change `img-src` and `media-src` CSP directives to not include `https:` (#28025) 2023-11-30 13:47:01 +00:00
Matt Jankowski bb0efe16e6
Remove `default_scope` from `MediaAttachment` class (#28043) 2023-11-30 13:30:35 +00:00
renovate[bot] 02a98210e8
fix(deps): update dependency jsdom to v23.0.1 (#28135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 13:22:40 +00:00
renovate[bot] 0212e0cfbf
fix(deps): update dependency @babel/runtime to v7.23.5 (#28136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 13:22:25 +00:00
Claire 7faa27e17d
Change dismissed banners to be stored server-side (#27055) 2023-11-30 11:45:54 +00:00
Matt Jankowski ce78a9c9ac
Clean up `two_factor_authentication/confirmations` controller spec (#28128) 2023-11-30 11:44:42 +00:00
Filippo Giunchedi e6fd9a59e6
Fix FamiliarFollowersController test response comparison (#28121)
Co-authored-by: Filippo Giunchedi <filippo@debian.org>
2023-11-30 10:58:40 +00:00
renovate[bot] c761cc4738
fix(deps): update babel monorepo to v7.23.5 (#28122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 10:53:49 +00:00
Matt Jankowski b696ca6b1a
Move self destruct CLI command definition code to module (#28131) 2023-11-30 10:48:46 +00:00
Filippo Giunchedi 6e55ff9643
Change Vagrant to install Node 20 (#28100)
Co-authored-by: Filippo Giunchedi <filippo@debian.org>
2023-11-30 10:46:06 +00:00
Matt Jankowski e48ecd2929
Remove `default_scope` from `Admin::ActionLog` (#28026) 2023-11-29 10:39:59 +00:00
Matt Jankowski 291dc04e67
Remove un-needed `action` and `template` options to `render` in controllers (#28022) 2023-11-29 10:38:05 +00:00
Matt Jankowski a1636fce7f
Move lib/devise/* to lib/devise/strategies/* (#27638) 2023-11-29 10:10:21 +00:00
Matt Jankowski 31bef99b9e
Move lib/mastodon/premailer_webpack_strategy to lib/ (#27636) 2023-11-29 10:08:55 +00:00
Matt Jankowski 72b7cd349c
Extract helper methods for form label in admin/ area views (#27575) 2023-11-29 10:06:19 +00:00
Matt Jankowski 9b47c5d53c
Extract helper methods for labels from filters/_filter_fields (#27574) 2023-11-29 10:02:59 +00:00
Matt Jankowski 186895fc88
Refactor, lint fix, and bug fix on admin/roles/form partial (#27558) 2023-11-29 10:00:52 +00:00
renovate[bot] 3e1e41054b
chore(deps): update dependency pghero to v3.4.0 (#28117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-29 09:00:07 +00:00
Emelia Smith 603b245cc6
Add VAPID public key to instance serializer (#28006)
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2023-11-29 08:34:36 +00:00
Michael Stanclift c40cfc5d09
Fix apt cache not being properly utilized in Dockerfile (#28115) 2023-11-28 22:23:44 +00:00
Michael Stanclift 7a3b41eb54
Fix incorrect apt-get install block in Dockerfile (#28112) 2023-11-28 20:44:04 +00:00
Matt Jankowski 6b46bf9953
Handle scenario when webfinger response `subject` is missing host value (#28088) 2023-11-28 18:37:54 +00:00
Matt Jankowski b9492d84a0
Update `bcrypt` to version 3.1.20 (#28084) 2023-11-28 18:36:21 +00:00
Matt Jankowski b45fe15c06
Update temple to version 0.10.3 (#28086) 2023-11-28 18:36:16 +00:00
Josh Goldberg ✨ 3a7f10c3f1
Converted hashtag.jsx to TypeScript (#27872)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2023-11-28 18:20:10 +00:00
Josh Goldberg ✨ 1142f4c79e
Converted app/javascript/mastodon/utils/ folder to TypeScript (#27895) 2023-11-28 17:47:55 +00:00
Renaud Chaput cdc7894243
Fix devcontainer by not forcing `NODE_ENV` (#28099) 2023-11-28 14:47:32 +00:00
Emelia Smith a4de0e364b
Refactor streaming to simplify for logging change (#28056) 2023-11-28 14:24:41 +00:00
Emelia Smith 4949b6da58
Fix streaming eslint configuration (#28055) 2023-11-28 14:09:21 +00:00
Michael Stanclift a80530d1df
Dockerfile rewrite based on Ruby image with performance optimizations and size reduction, dedicated Streaming image (#26850)
Co-authored-by: “Michael <“mx@vmstan.com>
Co-authored-by: Emelia Smith <ThisIsMissEm@users.noreply.github.com>
2023-11-28 10:04:40 +00:00
Renaud Chaput 8ebc94dd22
Ignore `@svgr/webpack` updates as they require a Webpacker upgrade (#28098) 2023-11-28 10:03:32 +00:00
Matt Jankowski baf3b71e3b
Extract `path_without_format` private methd in accounts controller (#28091) 2023-11-28 09:17:26 +00:00
renovate[bot] c824d98cec
chore(deps): update dependency fabrication to v2.31.0 (#28089)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 09:17:00 +00:00
github-actions[bot] af02484714
New Crowdin Translations (automated) (#28096)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-28 08:59:48 +00:00
Matt Jankowski 9072896ae5
Avoid unnecessary i-var for account rss page url generation (#28092) 2023-11-28 08:19:08 +00:00
Matt Jankowski dfc7154767
Remove unused `cached_filtered_status_page` method from accounts controller (#28090) 2023-11-28 07:43:16 +00:00
Matt Jankowski 2d536bb05f
Use `admin_mailer` layout with initial salutation (#28085) 2023-11-28 07:41:26 +00:00
6543 10b879bd5e
nodeinfo: add instance name and description (#28079) 2023-11-28 00:51:22 +00:00
Claire f1657e6d62
Clamp dates when serializing to Elasticsearch API (#28081) 2023-11-27 13:25:54 +00:00
renovate[bot] 7b56085f11
Update dependency typescript to v5.3.2 (#28078)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 12:55:29 +00:00
Matt Jankowski 9b8ba9b350
Remove unused `plain_mailer` layout (#28065) 2023-11-27 10:40:03 +00:00
renovate[bot] b8fe77353e
Update dependency aws-sdk-s3 to v1.140.0 (#28080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 10:07:14 +00:00
renovate[bot] 228b668446
Update DefinitelyTyped types (non-major) (#28077)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 10:07:01 +00:00
June 97e677f993
Fix not all legal images showing in file picker when uploading custom emoji (#28076) 2023-11-27 10:06:48 +00:00
renovate[bot] 73ab080608
Update dependency jsdom to v23 (#28075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 10:06:40 +00:00
github-actions[bot] fad9343bab
New Crowdin Translations (automated) (#28069)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-27 10:06:35 +00:00
github-actions[bot] 8521238677
New Crowdin Translations (automated) (#28060)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-24 10:25:39 +00:00
Claire 3a24754229
Change GIF max matrix size error to explicitly mention GIF files (#27927) 2023-11-24 09:31:28 +00:00
Claire 6e70819840
Change search popout to not list unusable search options when logged out (#27918) 2023-11-24 09:27:54 +00:00
Matt Jankowski 19baf22683
Add missing email previews for `AdminMailer` (#28044) 2023-11-23 12:32:50 +00:00
renovate[bot] bf7e8e81de
Update dependency doorkeeper to v5.6.7 (#28051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-23 10:37:05 +00:00
renovate[bot] 1ee3314f58
Update dependency @types/npmlog to v7 (#28048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-23 10:28:52 +00:00
Kevin Bongart 7877fcd83c
Deduplicate IDs in relationships and familiar_followers APIs (#27982) 2023-11-23 10:00:09 +00:00
Matt Jankowski 973597c6f1
Consolidate configuration of `Sidekiq::Testing.fake!` setup (#28046) 2023-11-23 09:43:43 +00:00
github-actions[bot] c810b197ad
New Crowdin Translations (automated) (#28050)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-23 09:34:50 +00:00
Matt Jankowski 4be12791e6
Remove `default_scope` from `StatusEdit` class (#28042) 2023-11-23 09:26:11 +00:00
renovate[bot] 990c63b440
Update dependency aws-sdk-s3 to v1.139.0 (#28047)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-23 09:24:48 +00:00
github-actions[bot] d3ed03fd6b
New Crowdin Translations (automated) (#28036)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-22 15:48:12 +00:00
Matt Jankowski 9742bccbe7
Add coverage for `api/v2/media` endpoint (#28027) 2023-11-22 15:39:34 +00:00
renovate[bot] 183afc2465
Update dependency aws-sdk-s3 to v1.138.0 (#28031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 15:28:14 +00:00
renovate[bot] c3d3ada07b
Update dependency test-prof to v1.3.0 (#28032)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 15:27:54 +00:00
Eugen Rochko cdc57c74b7
Fix unsupported time zone or locale preventing sign-up (#28035)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-11-22 11:38:07 +00:00
Emelia Smith c9ffdcbaa2
Add debug + irb gems to assist with debugging in development and tests (#27960) 2023-11-21 16:41:04 +00:00
Matt Jankowski 67fd3187b3
Update rspec fixture path config to silence deprecation warning (#28018) 2023-11-21 15:51:40 +00:00
Matt Jankowski 30ee4aaff4
Convert measurement `api/v1/admin/*` controller specs to request specs (#28005) 2023-11-21 14:25:07 +00:00
renovate[bot] f91e751383
Update dependency rspec-rails to v6.1.0 (#28017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 13:23:23 +00:00
Matt Jankowski 32e19e3af6
Reduce `.times` usage in request and controller specs (#27949) 2023-11-21 13:05:59 +00:00
Matt Jankowski f7cb64a184
Add coverage for `settings/privacy` controller (#28000) 2023-11-21 13:02:37 +00:00
Claire 32319187ee
Fix error when muting users from Web UI (#28016) 2023-11-21 11:16:16 +00:00
renovate[bot] c836e71218
Update dependency aws-sdk-s3 to v1.137.0 (#27961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 11:05:41 +00:00
Matt Jankowski b2e8af8889
Add coverage for `settings/verifications` controller (#28001) 2023-11-21 11:00:22 +00:00
Matt Jankowski 6d51ac246b
Update partials for the `AdminMailer.new_trends` mailer (#28011) 2023-11-21 10:52:20 +00:00
github-actions[bot] 3c3e0c25ef
New Crowdin Translations (automated) (#28015)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-21 10:35:02 +00:00
Matt Jankowski a6d446e6a7
Add coverage for `remote_interaction_helper` (#28002) 2023-11-21 10:28:55 +00:00
renovate[bot] e1bb79718b
Update babel monorepo to v7.23.4 (#28004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 10:20:23 +00:00
Matt Jankowski 876f5b1d12
Convert `/instances/*` controller specs to request specs (#27988)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-11-20 11:05:28 +00:00
Matt Jankowski 718c95e7af
Convert `api/v1/custom_emojis` controller spec to request spec (#27985)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-11-20 11:05:24 +00:00
Claire c260a68f54
Clean up some `Mastodon::CLI::Accounts` tests (#27473) 2023-11-20 10:46:02 +00:00
renovate[bot] 18cb1f9196
Update actions/setup-node action to v4 (#27996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 10:17:13 +00:00
Matt Jankowski 17582d36d5
Convert `api/v1/preferences` controller spec to request spec (#27987) 2023-11-20 09:39:45 +00:00
Matt Jankowski 9a01a260a0
Convert `api/v1/scheduled_statuses` controller spec to request spec (#27986) 2023-11-20 09:36:49 +00:00
Matt Jankowski b9fb47aeb1
Convert `api/v1/endorsements` controller spec to request spec (#27984) 2023-11-20 09:32:28 +00:00
renovate[bot] 3a8dc9a5c6
Update dependency nokogiri to v1.15.5 (#27939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 09:29:46 +00:00
Matt Jankowski 371f355719
Reduce `.times` usage in `AccountStatusesCleanupPolicy` (#27947) 2023-11-20 09:08:54 +00:00
Matt Jankowski d2aacea8da
Reduce `.times` usage in AccountSearch spec, use constant for default limit (#27946) 2023-11-20 09:08:22 +00:00
Matt Jankowski 00c6ebd86f
Reduce `.times` usage in `StatusPin` and add `PIN_LIMIT` constant in validator (#27945) 2023-11-20 09:07:25 +00:00
Matt Jankowski 1fabf20a88
Reduce `.times` usage in `lib/mastodon/cli/accounts` spec (#27944) 2023-11-20 09:04:46 +00:00
renovate[bot] 12c22ee5e7
Update eslint (non-major) (#27995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:53:14 +00:00
renovate[bot] 6464b7cc45
Update dependency public_suffix to v5.0.4 (#27931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:50:00 +00:00
Matt Jankowski 09a2db3f6c
Move api/v2/filters spec to correct path location (#27950) 2023-11-20 08:48:56 +00:00
github-actions[bot] 8ceae2bce6
New Crowdin Translations (automated) (#27966)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-20 08:47:34 +00:00
renovate[bot] 135c4d8250
Update dependency rubocop-rails to v2.22.2 (#27975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:46:18 +00:00
renovate[bot] d75c7ac5a8
Update dependency core-js to v3.33.3 (#27980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:46:00 +00:00
renovate[bot] 6d60b936ad
Update devDependencies (non-major) (#27992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:44:36 +00:00
Tim Campbell 60f143e41f
Fixed yarn not installing node packages for streaming (#27967) 2023-11-18 10:14:51 +00:00
Matt Jankowski e892efbc40
Configure elastic search integration with rspec tag (#27882) 2023-11-17 11:52:20 +00:00
Claire 297839c10c
Rewrite `/api/v1/statuses` tests as request specs (#27891) 2023-11-17 11:36:04 +00:00
Claire 9257737675
Rewrite `/api/v1/accounts` tests as request specs (#27888) 2023-11-17 11:34:49 +00:00
Eugen Rochko 0e9801443f
Change to single opt-in during profile setup in onboarding in web UI (#27876) 2023-11-17 10:37:04 +00:00
Matt Jankowski 549e8e7baf
Add `email_spec` and speedup/cleanup to `spec/mailers` (#27902) 2023-11-17 09:50:19 +00:00
github-actions[bot] 9c68741f46
New Crowdin Translations (automated) (#27914)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-17 09:16:12 +00:00
Matt Jankowski 1526e54ac6
Add spec coverage for `workers/redownload_*` worker classes (#27892) 2023-11-17 09:03:46 +00:00
renovate[bot] 6c2e78f1b1
Update dependency @material-symbols/svg-600 to v0.14.1 (#27907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 08:56:39 +00:00
renovate[bot] 94178e2f68
Update dependency react-redux-loading-bar to v5.0.5 (#27916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 08:56:23 +00:00
Matt Jankowski cb1a4a8713
Reduce expectations for `RSpec/MultipleExpectations` cop in `spec/presenters` specs (#27881) 2023-11-16 14:37:52 +00:00
Matt Jankowski 155fb84141
Improve spec coverage for collection of `workers/` classes (#27874) 2023-11-16 14:36:59 +00:00
Claire 0a6ec048a8
Fix upper border radius of onboarding columns (#27890) 2023-11-16 13:43:02 +00:00
Claire c94bedf4e6
Use container queries to hide profile share button (#27889) 2023-11-16 11:59:45 +00:00
Eugen Rochko 87696ea26e
Add prominent share/copy button on profiles in web UI (#27865) 2023-11-16 10:23:14 +00:00
github-actions[bot] 7232d4750d
New Crowdin Translations (automated) (#27884)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-16 10:08:22 +00:00
Matt Jankowski 8a285413f7
Reduce expectations for `RSpec/MultipleExpectations` cop in `MoveWorker` spec (#27880) 2023-11-16 10:03:51 +00:00
Matt Jankowski 3f0c1566c3
Reduce expectations for `RSpec/MultipleExpectations` cop in `api/v1/accounts/relationships` spec (#27879) 2023-11-16 09:55:50 +00:00
Matt Jankowski c1f93def40
Reduce expectations for `RSpec/MultipleExpectations` cop in `controllers/statuses` spec (#27875) 2023-11-16 09:54:51 +00:00
renovate[bot] 669a7157cb
Update dependency webpack-bundle-analyzer to v4.10.1 (#27885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 09:52:23 +00:00
renovate[bot] 91a05f3cad
Update libretranslate/libretranslate Docker tag to v1.5.2 (#27716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 09:33:54 +00:00
Matt Jankowski 04121bd020
Disable simplecov `enable_coverage_for_eval` option, move to standalone file (#27869) 2023-11-15 23:09:31 +00:00
Matt Jankowski 3de9145613
Move controller specs for `well-known` endpoints to request specs (#27855) 2023-11-15 19:12:02 +00:00
Claire bd575a1dd6
Add banner for forwarded reports made by remote users about remote content (#27549) 2023-11-15 14:18:43 +00:00
Matt Jankowski 12a5b7391d
Add spec for well known change password endpoint (#27856) 2023-11-15 13:21:18 +00:00
Matt Jankowski fe58ac8d9f
Improve spec coverage for `api/web/push_subscriptions` controller (#27858)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-11-15 13:14:51 +00:00
Eugen Rochko d67bd44ca1
Add profile setup to onboarding in web UI (#27829) 2023-11-15 11:13:53 +00:00
github-actions[bot] d8074128f9
New Crowdin Translations (automated) (#27866)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-15 09:41:24 +00:00
Jeong Arm 922f086253
Fix open status on media modal (#27867) 2023-11-15 09:29:10 +00:00
renovate[bot] 5d75799afa
Update dependency axios to v1.6.2 (#27861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 09:21:25 +00:00
Renaud Chaput b6f29106ea
Improve codecov config (#27860) 2023-11-15 09:20:24 +00:00
Matt Jankowski 7c72944661
Use `Lcov` simplecov formatter on CI and `HTML` elsewhere (#27859) 2023-11-15 09:11:02 +00:00
renovate[bot] 998f068499
Update Yarn to v4.0.2 (#27857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 17:52:34 +00:00
Emelia Smith 15b2d7eec5
Split streaming server from web server (#24702) 2023-11-14 17:43:20 +00:00
Nick Schonning 36d7d1781f
Add CodeCov for Ruby coverage reports (#23868) 2023-11-14 16:53:38 +00:00
renovate[bot] 35b9749b95
Update dependency webpack-bundle-analyzer to v4.10.0 (#27852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 16:53:15 +00:00
ppnplus 2b038b4f89
Added Thai diacritics and tone marks in HASHTAG_INVALID_CHARS_RE (#26576) 2023-11-14 15:33:59 +00:00
Matt Jankowski 7e1a77ea51
Add base class for `api/v1/timelines/*` controllers (#27840) 2023-11-14 14:53:31 +00:00
Matt Jankowski b2c5b20ef2
Fix `RSpec/AnyInstance` cop (#27810) 2023-11-14 14:52:59 +00:00
Matt Jankowski d562fb8459
Specs for minimal CSP policy in `Api::` controllers (#27845) 2023-11-14 14:34:30 +00:00
renovate[bot] 4eb4e8b22c
Update Yarn to v4.0.2 (#27851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 11:07:13 +00:00
github-actions[bot] c1e071f634
New Crowdin Translations (automated) (#27848)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-14 10:53:47 +00:00
Matt Jankowski 1f8173ac5a
Extract private methods in api/v1/instances/domain_blocks (#27844) 2023-11-14 10:31:59 +00:00
renovate[bot] 373aa95ddd
Update formatjs monorepo (#27849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 10:30:39 +00:00
Matt Jankowski 5e2ecc736d
Remove double `subject` in api/v1/accounts/relationships spec (#27839) 2023-11-14 10:29:33 +00:00
Brian Holley 4aa06cbdbf
Fix "Hide these posts from home" list setting not refreshing when switching lists (#27763) 2023-11-14 00:39:54 +00:00
Matt Jankowski b7807f3d84
Use `normalizes` to prepare `Webhook#events` value (#27605) 2023-11-13 22:47:44 +00:00
Claire bac9e0b55d
Add variable delay before link verification of remote account links (#27774) 2023-11-13 16:17:05 +00:00
Matt Jankowski 49ba5a9f94
Use `hash_including` to check `AccountFilter` setup in `admin/accounts` controller spec (#27838) 2023-11-13 16:01:24 +00:00
Matt Jankowski 0945e25b8f
Add `Api::V1::Statuses::BaseController` base controller class (#27794) 2023-11-13 14:53:22 +00:00
renovate[bot] da59407520
Update eslint (non-major) (#27831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 14:40:50 +00:00
renovate[bot] a1b48460e4
Update DefinitelyTyped types (non-major) (#27830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 14:40:10 +00:00
Eugen Rochko 7e3c10dec6
Add icons for private and disabled boost in web UI (#27817)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-11-13 14:39:45 +00:00
Matt Jankowski a36b59be8a
Spec coverage for `api/v1/trends` controllers (#27837) 2023-11-13 14:32:36 +00:00
renovate[bot] 0c98a9d9be
Update devDependencies (non-major) (#25612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 14:01:07 +00:00
pajowu ed79713f3a
Fix modal content not being selectable (#27813) 2023-11-13 13:27:50 +00:00
Claire 07a4059901
Add support for invite codes in the registration API (#27805) 2023-11-13 13:27:00 +00:00
renovate[bot] 5bca5c4c5b
Update formatjs monorepo (#27823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 13:24:14 +00:00
github-actions[bot] e5a7b73ef4
New Crowdin Translations (automated) (#27815)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-13 13:21:02 +00:00
renovate[bot] a7117bbef6
Update dependency @rails/ujs to v7.1.2 (#27811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 13:13:57 +00:00
renovate[bot] 3b989e4d64
Update dependency rails to v7.1.2 (#27812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 13:13:53 +00:00
Renaud Chaput da4f37020b
Fix Jest config (#27834) 2023-11-13 12:19:41 +00:00
Eugen Rochko 0d14fcebae
Change link previews to keep original URL from the status (#27312) 2023-11-13 09:58:28 +00:00
Matt Jankowski 9dc3ce878b
Speed-up in `Settings::` controllers specs (#27808) 2023-11-10 15:13:42 +00:00
github-actions[bot] ac62b995ef
New Crowdin Translations (automated) (#27804)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-10 13:07:04 +00:00
Matt Jankowski 43e2f763b2
Extract crutches_active_mentions from FeedManager (#27785) 2023-11-10 12:47:38 +00:00
Matt Jankowski ac69f90098
Add `Api::V1::Instances::BaseController` base controller class (#27797) 2023-11-10 12:46:00 +00:00
renovate[bot] fba838d61a
Update dependency @material-symbols/svg-600 to ^0.14.0 (#27803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-10 12:45:19 +00:00
Aleks Xhuvani 7840c6b75b
Do not try to update an undefined video element (#27798) 2023-11-09 22:35:53 +00:00
Matt Jankowski e79bf1b1e7
Minor speed improvement on `controllers/accounts` spec (#27679) 2023-11-09 16:21:11 +00:00
Matt Jankowski 9429e30d75
Disable sidekiq unique jobs in test env (#27737) 2023-11-09 16:19:04 +00:00
Claire c451bbe249
Allow viewing and severing relationships with suspended accounts (#27667) 2023-11-09 14:50:25 +00:00
Michael Stanclift b87bfb8c96
Fix Yarn version in devcontainer (#27788) 2023-11-09 14:30:07 +00:00
Matt Jankowski 548bb30b2a
Consolidate html page title output logic into helper (#27563) 2023-11-09 13:05:57 +00:00
Claire 9b06c0f24a
Fix Web UI not displaying appropriate explanation when a user hides their follows/followers (#27791) 2023-11-09 12:58:02 +00:00
Matt Jankowski 63c9102f8a
Fix `RSpec/MessageChain` cop (#27776) 2023-11-09 12:57:23 +00:00
renovate[bot] dec2796a4a
Update dependency lint-staged to v15 (#27407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 10:16:53 +00:00
renovate[bot] 4812832620
Update dependency axios to v1.6.1 (#27773)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 10:16:44 +00:00
renovate[bot] 23d88aa943
Update babel monorepo to v7.23.3 (#27789)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 10:16:36 +00:00
Yamagishi Kazutoshi 220a2e8fbf
Run `yarn dedupe` when updating with Renovate (#27786) 2023-11-09 10:15:58 +00:00
github-actions[bot] d6c971e158
New Crowdin Translations (automated) (#27787)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-09 09:54:14 +00:00
Matt Jankowski ce1bd81c85
Reduce complexity in `StatusCacheHydrator` (#27783) 2023-11-09 09:53:44 +00:00
Matt Jankowski c9204b792c
Fix `Rails/I18nLocaleTexts` cop (#27779) 2023-11-09 09:46:39 +00:00
Matt Jankowski c875dfc90b
Fix `Lint/UnusedBlockArgument` cop (#27777) 2023-11-09 09:43:26 +00:00
renovate[bot] 5af47fbff8
Update dependency fog-openstack to v1 (#25968)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-09 09:06:57 +00:00
Matt Jankowski 69d00e2721
Fix `RSpec/InstanceVariable` cop (#27766) 2023-11-08 15:42:30 +00:00
Matt Jankowski 4329616c53
Ignore block result of `send` method and remove `rubocop:disable` in deepl spec (#27741) 2023-11-08 14:43:17 +00:00
Jaehong Kang c73d5a6075
Using Sidekiq concurrency for default db pool value (#26488) 2023-11-08 13:15:43 +00:00
Matt Jankowski 13c3e59601
Use helper method to build batched status edits in `admin/statuses/show` (#27739) 2023-11-08 13:04:52 +00:00
Matt Jankowski b05575e242
Move RSpec config for streaming/search managers to be near classes (#27761) 2023-11-08 13:04:17 +00:00
Matt Jankowski ce91d14d48
Fix `Style/WordArray` cop (#27770) 2023-11-08 13:03:44 +00:00
Matt Jankowski c03bd2a238
Don't stub SUT in `FollowLimitValidator` spec (#27760) 2023-11-08 12:49:46 +00:00
github-actions[bot] 5c328ae674
New Crowdin Translations (automated) (#27768)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-08 12:40:09 +00:00
Matt Jankowski 9b7b4d748f
Simplify request cache spec shared examples (#27673) 2023-11-08 12:37:29 +00:00
Matt Jankowski 7d6bcc0615
Remove unmatched `rubocop:enable` declaration (#27769) 2023-11-08 12:02:09 +00:00
Matt Jankowski 33cc3ae8fa
Fix `Style/StabbyLambdaParentheses` cop (#27771) 2023-11-08 12:01:18 +00:00
Renaud Chaput 757d7c73c0
Upgrade to Yarn 4, remove support for Node 16 (#27073) 2023-11-08 10:57:21 +00:00
Claire 23e32a4b30
Fix format-dependent redirects being cached regardless of requested format (#27632) 2023-11-08 10:31:05 +00:00
Matt Jankowski e545978076
Use framework helpers instead of i-vars in controller specs (#27767) 2023-11-08 08:17:43 +00:00
Matt Jankowski 790f6356be
Deduplicate yarn lock file (#27670) 2023-11-08 07:49:06 +00:00
João Pedro Marques d3cd37d73e
Feature - Prevents multiple audio/video attachments from being played at the same time (#24717) 2023-11-07 23:37:58 +00:00
renovate[bot] 389a6cc4c0
Update dependency net-http to '~> 0.4.0' (#27721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:07:12 +00:00
renovate[bot] 14e49e5e36
Update dependency react-select to v5.8.0 (#27722)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:05:36 +00:00
renovate[bot] 565d9a6cf3
Update dependency sanitize to v6.1.0 (#27723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:05:13 +00:00
renovate[bot] 8b0d86d407
Update dependency simple_form to v5.3.0 (#27725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:04:40 +00:00
renovate[bot] ac9f92bd73
Update formatjs monorepo (#27746)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:04:25 +00:00
renovate[bot] b36b35318a
Update dependency selenium-webdriver to v4.15.0 (#27649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:03:31 +00:00
renovate[bot] bcdfb72686
Update dependency json-ld-preloaded to v3.3.0 (#26763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:03:09 +00:00
renovate[bot] 4b8aee7ad8
Update dependency thor to v1.3.0 (#27464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:02:28 +00:00
renovate[bot] 1341790207
Update dependency sidekiq-unique-jobs to v7.1.30 (#26091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:02:04 +00:00
renovate[bot] b2619a10a5
Update dependency json-ld to v3.3.0 (#26762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:01:09 +00:00
renovate[bot] 110ace0474
Update dependency json-schema to v4.1.1 (#26933)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:00:34 +00:00
renovate[bot] feea257f44
Update dependency aws-sdk-s3 to v1.136.0 (#26999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 22:00:13 +00:00
renovate[bot] b41e9b1d29
Update dependency strong_migrations to v1.6.4 (#27631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 21:59:35 +00:00
Jasmin Johal 27cbdc6f22
Change alt text to empty string for avatars (#21875)
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2023-11-07 21:46:08 +00:00
Aleks Xhuvani 58f01a5c9a
Add volume saving/reuse to video player (#27488) 2023-11-07 18:15:38 +00:00
Matt Jankowski ee57bb4b44
Account statuses filter spec speedup (#27674) 2023-11-07 15:47:01 +00:00
Matt Jankowski ae7c20b00c
Move search and streaming spec manager classes to separate support files (#27727) 2023-11-07 15:25:49 +00:00
Matt Jankowski 02d27de5ce
Move i18n locale configuration to separate initializer (#27571) 2023-11-07 15:22:14 +00:00
Matt Jankowski 370802ce48
Add coverage for `CLI::Maintenance#fix_duplicates` command (#25252) 2023-11-07 15:21:58 +00:00
Matt Jankowski 1d51e10510
Consolidate JSON parsing in serializers specs (#27693) 2023-11-07 15:20:24 +00:00
Matt Jankowski a688a9ed20
Use strings instead of numeric literals and remove `rubocop:disable` in cache spec (#27742) 2023-11-07 15:20:00 +00:00
Matt Jankowski dc0bf87090
Remove unused before block from settings/branding spec (#27759) 2023-11-07 15:19:17 +00:00
Renaud Chaput f476d9dab2
Fix the `notificationsUpdate` call (#27758) 2023-11-07 14:18:59 +00:00
Matt Jankowski 45770c9306
Fix `Performance/MapMethodChain` cop (#27744) 2023-11-07 13:01:09 +00:00
Matt Jankowski bbad5b6456
Remove false positive cop detection (#27457) 2023-11-07 10:44:15 +00:00
Matt Jankowski 49e2772064
Fix `RSpec/MessageSpies` cop (#27751) 2023-11-07 09:46:28 +00:00
Renaud Chaput ae0d551d33
Do not copy `public/packs-test` into Docker (#27736) 2023-11-07 09:22:04 +00:00
Matt Jankowski 2862ad701f
Stub controller methods and remove `rubocop:disable` in captcha feature spec (#27743) 2023-11-07 09:15:30 +00:00
Matt Jankowski 2d39268bc5
Fix `Lint/OrAssignmentToConstant` cop (#27750) 2023-11-07 09:11:50 +00:00
Matt Jankowski cfa14ec6d1
Fix `Lint/EmptyBlock` cop (#27748) 2023-11-07 09:11:04 +00:00
Matt Jankowski b06284c572
Fix `RSpec/HookArgument` cop (#27747) 2023-11-07 09:10:36 +00:00
github-actions[bot] 1b28ab7263
New Crowdin Translations (automated) (#27687)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-07 09:03:59 +00:00
Matt Jankowski d6f50839e1
Fix `RSpec/SpecFilePathFormat` cops (#27730) 2023-11-06 16:25:40 +00:00
Matt Jankowski c501d626e8
Fix `Rails/BulkChangeTable` cop (#26890) 2023-11-06 16:15:48 +00:00
Matt Jankowski 0c4e7c06dc
Fix `Rails/FindEach` cop (#26886) 2023-11-06 15:53:29 +00:00
Matt Jankowski fe26f33e0a
Fix `Rails/RedundantActiveRecordAllMethod` cop (#26885) 2023-11-06 15:51:52 +00:00
Matt Jankowski 949f5eb860
Fix `RSpec/MetadataStyle` cop in spec/ (#27729) 2023-11-06 14:28:20 +00:00
zunda e4e752c26e
Adjust transform origin for favorite star (#27700) 2023-11-06 11:14:46 +00:00
renovate[bot] 9c34bb4d54
Update Node.js to v20.9 (#27714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 10:27:42 +00:00
renovate[bot] 0ca27b2d81
Update DefinitelyTyped types (non-major) (#27713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 10:27:19 +00:00
renovate[bot] 22b4713d2e
Update eslint (non-major) (#27715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 10:26:18 +00:00
Renaud Chaput 3bf896c973
Disable Babel polyfill injection in dev (#27691) 2023-11-06 10:24:41 +00:00
renovate[bot] 1416745a2b
Update dependency faker to v3.2.2 (#27718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 09:54:59 +00:00
renovate[bot] afd1371fa3
Update dependency rubocop to v1.57.2 (#27719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 09:53:13 +00:00
renovate[bot] ef140da349
Update dependency discard to v1.3.0 (#27720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-06 09:52:50 +00:00
Claire c0989b78f8
Fix incoming status creation date not being restricted to standard ISO8601 (#27655) 2023-11-06 09:28:14 +00:00
Renaud Chaput 6712bf86cd
Fixes website not loading for unlogged users (#27698) 2023-11-04 21:52:56 +00:00
Renaud Chaput 3bf2a7296e
Use Immutable `Record` for accounts in Redux state (#26559) 2023-11-03 15:00:03 +00:00
Matt Jankowski 9d799d40ba
Reduce CI job matrix job count (#27660) 2023-11-03 14:58:33 +00:00
Matt Jankowski 5d9e71ebe0
Archive uploaded CI assets into single file between build/test (#27668) 2023-11-03 14:12:14 +00:00
github-actions[bot] 2d548e273e
New Crowdin Translations (automated) (#27646)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-03 10:10:13 +00:00
Claire 0337df3a42
Fix posts from threads received out-of-order sometimes not being inserted into timelines (#27653) 2023-11-02 14:58:37 +00:00
Renaud Chaput 2aa28e06d1
Mark version 4.0 as no longer supported (#27627) 2023-11-01 13:53:14 +00:00
mogaminsk ac8e4ed38d
Fix inserting emojis from emoji picker fails with TypeError (#27647) 2023-11-01 07:22:02 +00:00
Renaud Chaput 277e6968f5
Use helpers to check environment in frontend (#27633) 2023-10-31 16:05:44 +00:00
Matt Jankowski 7ef56d6e50
Move json_ld context loaders to `config/initializers` (#27590) 2023-10-31 15:21:23 +00:00
Matt Jankowski 3107a9410c
Silence deprecation warning about secrets/credentials with Devise patch (#27578) 2023-10-31 11:10:15 +00:00
Matt Jankowski b264318431
Update strong_migrations to version 1.3.0 (#25991) 2023-10-31 11:09:32 +00:00
Renaud Chaput 0e3401bc1c
Improve Babel configuration and automatically load polyfills (#27333) 2023-10-31 10:55:13 +00:00
Claire 9c8891b39a
Rewrite `AutosuggestTextarea` as Functional Component (#27618) 2023-10-31 10:17:37 +00:00
Matt Jankowski a916251d8a
Update haml-lint line length configuration to match rubocop value (#27570) 2023-10-31 09:47:16 +00:00
Claire d649bbf28f
Add some more tests and clean up domain block controller (#27469) 2023-10-31 09:40:30 +00:00
github-actions[bot] e5b7ae9576
New Crowdin Translations (automated) (#27630)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-31 08:43:17 +00:00
renovate[bot] 147417a6d0
Update dependency rspec-sidekiq to v4.1.0 (#27593)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 08:26:21 +00:00
renovate[bot] 204c00b5c6
Update dependency bootsnap to '~> 1.17.0' (#27617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 08:24:04 +00:00
Matt Jankowski beee9ea991
Fix `RSpec/LetSetup` cop in spec/controllers/admin area (#27619) 2023-10-31 08:22:19 +00:00
Claire 6c52f8286b
Fix posts from force-sensitized accounts being able to trend (#27620) 2023-10-30 22:32:25 +00:00
renovate[bot] b8adb08f92
Update dependency axios to v1.6.0 (#27580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 22:31:32 +00:00
renovate[bot] 372494e553
Update dependency punycode to v2.3.1 (#27625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 22:31:22 +00:00
renovate[bot] 547d3c1b9b
Update dependency core-js to v3.33.2 (#27624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 22:30:26 +00:00
renovate[bot] c2cc1df5ef
Update dependency @types/react to v18.2.33 (#27615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 22:30:02 +00:00
github-actions[bot] a918208ec6
New Crowdin Translations (automated) (#27596)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-30 14:19:25 +00:00
renovate[bot] bf1d452978
Update libretranslate/libretranslate Docker tag to v1.4.1 (#27616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 14:19:20 +00:00
Ricardo Trindade 33f8c1c5eb
Remove version check from update cache_concern.rb (#27592) 2023-10-30 14:04:12 +00:00
Matt Jankowski eae5c7334a
Extract class from CSP configuration/initialization (#26905) 2023-10-27 16:20:40 +00:00
Matt Jankowski 2e6bf60f15
Use `deliveries.size` in mailer-related examples in controller specs (#27589) 2023-10-27 15:33:52 +00:00
Jonathan de Jong 1cc512909c
Have `Follow` activities bypass availability (#27586)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-27 14:55:00 +00:00
Claire 93e4cdc31b
Fix hashtag matching pattern matching some URLs (#27584) 2023-10-27 14:04:51 +00:00
SouthFox 08bdd5751e
Fix account click on detailed status (#27587) 2023-10-27 14:03:21 +00:00
renovate[bot] 15ef654e9a
Update dependency pundit to v2.3.1 (#27585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-27 13:43:00 +00:00
Renaud Chaput 13d310e64d
Simplify column headers (#27557) 2023-10-27 13:21:07 +00:00
Matt Jankowski 1f5187e2e2
Misc spec/refactor to user mailer and user mailer spec (#27486) 2023-10-27 09:57:16 +00:00
renovate[bot] 37929b9707
Update libretranslate/libretranslate Docker tag to v1.4.0 (#27504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-27 09:56:45 +00:00
github-actions[bot] 8ca16f032e
New Crowdin Translations (automated) (#27583)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-27 09:38:04 +00:00
Claire bbf46cc418
Fix error and incorrect URLs in `/api/v1/accounts/:id/featured_tags` for remote accounts (#27459) 2023-10-27 08:35:21 +00:00
Jeong Arm 8f998cd96a
Handle featured collections without items (#27581) 2023-10-27 02:36:22 +00:00
Eugen Rochko fa7e64df1d
Fix various icon styles in web UI (#27579) 2023-10-26 23:37:58 +00:00
Matt Jankowski 12550a6a28
Use `Rails.env.local?` shorthand method to check env (#27519) 2023-10-26 21:20:41 +00:00
Matt Jankowski 4aa05d45fc
Capture minimum postgres version 12 (#27528) 2023-10-26 20:35:15 +00:00
Simon Rapilly 2d8f759a34
Add HTML lang attribute to preview card descriptions (#27503) 2023-10-26 20:34:15 +00:00
Claire d2f52f7f64
Fix report processing notice not mentioning the report number when performing a custom action (#27442) 2023-10-26 17:03:31 +00:00
Mark T. Tomczak ba8dcb50fe
Issue 26048: swap "muting" and "blocking" list options in settings -> Data Exports (#26088) 2023-10-26 14:08:25 +00:00
Claire 75255c01fc
Fix error when trying to delete already-deleted file with OpenStack Swift (#27569) 2023-10-26 13:09:48 +00:00
github-actions[bot] 3427b51d63
New Crowdin Translations (automated) (#27567)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-26 11:05:47 +00:00
Renaud Chaput 537442853f
Use a context to propagate column-related Props, and remove `forceUpdate` usage (#27548) 2023-10-26 11:00:10 +00:00
Matt Jankowski 3ca974e101
Use `next` keyword in field loop in admin/accounts/index view (#27559) 2023-10-26 10:52:14 +00:00
renovate[bot] 400f5c9174
Update dependency @material-symbols/svg-600 to v0.13.2 (#27565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-26 10:49:39 +00:00
renovate[bot] 6e018f7228
Update dependency sass to v1.69.5 (#27566)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-26 10:48:55 +00:00
Claire 49b8433c56
Fix confusing screen when visiting a confirmation link for an already-confirmed email (#27368) 2023-10-25 21:33:44 +00:00
Matt Jankowski 9a3d047f3e
Run `bin/rails app:update` with Rails 7.1 (#27522) 2023-10-25 13:56:09 +00:00
Claire 235a4cfdc8
Fix batch attachment deletion when using OpenStack Swift (#27554) 2023-10-25 13:55:57 +00:00
Renaud Chaput a4e6fe36cb
Add missing ban icons (#27555) 2023-10-25 12:47:37 +00:00
Matt Jankowski 70dbf84b9b
Solve simplest haml-lint `Rubocop` lints (#27529) 2023-10-25 12:38:01 +00:00
Claire fa65c8244f
Fix cache store pool config deprecation warnings (#27551) 2023-10-25 12:01:21 +00:00
Matt Jankowski c926f5fd67
Fix haml-lint `UnnecessaryStringOutput` for views (#27531) 2023-10-25 12:01:00 +00:00
github-actions[bot] c85e0a6b04
New Crowdin Translations (automated) (#27544)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-25 07:36:07 +00:00
renovate[bot] f261b6499f
Update dependency node to 20.9 (#27534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-25 07:16:19 +00:00
Matt Jankowski cec7f0ed72
Remove unused `#error_explanation` id from error partials (#27536) 2023-10-25 07:12:32 +00:00
Renaud Chaput cb92cdf9af
Fix `<ColumnBackButtonSlim>` (#27540) 2023-10-24 20:43:55 +00:00
Renaud Chaput f08ca3f042
Fix missing icon props (#27539) 2023-10-24 20:43:06 +00:00
Matt Jankowski bc3afb6311
Update `rails/ujs` delegate method usage (#27538) 2023-10-24 20:38:19 +00:00
Eugen Rochko 134de736dc
Change icons in web UI (#27385)
Co-authored-by: Renaud Chaput <renchap@gmail.com>
2023-10-24 17:45:08 +00:00
Michael Stanclift b1885387b6
Fix missing libyaml-dev dependency in Dockerfile (#27533) 2023-10-24 17:32:10 +00:00
Claire 15182d1e5e
Fix history handling not properly handling states after update to react-router v5 (#27526) 2023-10-24 13:24:57 +00:00
Renaud Chaput 6cf9f1211b
Create custom Github Actions for common steps (#27518) 2023-10-24 11:43:24 +00:00
Matt Jankowski 714e3ae5b5
Use Rails 7.1 `normalizes` feature (#27521) 2023-10-24 10:06:10 +00:00
github-actions[bot] 50b7ea810e
New Crowdin Translations (automated) (#27523)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-24 09:51:34 +00:00
Matt Jankowski e923bb9ec9
Use `ENV.fetch` in views, fixes rubocop haml-lint issue (#27527) 2023-10-24 09:30:14 +00:00
Matt Jankowski 4fdc548fa5
Regenerate lint todos (#27513) 2023-10-24 08:08:31 +00:00
たいち ひ 9482810703
Rewrite `emoji_unicode_mapping_light` to TS (#25444)
Co-authored-by: taichi.fukuda ひ <taichi.fukuda@systemi.co.jp>
2023-10-24 08:06:14 +00:00
Matt Jankowski e93a75f1a1
Rails 7.1 update (#25963) 2023-10-23 17:58:29 +00:00
Claire 379115e601
Add SELF_DESTRUCT env variable to process self-destructions in the background (#26439) 2023-10-23 15:46:21 +00:00
Daniel M Brasil 26d2a2a0cc
Migrate to request specs in `/api/v1/media` (#25543) 2023-10-23 15:46:21 +00:00
Eugen Rochko d9503a1965
Fix explore page reloading when you navigate back to it in web UI (#27489) 2023-10-23 17:07:13 +02:00
Claire 79a63201a9
Fix Layout/EmptyLineAfterGuardClause issues caused by merging an old PR (#27512) 2023-10-23 16:21:48 +02:00
Renaud Chaput fc7734df8d
Remove Renovate's Lock File Maintenance task (#27510) 2023-10-23 14:38:36 +02:00
Matt Jankowski 3cfdab6b48
Prune the changelog of older entries (#27432) 2023-10-23 14:35:56 +02:00
renovate[bot] d5408dbb54
Update dependency prom-client to v15 (#27330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 14:33:17 +02:00
Claire 8b770ce811
Add warnings to report action logs (#27425) 2023-10-23 14:30:46 +02:00
Claire 44edf3aa91
Improve error handling in mastodon:setup task (#21464) 2023-10-23 14:28:32 +02:00
Claire 99f2534cee
Add support for displaying unknown servers on /admin/instances/:domain (#27150) 2023-10-23 14:27:57 +02:00
Claire c3e0eb3699
Change Content-Security-Policy to be tighter on media paths (#26889) 2023-10-23 14:27:07 +02:00
Claire bcae744275
Fix some link anchors being recognized as hashtags (#27271) 2023-10-23 14:19:38 +02:00
renovate[bot] 53fd28b889
Update dependency react-select to v5.7.7 (#27003)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:45:14 +02:00
renovate[bot] f7b34707a8
Update babel monorepo to v7.23.2 (#27118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:36:47 +02:00
renovate[bot] 25751c653e
Update DefinitelyTyped types (non-major) (#27414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:35:54 +02:00
renovate[bot] 132204031f
Update dependency core-js to v3.33.1 (#27481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:20:01 +02:00
renovate[bot] bb5bae186f
Update dependency webpack-merge to v5.10.0 (#27420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:18:16 +02:00
renovate[bot] 69d3318055
Update dependency rimraf to v5.0.5 (#27140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:16:02 +02:00
renovate[bot] cd08b436ab
Update dependency sass to v1.69.4 (#27004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:15:31 +02:00
renovate[bot] 6f1eb89d21
Update dependency ws to v8.14.2 (#26980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:14:16 +02:00
renovate[bot] 6f429d3f1b
Update formatjs monorepo (#27416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:13:12 +02:00
renovate[bot] 773133befa
Update eslint (non-major) (#27415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:12:17 +02:00
Claire 0ad66175bf
Fix incorrect proptypes from react-router-v5 update (#27507) 2023-10-23 11:39:53 +02:00
github-actions[bot] 70fd819935
New Crowdin Translations (automated) (#27490)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-23 10:04:54 +02:00
Matt Jankowski b0213472df
Validate allowed schemes on preview card URLs (#27485) 2023-10-23 09:50:02 +02:00
Renaud Chaput 9d45a444f9
Convert `<Button>` to Typescript (#27492) 2023-10-23 09:43:00 +02:00
Matt Jankowski ab0fb81479
Configure brakeman to ignore url safe preview card urls (#25883) 2023-10-20 15:32:16 +02:00
Claire 13688539bc
Fix processing LDSigned activities from actors with unknown public keys (#27474) 2023-10-20 10:45:46 +02:00
github-actions[bot] 284c719f64
New Crowdin Translations (automated) (#27480)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-20 10:11:40 +02:00
Eugen Rochko 33bd8eccd5
Fix missing background behind dismissable banner in web UI (#27479) 2023-10-20 04:08:13 +02:00
Renaud Chaput 1b70d7ed7c
Upgrade to react-router v5 (#25047)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-19 19:44:55 +02:00
Renaud Chaput 126cd7705d
Do not display the navigation banner in the logo container (#27476) 2023-10-19 19:36:08 +02:00
Matt Jankowski 9f218c9924
Refactor appeal partial to avoid brakeman XSS warning (#25880) 2023-10-19 17:25:54 +02:00
Matt Jankowski bcd0171e5e
Fix `Lint/UselessAssignment` cop (#27472) 2023-10-19 16:55:06 +02:00
Daniel M Brasil 7bc8f03162
Add test coverage for `Mastodon::CLI::Accounts#migrate` (#25284) 2023-10-19 16:11:15 +02:00
github-actions[bot] 1ffd5a98a9
New Crowdin Translations (automated) (#27465)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-19 14:31:25 +02:00
Brian Campbell f76e5111f0
Consider shown and pending status in explore prompt calculation (#27466)
Co-authored-by: Brian Campbell <brcampbell@beta.team>
2023-10-19 14:25:57 +02:00
Renaud Chaput 10df97c542
The `class` props should be `className` (#27462) 2023-10-19 13:22:44 +02:00
Claire 510845b6b9
Only enable github-rspec for pull_request events (#27456) 2023-10-18 15:20:24 +02:00
Matt Jankowski a1b27d8b61
Fix `Naming/VariableNumber` cop (#27447) 2023-10-18 14:26:22 +02:00
Emelia Smith 7c3fea7275
Feature: Allow token introspection without read scope (#27142) 2023-10-18 14:10:07 +02:00
github-actions[bot] 4612576c68
New Crowdin Translations (automated) (#27454)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-18 11:08:10 +02:00
Matt Jankowski 63a2a4b074
Fix `Performance/DeletePrefix` cop (#27448) 2023-10-18 10:32:09 +02:00
Daniel M Brasil 091a21e1bc
Add test coverage for `Mastodon::CLI::Accounts#prune` (#25204) 2023-10-18 10:20:50 +02:00
Claire e9dc30cdba
Fix duplicate github annotations for rspec failures (#27450) 2023-10-18 10:18:34 +02:00
Nick Schonning 5ef26d8fd5
Add RSpec GitHub annotations gem (#24040) 2023-10-17 18:28:09 +02:00
Matt Jankowski 71447ab19f
Fix `Capybara/ClickLinkOrButtonStyle` cop in spec/features/admin area (#27445) 2023-10-17 16:57:19 +02:00
renovate[bot] 0036de46bc
Update dependency rubocop-performance to v1.19.1 (#26949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 16:16:12 +02:00
Jeong Arm ad44d832b8
Support "in:public" search filter (#26976) 2023-10-17 16:12:03 +02:00
Matt Jankowski 2528a0721f
Update `rubocop-capybara` to version 2.19.0 (#26982) 2023-10-17 16:10:50 +02:00
renovate[bot] 1996fb6fd6
Update dependency puma to v6.4.0 (#27006)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-17 16:10:16 +02:00
Matt Jankowski 65cd0700e4
Refactor domains cli to remove model call from regex (#25878) 2023-10-17 15:58:42 +02:00
Claire b34a2b1b33
Fix errors in CLI specs (#27399) 2023-10-17 15:30:12 +02:00
Jeong Arm c0cda1adaf
Let use http_hidden_proxy on docker-compose (#27054) 2023-10-17 15:24:45 +02:00
Renaud Chaput 1fb4e40145
Run scheduled actions only on the main repo (#27343) 2023-10-17 14:59:39 +02:00
Stanislas Signoud 935d54124e
Fix missing redirections to make sure /home redirect to the advanced UI (#27378) 2023-10-17 14:59:07 +02:00
Victor Lee c4bddc9855
Add spec for poll model (#23399)
Co-authored-by: Nick Schonning <nschonni@gmail.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-17 14:56:24 +02:00
Matt Jankowski 12bb7be8b5
Spec speed ups on `AccountsController` spec (#25391) 2023-10-17 13:32:10 +02:00
Matt Jankowski d54fec24e5
Add coverage for `CLI::PreviewCards#remove` command (#27441) 2023-10-17 13:06:16 +02:00
Matt Jankowski 19900f647e
Add coverage for `UnreservedUsernameValidator` (#25590) 2023-10-17 13:05:28 +02:00
Claire 1084703417
Update changelog (#27440) 2023-10-17 13:03:54 +02:00
Matt Jankowski fc9ab61448
Expand spec coverage of `CLI::Media` (#27437) 2023-10-16 18:20:58 +02:00
Matt Jankowski 33b073f77d
Extract partials from `admin/reports/show` view (#27427) 2023-10-16 18:07:17 +02:00
Matt Jankowski 8d0f12f776
Extract partials from `admin/accounts/show` view (#27428) 2023-10-16 18:02:15 +02:00
Matt Jankowski 893b2f33fd
Extract shared example for cacheable response in specs (#25388) 2023-10-16 17:52:06 +02:00
Matt Jankowski 708299bb0d
Misc coverage improvements for `Admin::` and `Settings::` controllers (#25346) 2023-10-16 17:20:28 +02:00
Daniel M Brasil e0ed0f8c7c
Migrate to request specs in `/api/v1/notifications` (#25553) 2023-10-16 17:15:24 +02:00
Matt Jankowski 08a376cbcb
Fix `Style/CombinableLoops` cop (#27429) 2023-10-16 16:36:28 +02:00
Matt Jankowski c91c0175db
Extract `card` partial from `disputes/strikes/show` view (#27426) 2023-10-16 16:04:29 +02:00
Daniel M Brasil cafdaec6cf
Migrate to request specs in `/api/v1/lists/:id/accounts` (#25468) 2023-10-16 16:03:48 +02:00
Daniel M Brasil 8e6116503d
Migrate to request specs in `/api/v1/blocks` (#25517) 2023-10-16 16:03:35 +02:00
Daniel M Brasil d9caa6ed24
Migrate to request specs in `/api/v1/admin/accounts` (#25563) 2023-10-16 15:49:12 +02:00
Matt Jankowski f5bc1f20e2
Add coverage for `ExistingUsernameValidator` (#25592)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-16 15:41:23 +02:00
Matt Jankowski f8afa0f614
Remove unused stub json ld context (#25454) 2023-10-16 15:38:27 +02:00
Matt Jankowski 00e92b4038
Add coverage for `CLI::Statuses` command (#25321) 2023-10-16 15:37:22 +02:00
Claire 299aa71c8f
Fix handling of `inLanguage` attribute in preview card processing (#27423) 2023-10-16 15:24:14 +02:00
Wladimir Palant 23f8e93c64
Fixes #23135 - Allow cross origin request for /nodeinfo/2.0 API (#27413) 2023-10-16 13:39:25 +02:00
github-actions[bot] 13456efd7b
New Crowdin Translations (automated) (#27410)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-16 11:31:52 +02:00
renovate[bot] a00fc83701
Update dependency bufferutil to v4.0.8 (#27412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 11:09:20 +02:00
renovate[bot] f0ef87b84d
Update dependency i18n-tasks to v1.0.13 (#27403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 11:08:13 +02:00
Renaud Chaput e0da64bb4e
Fix empty ENV variables not using default nil value (#27400) 2023-10-13 19:00:53 +02:00
Daniel M Brasil 82beeb2f7e
Migrate to request specs in `/api/v1/admin/trends/links` (#25739) 2023-10-13 16:23:16 +02:00
Matt Jankowski 1b195ce115
Speed-up on `Rack::Attack` spec (#25542) 2023-10-13 16:14:23 +02:00
Claire 71cfdd7865
Fix duplicate tests (#27395) 2023-10-13 16:10:43 +02:00
Matt Jankowski cad8cc90ba
Speed-up on `MoveWorker` spec (#25528) 2023-10-13 15:50:46 +02:00
Daniel M Brasil 058f73a4f5
Add request specs for `/api/v1/reports` (#25475) 2023-10-13 15:30:40 +02:00
Matt Jankowski abf0e1fa39
Move `SignedReqestHelpers` rspec config to separate file (#25453) 2023-10-13 15:19:40 +02:00
Daniel M Brasil bc6cd27d9e
Migrate to request specs in `/api/v1/followed_tags` (#25472) 2023-10-13 14:43:50 +02:00
Matt Jankowski fd9dea21d0
DB speedup in `API::` controller/request specs (#25516) 2023-10-13 14:42:09 +02:00
Daniel M Brasil ecdb31d479
Migrate to request specs in `/api/v1/favourites` (#25518) 2023-10-13 14:19:12 +02:00
Daniel M Brasil 7664e3b692
Migrate to request specs in `/api/v1/statuses/:status_id/source` (#25634) 2023-10-13 14:08:21 +02:00
Daniel M Brasil 4230d1ee0a
Migrate to request specs in `/api/v1/timelines/tag/:hashtag` (#25797) 2023-10-13 14:04:37 +02:00
Renaud Chaput 77098c6f1c
Delete .github/FUNDING.yml (#27390) 2023-10-13 12:01:33 +02:00
renovate[bot] 5c287c4958
Update dependency rubocop to v1.57.1 (#27389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 11:46:25 +02:00
KMY(雪あすか) 45bdd60f3c
Fix when unfollow a tag, my post also disappears from the home timeline (#27391) 2023-10-13 11:15:47 +02:00
github-actions[bot] 773d25e8df
New Crowdin Translations (automated) (#27388)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-13 11:01:40 +02:00
renovate[bot] 6a9aab38d7
Update dependency devise-two-factor to v4.1.1 (#27382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 10:52:55 +02:00
Matt Jankowski 133f218a4d
Add system specs for admin area `batch` actions (#25027) 2023-10-13 10:42:59 +02:00
Claire c86ad45660
Change PWA start URL from `/home` to `/` (#27377) 2023-10-12 16:47:18 +02:00
github-actions[bot] c348b904a5
New Crowdin Translations (automated) (#27376)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-12 10:07:40 +02:00
Matt Jankowski d4c2dca874
Fix haml-lint `InstanceVariables` rule for auth/sessions/two_factor/o… (#27372) 2023-10-12 09:44:20 +02:00
renovate[bot] 85b36fbbd3
Update dependency devise to v4.9.3 (#27373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 09:35:25 +02:00
Matt Jankowski d7a8f6b658
Fix haml-lint `InstanceVariables` rule for relationships/account (#27342) 2023-10-11 17:06:26 +02:00
github-actions[bot] f1ae72ba46
New Crowdin Translations (automated) (#27364)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-11 16:37:01 +02:00
renovate[bot] d0a3331caa
Update dependency rubocop to v1.57.0 (#27371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 16:36:50 +02:00
François Hodierne 608cd66239
Update README requirements from node 14 to node 16 (#27369) 2023-10-11 16:24:28 +02:00
renovate[bot] 1afb7f4104
Update dependency lograge to v0.14.0 (#27363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 16:21:59 +02:00
Matt Jankowski f9abe700e7
Fix haml-lint `InstanceVariables` rule for auth/registrations/status (#27341) 2023-10-11 16:20:26 +02:00
renovate[bot] 0111e48893
Update dependency sidekiq to v6.5.12 (#27358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 16:02:51 +02:00
Matt Jankowski 66becf9a1e
Fix haml-lint `InstanceVariables` rule for admin/reports/actions (#27339) 2023-10-11 15:58:33 +02:00
Claire 7d2cd7195b
Add variable delay before link verification of remote account links (#27351) 2023-10-11 15:14:18 +02:00
Claire 27e84c0691
Fix duplicate reports being sent when reporting some remote posts (#27355) 2023-10-10 16:00:50 +02:00
Claire 9d1c3d0678
Fix scroll position in thread view reseting when closing a modal (#27350) 2023-10-10 11:35:32 +02:00
github-actions[bot] 1a2a4c389f
New Crowdin Translations (automated) (#27347)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-10 10:06:37 +02:00
renovate[bot] 1745c582f8
Update dependency sidekiq to v6.5.11 (#27345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-10 09:52:09 +02:00
Claire 4c2aca777f
Fix clicking on already-loaded thread scrolling to the top of the thread (#27338) 2023-10-09 16:46:09 +02:00
Renaud Chaput 774e1189d2
Change `eslint` config to autofix missing comma and indentation in JS files (#26711) 2023-10-09 13:38:29 +02:00
Claire c310374a2f
Fix clicking on already-opened thread post scrolling to the top of the thread (#27331) 2023-10-09 12:21:02 +02:00
github-actions[bot] 89b48681cf
New Crowdin Translations (automated) (#27321)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-09 10:32:06 +02:00
renovate[bot] 5fc5a548b4
Update DefinitelyTyped types (non-major) (#27327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 10:19:13 +02:00
renovate[bot] eabe839744
Update eslint (non-major) (#27328)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 09:43:42 +02:00
Andy Piper 640421f661
Add 4.2.x to supported versions in SECURITY.md (#27317) 2023-10-07 21:12:21 +02:00
Claire 3262d1f1b6
Fix incorrect serialization of regional languages in `contentMap` (#27207) 2023-10-06 17:46:04 +02:00
Michael Stanclift 3171afc36a
Add Elasticsearch index size to Admin dashboard (#27301)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-06 17:02:55 +02:00
Claire 340c390849
Fix crash when filtering for “dormant” relationships (#27306) 2023-10-06 12:58:16 +02:00
Claire 4d59dfb1c6
Fix some remote posts getting truncated (#27307) 2023-10-06 12:58:02 +02:00
github-actions[bot] e0b54ed3e1
New Crowdin Translations (automated) (#27304)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-06 11:49:09 +02:00
renovate[bot] 027c1bef8d
Update dependency active_model_serializers to v0.10.14 (#27303)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-06 11:43:30 +02:00
Renaud Chaput c4cff3d762
Remove Capistrano (#27295) 2023-10-06 11:33:43 +02:00
Matt Jankowski 165ec6c779
Remove bundle audit skipping sidekiq CVE (#27291) 2023-10-05 21:23:42 +02:00
renovate[bot] 5606a17933
Update dependency sidekiq to v6.5.10 (#27287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 16:35:05 +02:00
Claire 2b98e2ecd6
Fix auto-loading-more when not scrolled (#27286) 2023-10-05 16:33:54 +02:00
github-actions[bot] 32ab474472
New Crowdin Translations (automated) (#27277)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-05 13:13:14 +02:00
Claire 3c13d70600
Add mention of YJIT in admin dashboard if enabled (#27283) 2023-10-05 13:10:17 +02:00
renovate[bot] d22515861e
Update dependency @reduxjs/toolkit to v1.9.7 (#27275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 10:28:47 +02:00
Claire 40ba6e119b
Fix Vary headers not being set on some redirects (#27272) 2023-10-05 09:50:08 +02:00
github-actions[bot] 8e4251f9e7
New Crowdin Translations (automated) (#27270)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-04 10:53:04 +02:00
Matt Jankowski 72cec47c13
Silence deprecation warning in CacheBuster spec (#27264) 2023-10-04 10:17:36 +02:00
gunchleoc 68ec1d180a
Fix language sorting in settings (#27158) 2023-10-04 09:23:50 +02:00
Matt Jankowski c676bc91e9
Dont match mention in url query string (#25656)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-10-03 17:01:45 +02:00
Matt Jankowski 2f8f92df48
Fix Elastic check deprecation warning about gem version (#27262) 2023-10-03 15:52:47 +02:00
Nick Schonning 85db392464
Autofix Rubocop cops for config/ (#24145) 2023-10-03 15:24:12 +02:00
Matt Jankowski e715da6d25
Fix haml-lint Rubocop `Rails/*` cops (#26042) 2023-10-03 15:00:40 +02:00
Nick Schonning 8bb4706e11
Move migration_helpers Rubocop ignore to config (#24236) 2023-10-03 14:58:40 +02:00
Claire 37bbd3c106
Fix double scroll bars in some columns in advanced interface (#27187) 2023-10-03 13:12:39 +02:00
Claire ceb365c419
Fix boosts of local users being filtered in account timelines (#27204) 2023-10-03 12:21:42 +02:00
Claire 4e55001e65
Add a short-lived lock to trend refresh scheduler (#27253) 2023-10-03 12:21:32 +02:00
Michael Stanclift 5a437edc7f
Keep version string displayed without breakpoints in UI (#26986) 2023-10-03 11:52:21 +02:00
David Aaron 6320c52630
Change min age of backup policy from 1 week to 6 days (#27200) 2023-10-03 11:48:57 +02:00
jsgoldstein ad637eacd1
Add a test case for ES8 (#27248) 2023-10-03 10:48:32 +02:00
renovate[bot] e836d078bb
Update dependency haml_lint to v0.51.0 (#27250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-03 10:48:05 +02:00
Jakob Gillich 770fd993ec
Fix importer returning negative row estimates (#27258) 2023-10-03 10:47:50 +02:00
github-actions[bot] e95d25e101
New Crowdin Translations (automated) (#27260)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-03 10:47:28 +02:00
Claire 5e56f3db65
Change some worker lock TTLs (#27246) 2023-10-03 10:09:00 +02:00
Claire 7e7d6e695b
Fix incorrectly keeping outdated update notices absent from the API endpoint (#27021) 2023-10-02 16:42:52 +02:00
Claire 1e2d4975cf
Fix import progress not updating on certain failures (#27247) 2023-10-02 16:20:04 +02:00
github-actions[bot] ee866ec0e0
New Crowdin Translations (automated) (#27220)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-02 13:35:29 +02:00
Emelia Smith f68d540271
Fix websocket connections being incorrectly decremented twice on errors (#27238) 2023-10-02 13:21:43 +02:00
renovate[bot] 5f2d494f0d
Update dependency react-redux to v8.1.3 (#27229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 13:18:29 +02:00
Jake Anto c2f13769cd
Add PWA shortcut to `/explore` page (#27235) 2023-10-02 13:18:16 +02:00
renovate[bot] bad1629dcd
Update dependency core-js to v3.33.0 (#27237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 13:18:06 +02:00
renovate[bot] 73a92f9e7a
Update DefinitelyTyped types (non-major) (#27239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 13:17:55 +02:00
renovate[bot] 829be02abe
Update Node.js to v20.8 (#27240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 13:16:02 +02:00
Claire d80a819fc6
Fix explore prompt appearing because of posts being received out of order (#27211) 2023-09-29 15:51:36 +02:00
renovate[bot] 5393be7a21
Update eslint (non-major) to v6.7.3 (#27213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 15:51:27 +02:00
renovate[bot] 48ef7d0f06
Update libretranslate/libretranslate Docker tag to v1.3.12 (#27214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 15:34:55 +02:00
renovate[bot] 9b785877d2
Update DefinitelyTyped types (non-major) (#27212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 15:34:32 +02:00
github-actions[bot] 695e42de0d
New Crowdin Translations (automated) (#27202)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-09-29 10:04:18 +02:00
renovate[bot] 665093a7b6
Update dependency postcss to v8.4.31 (#27199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 09:50:33 +02:00
renovate[bot] a1becc9189
Update dependency node to 20.8 (#27201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 09:50:15 +02:00
Matt Jankowski 340f1a68be
Simplify instance presenter view access (#26046) 2023-09-28 16:52:37 +02:00
Matt Jankowski 2016c5d912
Fix deprecation warning about `rewhere: true` being default behavior (Rails 7.1 prep) (#27190) 2023-09-28 16:52:23 +02:00
Matt Jankowski 99e289f03f
Fix include `Rails.application.routes.url_helpers` (Rails 7.1 prep) (#27189) 2023-09-28 16:52:11 +02:00
Matt Jankowski 89a17878ef
Fix haml-lint `InstanceVariables` rule for admin/roles/_form (#26063) 2023-09-28 16:36:24 +02:00
renovate[bot] f9eefb2785
Update dependency rubocop to v1.56.4 (#27188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 16:25:14 +02:00
Matt Jankowski 9d56c1949b
Fix haml-lint `InstanceVariables` rule for admin/webhooks/_form (#26062) 2023-09-28 16:23:35 +02:00
Matt Jankowski 3060bfa4bd
Extract filename and csv helper methods from `Form::Import` (#26129) 2023-09-28 16:22:05 +02:00
Matt Jankowski 937dc42f10
Extract methods for file movement in `CLI::Upgrade` (#25120) 2023-09-28 16:04:05 +02:00
Matt Jankowski 56c0babc0b
Fix rubocop `Layout/ArgumentAlignment` cop (#26060) 2023-09-28 15:48:47 +02:00
Matt Jankowski e6b903b21e
Fix haml-lint `InstanceVariables` rule for invites/_form (#26064) 2023-09-28 15:40:28 +02:00
Claire 1da3c588ca
Fix link handling of mentions in user profiles when logged out (#27185) 2023-09-28 15:29:07 +02:00
Claire 686406cc2d
Fix filtering audit log for entries about disabling 2FA (#27186) 2023-09-28 13:41:24 +02:00
Claire f0c720cfc9
Bump version to v4.3.0-alpha.0 (#27022) 2023-09-28 13:40:43 +02:00
github-actions[bot] b93ce7d8b3
New Crowdin Translations (automated) (#27168)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-09-28 10:44:16 +02:00
Christian Schmidt 6d0767558a
Make notification respect reduce-motion (#27178) 2023-09-28 10:39:38 +02:00
renovate[bot] 66a7bc215c
Update dependency glob to v10.3.10 (#27169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 10:30:19 +02:00
renovate[bot] 0f588a4a86
Update dependency axios to v1.5.1 (#27159)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 10:17:08 +02:00
Michael Stanclift 7fddeca190
Fix retention dashboard not displaying correct month (#27180) 2023-09-28 10:16:15 +02:00
renovate[bot] 2979a5924b
Update dependency @material-design-icons/svg to v0.14.13 (#27181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-28 10:14:43 +02:00
gunchleoc ce79caca4e
Only strip country code when language not listed in SUPPORTED_LOCALES (#27099) 2023-09-28 10:13:44 +02:00
Renaud Chaput 57f592fed5
Add Typescript types for some API objects (#26602) 2023-09-26 11:25:01 +02:00
renovate[bot] 2054ee7cd5
Update dependency glob to v10.3.9 (#27148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 11:12:21 +02:00
Claire 82eaa26d87
Update `tootctl maintenance fix-duplicates` to Mastodon v4.2.0 (#27147) 2023-09-26 11:11:52 +02:00
renovate[bot] fdc9f971f7
Update dependency selenium-webdriver to v4.13.1 (#27141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 10:47:34 +02:00
github-actions[bot] 5ea3e8e765
New Crowdin Translations (automated) (#27144)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-09-26 10:47:16 +02:00
renovate[bot] 33a066a952
Update dependency glob to v10.3.8 (#27145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-26 10:47:04 +02:00
Essem bd810391d6
Properly remove tIME chunk from PNG uploads (#27111) 2023-09-25 19:21:07 +02:00
renovate[bot] 530f48610d
Update docker/setup-qemu-action action to v3 (#27124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:41:20 +02:00
renovate[bot] cdd8c4eb2a
Update docker/setup-buildx-action action to v3 (#27123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:40:41 +02:00
renovate[bot] 8ea98aa384
Update docker/metadata-action action to v5 (#27122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:40:03 +02:00
renovate[bot] 19bc73b736
Update docker/login-action action to v3 (#27121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:39:14 +02:00
renovate[bot] cf9230fa1c
Update docker/build-push-action action to v5 (#27120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 18:38:55 +02:00
Claire 06444c86c7
Fix division by zero in video in bitrate computation code (#27129) 2023-09-25 17:07:52 +02:00
Claire a001ae2f39
Fix explore prompt sometimes showing up when the home TL is loading (#27062) 2023-09-25 17:07:01 +02:00
Claire 3de6dcf634
Add redirection on `/deck` URLs for logged-out users (#27128) 2023-09-25 15:07:10 +02:00
Claire 38753acaa5
Fix width of large text icon buttons (#27127) 2023-09-25 15:06:57 +02:00
Claire 1bd7455d81
Fix inefficient queries in “Follows and followers” as well as several admin pages (#27116) 2023-09-25 15:06:43 +02:00
gunchleoc 88fa8e710a
Fix line wrapping of language selection button with long locale codes (#27100) 2023-09-25 12:59:37 +02:00
renovate[bot] aeeddb9d46
Update DefinitelyTyped types (non-major) (#27109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 11:56:21 +02:00
renovate[bot] 82c44f492d
Update dependency glob to v10.3.7 (#27078)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 11:03:19 +02:00
github-actions[bot] 736fe75346
New Crowdin Translations (automated) (#27080)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-09-25 10:50:09 +02:00
renovate[bot] c56d7d702f
Update dependency @reduxjs/toolkit to v1.9.6 (#27110)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 10:36:46 +02:00
renovate[bot] a4c29a4e51
Update Node.js to v20.7 (#27112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 10:23:12 +02:00
renovate[bot] 1fa40cff70
Update eslint (non-major) (#27113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 10:09:51 +02:00
Renaud Chaput 4b7bc1f07c
Convert `dropdown_menu` state to Typescript (#25585) 2023-09-22 18:18:46 +02:00
Renaud Chaput b93ffb74bb
Improve modals reducer types (#26610) 2023-09-22 16:41:50 +02:00
Claire 39da3d86f8
Fix ActiveRecord using two connection pools when no replica is defined (#27061) 2023-09-22 16:01:59 +02:00
github-actions[bot] e824585523
New Crowdin Translations (automated) (#27052)
Co-authored-by: GitHub Actions <noreply@github.com>
2023-09-22 11:06:48 +02:00
Renaud Chaput 4aaaf0dde3
Fix the search documentation URL in system checks (#27036) 2023-09-22 10:13:53 +02:00
Renaud Chaput a011d3a7c6
Ignore CVE-2023-26141 (Sidekiq) from bundler audit (#27037) 2023-09-22 10:13:09 +02:00
2149 changed files with 63945 additions and 41994 deletions

6
.bundler-audit.yml Normal file
View File

@ -0,0 +1,6 @@
---
ignore:
# devise-two-factor advisory about brute-forcing TOTP
# We have rate-limits on authentication endpoints in place (including second
# factor verification) since Mastodon v3.2.0
- CVE-2024-0227

View File

@ -4,7 +4,7 @@ FROM mcr.microsoft.com/devcontainers/ruby:1-3.2-bullseye
# Install Rails
# RUN gem install rails webdrivers
ARG NODE_VERSION="16"
ARG NODE_VERSION="20"
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"
# [Optional] Uncomment this section to install additional OS packages.
@ -15,6 +15,6 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
RUN gem install foreman
# [Optional] Uncomment this line to install global node packages.
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g yarn" 2>&1
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && corepack enable" 2>&1
COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View File

@ -5,7 +5,7 @@
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/sshd:1": {}
"ghcr.io/devcontainers/features/sshd:1": {},
},
"runServices": ["app", "db", "redis"],
@ -15,16 +15,16 @@
"portsAttributes": {
"3000": {
"label": "web",
"onAutoForward": "notify"
"onAutoForward": "notify",
},
"4000": {
"label": "stream",
"onAutoForward": "silent"
}
"onAutoForward": "silent",
},
},
"otherPortsAttributes": {
"onAutoForward": "silent"
"onAutoForward": "silent",
},
"remoteEnv": {
@ -33,7 +33,7 @@
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
"DISABLE_FORGERY_REQUEST_PROTECTION": "true",
"ES_ENABLED": "",
"LIBRE_TRANSLATE_ENDPOINT": ""
"LIBRE_TRANSLATE_ENDPOINT": "",
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
@ -43,7 +43,7 @@
"customizations": {
"vscode": {
"settings": {},
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}
}
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
},
},
}

View File

@ -5,7 +5,7 @@
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/sshd:1": {}
"ghcr.io/devcontainers/features/sshd:1": {},
},
"forwardPorts": [3000, 4000],
@ -14,17 +14,17 @@
"3000": {
"label": "web",
"onAutoForward": "notify",
"requireLocalPort": true
"requireLocalPort": true,
},
"4000": {
"label": "stream",
"onAutoForward": "silent",
"requireLocalPort": true
}
"requireLocalPort": true,
},
},
"otherPortsAttributes": {
"onAutoForward": "silent"
"onAutoForward": "silent",
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
@ -34,7 +34,7 @@
"customizations": {
"vscode": {
"settings": {},
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
}
}
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
},
},
}

View File

@ -70,7 +70,7 @@ services:
hard: -1
libretranslate:
image: libretranslate/libretranslate:v1.3.11
image: libretranslate/libretranslate:v1.5.4
restart: unless-stopped
volumes:
- lt-data:/home/libretranslate/.local

View File

@ -11,7 +11,8 @@ bundle install
git checkout -- Gemfile.lock
# Fetch Javascript dependencies
yarn --frozen-lockfile
corepack prepare
yarn install --immutable
# [re]create, migrate, and seed the test database
RAILS_ENV=test ./bin/rails db:setup
@ -23,4 +24,4 @@ RAILS_ENV=development ./bin/rails db:setup
RAILS_ENV=development ./bin/rails assets:precompile
# Precompile assets for test
RAILS_ENV=test NODE_ENV=tests ./bin/rails assets:precompile
RAILS_ENV=test ./bin/rails assets:precompile

View File

@ -8,6 +8,7 @@
public/system
public/assets
public/packs
public/packs-test
node_modules
neo4j
vendor/bundle

View File

@ -1,5 +1,5 @@
# Node.js
NODE_ENV=tests
# In test, compile the NodeJS code as if we are in production
NODE_ENV=production
# Federation
LOCAL_DOMAIN=cb6e6126.ngrok.io
LOCAL_HTTPS=true

View File

@ -1,4 +1,7 @@
module.exports = {
// @ts-check
const { defineConfig } = require('eslint-define-config');
module.exports = defineConfig({
root: true,
extends: [
@ -9,7 +12,6 @@ module.exports = {
'plugin:import/recommended',
'plugin:promise/recommended',
'plugin:jsdoc/recommended',
'plugin:prettier/recommended',
],
env: {
@ -63,7 +65,9 @@ module.exports = {
'consistent-return': 'error',
'dot-notation': 'error',
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': [
@ -116,7 +120,6 @@ module.exports = {
'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',
@ -162,7 +165,7 @@ module.exports = {
// },
// ],
'jsx-a11y/no-noninteractive-tabindex': 'off',
'jsx-a11y/no-onchange': 'warn',
'jsx-a11y/no-onchange': 'off',
// recommended is full 'error'
'jsx-a11y/no-static-element-interactions': [
'warn',
@ -192,6 +195,7 @@ module.exports = {
'error',
{
devDependencies: [
'.eslintrc.js',
'config/webpack/**',
'app/javascript/mastodon/performance.js',
'app/javascript/mastodon/test_setup.js',
@ -235,13 +239,13 @@ module.exports = {
},
// Common React utilities
{
pattern: '{classnames,react-helmet,react-router-dom}',
pattern: '{classnames,react-helmet,react-router,react-router-dom}',
group: 'external',
position: 'before',
},
// Immutable / Redux / data store
{
pattern: '{immutable,react-redux,react-immutable-proptypes,react-immutable-pure-component,reselect}',
pattern: '{immutable,@reduxjs/toolkit,react-redux,react-immutable-proptypes,react-immutable-pure-component}',
group: 'external',
position: 'before',
},
@ -279,7 +283,6 @@ module.exports = {
'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',
@ -298,6 +301,7 @@ module.exports = {
overrides: [
{
files: [
'.eslintrc.js',
'*.config.js',
'.*rc.js',
'ide-helper.js',
@ -348,8 +352,15 @@ module.exports = {
'@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}}],
"@typescript-eslint/prefer-nullish-coalescing": ['error', { ignorePrimitives: { boolean: true } }],
"@typescript-eslint/no-restricted-imports": [
"warn",
{
"name": "react-redux",
"importNames": ["useSelector", "useDispatch"],
"message": "Use typed hooks `useAppDispatch` and `useAppSelector` instead."
}
],
'jsdoc/require-jsdoc': 'off',
// Those rules set stricter rules for TS files
@ -371,14 +382,6 @@ module.exports = {
env: {
jest: true,
},
},
{
files: [
'streaming/**/*',
],
rules: {
'import/no-commonjs': 'off',
},
},
}
],
};
});

3
.github/FUNDING.yml vendored
View File

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

View File

@ -0,0 +1,42 @@
name: 'Setup Javascript'
description: 'Setup a Javascript environment ready to run the Mastodon code'
inputs:
onlyProduction:
description: Only install production dependencies
default: 'false'
runs:
using: 'composite'
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
# The following is needed because we can not use `cache: true` for `setup-node`, as it does not support Corepack yet and mess up with the cache location if ran after Node is installed
- name: Enable corepack
shell: bash
run: corepack enable
- name: Get yarn cache directory path
id: yarn-cache-dir-path
shell: bash
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install all yarn packages
shell: bash
run: yarn install --immutable
if: inputs.onlyProduction == 'false'
- name: Install all production yarn packages
shell: bash
run: yarn workspaces focus --production
if: inputs.onlyProduction != 'false'

23
.github/actions/setup-ruby/action.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: 'Setup RUby'
description: 'Setup a Ruby environment ready to run the Mastodon code'
inputs:
ruby-version:
description: The Ruby version to install
default: '.ruby-version'
additional-system-dependencies:
description: 'Additional packages to install'
runs:
using: 'composite'
steps:
- name: Install system dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev ${{ inputs.additional-system-dependencies }}
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: true

13
.github/codecov.yml vendored Normal file
View File

@ -0,0 +1,13 @@
coverage:
status:
project:
default:
# Github status check is not blocking
informational: true
patch:
default:
# Github status check is not blocking
informational: true
comment:
# Only write a comment in PR if there are changes
require_changes: true

View File

@ -3,7 +3,6 @@
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.
],
@ -13,6 +12,7 @@
// 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).',
postUpdateOptions: ['yarnDedupeHighest'],
packageRules: [
{
// Require Dependency Dashboard Approval for major version bumps of these node packages
@ -22,6 +22,7 @@
'react-hotkeys', // Requires code changes
// Requires Webpacker upgrade or replacement
'@svgr/webpack',
'@types/webpack',
'babel-loader',
'compression-webpack-plugin',
@ -49,7 +50,6 @@
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
@ -99,6 +99,16 @@
matchUpdateTypes: ['patch', 'minor'],
groupName: 'eslint (non-major)',
},
{
// Group actions/*-artifact in the same PR
matchManagers: ['github-actions'],
matchPackageNames: [
'actions/download-artifact',
'actions/upload-artifact',
],
matchUpdateTypes: ['major'],
groupName: 'artifact actions (major)',
},
{
// Update @types/* packages every week, with one grouped PR
matchPackagePrefixes: '@types/',

View File

@ -21,6 +21,8 @@ on:
type: string
labels:
type: string
file_to_build:
type: string
jobs:
build-image:
@ -29,10 +31,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-qemu-action@v3
if: contains(inputs.platforms, 'linux/arm64') && !inputs.use_native_arm64_builder
- uses: docker/setup-buildx-action@v2
- uses: docker/setup-buildx-action@v3
id: buildx
if: ${{ !(inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')) }}
@ -41,7 +43,7 @@ jobs:
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@v2
- uses: docker/setup-buildx-action@v3
id: buildx-native
if: inputs.use_native_arm64_builder && contains(inputs.platforms, 'linux/arm64')
with:
@ -61,20 +63,20 @@ jobs:
- name: Log in to Docker Hub
if: contains(inputs.push_to_images, 'tootsuite')
uses: docker/login-action@v2
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@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v4
- uses: docker/metadata-action@v5
id: meta
if: ${{ inputs.push_to_images != '' }}
with:
@ -83,9 +85,10 @@ jobs:
tags: ${{ inputs.tags }}
labels: ${{ inputs.labels }}
- uses: docker/build-push-action@v4
- uses: docker/build-push-action@v5
with:
context: .
file: ${{ inputs.file_to_build }}
build-args: |
MASTODON_VERSION_PRERELEASE=${{ inputs.version_prerelease }}
MASTODON_VERSION_METADATA=${{ inputs.version_metadata }}

View File

@ -11,6 +11,7 @@ permissions:
jobs:
compute-suffix:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
steps:
- id: version_vars
env:
@ -24,6 +25,7 @@ jobs:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
cache: false
@ -40,3 +42,25 @@ jobs:
type=raw,value=nightly
type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }}
secrets: inherit
build-image-streaming:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
cache: false
push_to_images: |
tootsuite/mastodon-streaming
ghcr.io/mastodon/mastodon-streaming
version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }}
labels: |
org.opencontainers.image.description=Nightly build image used for testing purposes
flavor: |
latest=auto
tags: |
type=raw,value=edge
type=raw,value=nightly
type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }}
secrets: inherit

View File

@ -29,6 +29,7 @@ jobs:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
push_to_images: |
@ -39,3 +40,19 @@ jobs:
tags: |
type=ref,event=pr
secrets: inherit
build-image-streaming:
needs: compute-suffix
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
push_to_images: |
ghcr.io/mastodon/mastodon-streaming
version_metadata: ${{ needs.compute-suffix.outputs.metadata }}
flavor: |
latest=auto
tags: |
type=ref,event=pr
secrets: inherit

View File

@ -12,6 +12,7 @@ jobs:
build-image:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
push_to_images: |
@ -27,3 +28,24 @@ jobs:
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
secrets: inherit
build-image-streaming:
if: startsWith(github.ref, 'refs/tags/v4.3.')
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
push_to_images: |
tootsuite/mastodon-streaming
ghcr.io/mastodon/mastodon-streaming
# 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.3.') }}
tags: |
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
secrets: inherit

64
.github/workflows/build-security.yml vendored Normal file
View File

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

View File

@ -27,14 +27,8 @@ jobs:
- 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: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Run bundler-audit
run: bundle exec bundler-audit

View File

@ -19,25 +19,11 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- 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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Check for missing strings in English JSON
run: |

View File

@ -31,7 +31,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@ -44,7 +44,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@ -57,6 +57,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: '/language:${{matrix.language}}'

View File

@ -11,6 +11,7 @@ permissions:
jobs:
download-translations:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
steps:
- name: Checkout
@ -43,14 +44,8 @@ jobs:
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: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Run i18n normalize task
run: bundle exec i18n-tasks normalize

View File

@ -35,14 +35,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- uses: xt0rted/stylelint-problem-matcher@v1

View File

@ -30,16 +30,8 @@ jobs:
- name: Clone repository
uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |
sudo apt-get update
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: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Run haml-lint
run: |

View File

@ -39,14 +39,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: ESLint
run: yarn lint:js --max-warnings 0

View File

@ -31,14 +31,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:json

View File

@ -31,14 +31,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:md

View File

@ -31,14 +31,8 @@ jobs:
- 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: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Set-up RuboCop Problem Matcher
uses: r7kamura/rubocop-problem-matchers-action@v1

View File

@ -33,14 +33,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Prettier
run: yarn lint:yml

View File

@ -7,6 +7,7 @@ on:
- .github/workflows/build-releases.yml
- .github/workflows/test-image-build.yml
- Dockerfile
- streaming/Dockerfile
permissions:
contents: read
@ -18,4 +19,17 @@ jobs:
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: Dockerfile
platforms: linux/amd64 # Testing only on native platform so it is performant
cache: true
build-image-streaming:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-streaming
cancel-in-progress: true
uses: ./.github/workflows/build-container-image.yml
with:
file_to_build: streaming/Dockerfile
platforms: linux/amd64 # Testing only on native platform so it is performant
cache: true

View File

@ -35,14 +35,8 @@ jobs:
- name: Clone repository
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: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Jest testing
run: yarn jest --reporters github-actions summary

View File

@ -72,37 +72,14 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Create database
run: './bin/rails db:create'
- name: Run migrations up to v2.0.0
run: './bin/rails db:migrate VERSION=20171010025614'
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2'
- name: Run migrations up to v2.4.0
run: './bin/rails db:migrate VERSION=20180514140000'
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2_4'
- name: Run migrations up to v2.4.3
run: './bin/rails db:migrate VERSION=20180707154237'
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2_4_3'
- name: Run historical migrations with data population
run: './bin/rails tests:migrations:prepare_database'
- name: Run all remaining migrations
run: './bin/rails db:migrate'

View File

@ -45,6 +45,7 @@ jobs:
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7-alpine
options: >-
@ -71,42 +72,17 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install native Ruby dependencies
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Create database
run: './bin/rails db:create'
- name: Run migrations up to v2.0.0
run: './bin/rails db:migrate VERSION=20171010025614'
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2'
- name: Run pre-deployment migrations up to v2.4.0
run: './bin/rails db:migrate VERSION=20180514140000'
- name: Run historical migrations with data population
run: './bin/rails tests:migrations:prepare_database'
env:
SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2_4'
- name: Run migrations up to v2.4.3
run: './bin/rails db:migrate VERSION=20180707154237'
env:
SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- name: Populate database with test data
run: './bin/rails tests:migrations:populate_v2_4_3'
- name: Run all remaining pre-deployment migrations
run: './bin/rails db:migrate'
env:

View File

@ -34,36 +34,29 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
with:
cache: yarn
node-version-file: '.nvmrc'
onlyProduction: 'true'
- name: Install native Ruby dependencies
run: |
sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true
- run: yarn --frozen-lockfile --production
- name: Precompile assets
# Previously had set this, but it's not supported
# export NODE_OPTIONS=--openssl-legacy-provider
run: |-
./bin/rails assets:precompile
- uses: actions/upload-artifact@v3
- name: Archive asset artifacts
run: |
tar --exclude={"*.br","*.gz"} -zcf artifacts.tar.gz public/assets public/packs*
- uses: actions/upload-artifact@v4
if: matrix.mode == 'test'
with:
path: |-
./public/assets
./public/packs-test
./artifacts.tar.gz
name: ${{ github.sha }}
retention-days: 0
@ -101,7 +94,7 @@ jobs:
DB_HOST: localhost
DB_USER: postgres
DB_PASS: postgres
DISABLE_SIMPLECOV: true
DISABLE_SIMPLECOV: ${{ matrix.ruby-version != '.ruby-version' }}
RAILS_ENV: test
ALLOW_NOPAM: true
PAM_ENABLED: true
@ -112,7 +105,7 @@ jobs:
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
@ -121,38 +114,34 @@ jobs:
- '3.0'
- '3.1'
- '.ruby-version'
ci_job:
- 1
- 2
- 3
- 4
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
path: './public'
path: './'
name: ${{ github.sha }}
- name: Update package index
run: sudo apt-get update
- name: Expand archived asset artifacts
run: |
tar xvzf artifacts.tar.gz
- 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 libpam-dev
- name: Set up bundler cache
uses: ruby/setup-ruby@v1
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
additional-system-dependencies: ffmpeg imagemagick libpam-dev
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bundle exec rake rspec_chunked
- run: bin/rspec
- name: Upload coverage reports to Codecov
if: matrix.ruby-version == '.ruby-version'
uses: codecov/codecov-action@v3
with:
files: coverage/lcov/mastodon.lcov
test-e2e:
name: End to End testing
@ -204,33 +193,19 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
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
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
additional-system-dependencies: ffmpeg imagemagick
- run: yarn --frozen-lockfile
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
@ -238,21 +213,21 @@ jobs:
- run: bundle exec rake spec:system
- name: Archive logs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: e2e-logs-${{ matrix.ruby-version }}
path: log/
- name: Archive test screenshots
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: e2e-screenshots
path: tmp/screenshots/
test-search:
name: Testing search
name: Elastic Search integration testing
runs-on: ubuntu-latest
needs:
@ -282,8 +257,8 @@ jobs:
ports:
- 6379:6379
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.13
search:
image: ${{ matrix.search-image }}
env:
discovery.type: single-node
xpack.security.enabled: false
@ -313,52 +288,43 @@ jobs:
- '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
- uses: actions/download-artifact@v4
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
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
bundler-cache: true
additional-system-dependencies: ffmpeg imagemagick
- run: yarn --frozen-lockfile
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bundle exec rake spec:search
- run: bin/rspec --tag search
- name: Archive logs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-search-logs-${{ matrix.ruby-version }}
path: log/
- name: Archive test screenshots
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-search-screenshots

12
.gitignore vendored
View File

@ -31,9 +31,6 @@
# Ignore Vagrant files
.vagrant/
# Ignore Capistrano customizations
/config/deploy/*
# Ignore IDE files
.vscode/
.idea/
@ -58,6 +55,15 @@ npm-debug.log
yarn-error.log
yarn-debug.log
# From https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
# Ignore vagrant log files
*-cloudimg-console.log

View File

@ -12,3 +12,5 @@ linters:
enabled: true
MiddleDot:
enabled: true
LineLength:
max: 320

View File

@ -1,47 +1,13 @@
# This configuration was generated by
# `haml-lint --auto-gen-config`
# on 2023-07-20 09:47:50 -0400 using Haml-Lint version 0.48.0.
# on 2024-01-09 11:30:07 -0500 using Haml-Lint version 0.53.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: 951
# Offense count: 1
LineLength:
enabled: false
# Offense count: 22
UnnecessaryStringOutput:
enabled: false
# Offense count: 57
RuboCop:
enabled: false
# Offense count: 3
ViewLength:
exclude:
- 'app/views/admin/accounts/show.html.haml'
- 'app/views/admin/reports/show.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
# Offense count: 32
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/_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'
# Offense count: 3
IdNames:
exclude:
- 'app/views/authorize_interactions/error.html.haml'
- 'app/views/oauth/authorizations/error.html.haml'
- 'app/views/shared/_error_messages.html.haml'

2
.nvmrc
View File

@ -1 +1 @@
20.7
20.11

View File

@ -31,9 +31,6 @@
# Ignore Vagrant files
.vagrant/
# Ignore Capistrano customizations
/config/deploy/*
# Ignore IDE files
.vscode/
.idea/
@ -76,3 +73,5 @@ app/javascript/styles/mastodon/reset.scss
# Ignore the generated AUTHORS.md
AUTHORS.md
!lint-staged.config.js

View File

@ -27,7 +27,8 @@ AllCops:
- 'node_modules/**/*'
- 'Vagrantfile'
- 'vendor/**/*'
- 'lib/json_ld/*' # Generated files
- 'config/initializers/json_ld*' # Generated files
- 'lib/mastodon/migration_helpers.rb' # Vendored from GitLab
- 'lib/templates/**/*'
# Reason: Prefer Hashes without extreme indentation
@ -71,13 +72,6 @@ Metrics/ModuleLength:
# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize:
Exclude:
- 'lib/mastodon/cli/*.rb'
- db/*migrate/**/*
# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting
Metrics/BlockNesting:
Exclude:
- 'lib/mastodon/cli/*.rb'
@ -86,7 +80,6 @@ Metrics/BlockNesting:
Metrics/CyclomaticComplexity:
Exclude:
- lib/mastodon/cli/*.rb
- db/*migrate/**/*
# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsparameterlists
@ -103,27 +96,48 @@ Rails/FilePath:
Rails/HttpStatus:
EnforcedStyle: numeric
# Reason: Allowed in `tootctl` CLI code and in boot ENV checker
# Reason: Allowed in boot ENV checker
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit
Rails/Exit:
Exclude:
- 'config/boot.rb'
- 'lib/mastodon/cli/*.rb'
# Reason: Some single letter camel case files shouldn't be split
# Reason: Conflicts with `Lint/UselessMethodDefinition` for inherited controller actions
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railslexicallyscopedactionfilter
Rails/LexicallyScopedActionFilter:
Exclude:
- 'app/controllers/auth/*'
# Reason: These tasks are doing local work which do not need full env loaded
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsrakeenvironment
Rails/RakeEnvironment:
Exclude:
- 'lib/tasks/auto_annotate_models.rake'
- 'lib/tasks/emojis.rake'
- 'lib/tasks/mastodon.rake'
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
# Reason: There are appropriate times to use these features
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsskipsmodelvalidations
Rails/SkipsModelValidations:
Enabled: false
# Reason: We want to preserve the ability to migrate from arbitrary old versions,
# and cannot guarantee that every installation has run every migration as they upgrade.
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsunusedignoredcolumns
Rails/UnusedIgnoredColumns:
Enabled: false
# Reason: Prevailing style choice
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsnegateinclude
Rails/NegateInclude:
Enabled: false
# Reason: Deprecated cop, will be removed in 3.0, replaced by SpecFilePathFormat
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
RSpec/FilePath:
CustomTransform:
ActivityPub: activitypub # Ignore the snake_case due to the amount of files to rename
DeepL: deepl
FetchOEmbedService: fetch_oembed_service
JsonLdHelper: jsonld_helper
OEmbedController: oembed_controller
OStatus: ostatus
NodeInfoController: nodeinfo_controller # NodeInfo isn't snake_cased for any of the instances
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb' # namespaces usually have separate folder
- 'spec/lib/sanitize_config_spec.rb' # namespaces usually have separate folder
Enabled: false
# Reason:
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecnamedsubject
@ -140,6 +154,16 @@ RSpec/NotToNot:
RSpec/Rails/HttpStatus:
EnforcedStyle: numeric
# Reason: Match overrides from Rspec/FilePath rule above
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecspecfilepathformat
RSpec/SpecFilePathFormat:
CustomTransform:
ActivityPub: activitypub
DeepL: deepl
FetchOEmbedService: fetch_oembed_service
OEmbedController: oembed_controller
OStatus: ostatus
# Reason:
# https://docs.rubocop.org/rubocop/cops_style.html#styleclassandmodulechildren
Style/ClassAndModuleChildren:
@ -150,6 +174,15 @@ Style/ClassAndModuleChildren:
Style/Documentation:
Enabled: false
# Reason: Route redirects are not token-formatted and must be skipped
# https://docs.rubocop.org/rubocop/cops_style.html#styleformatstringtoken
Style/FormatStringToken:
inherit_mode:
merge:
- AllowedMethods # The rubocop-rails config adds `redirect`
AllowedMethods:
- redirect_with_vary
# Reason: Enforce modern Ruby style
# https://docs.rubocop.org/rubocop/cops_style.html#stylehashsyntax
Style/HashSyntax:

View File

@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit --no-offense-counts --no-auto-gen-timestamp`
# using RuboCop version 1.56.1.
# using RuboCop version 1.60.2.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@ -13,99 +13,13 @@ Bundler/OrderedGems:
Exclude:
- 'Gemfile'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, IndentationWidth.
# SupportedStyles: with_first_argument, with_fixed_indentation
Layout/ArgumentAlignment:
Exclude:
- 'config/initializers/cors.rb'
- 'config/initializers/session_store.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
# SupportedHashRocketStyles: key, separator, table
# SupportedColonStyles: key, separator, table
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
Layout/HashAlignment:
Exclude:
- 'config/environments/production.rb'
- 'config/initializers/rack_attack.rb'
- 'config/routes.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
Layout/LeadingCommentSpace:
Exclude:
- 'config/application.rb'
- 'config/initializers/3_omniauth.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
Layout/LineLength:
Exclude:
- 'app/models/account.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: require_no_space, require_space
Layout/SpaceInLambdaLiteral:
Exclude:
- 'config/environments/production.rb'
- 'config/initializers/content_security_policy.rb'
# Configuration parameters: AllowComments, AllowEmptyLambdas.
Lint/EmptyBlock:
Exclude:
- 'spec/controllers/api/v2/search_controller_spec.rb'
- 'spec/fabricators/access_token_fabricator.rb'
- 'spec/fabricators/conversation_fabricator.rb'
- 'spec/fabricators/system_key_fabricator.rb'
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/models/user_role_spec.rb'
Lint/NonLocalExitFromIterator:
Exclude:
- 'app/helpers/jsonld_helper.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Lint/OrAssignmentToConstant:
Exclude:
- 'lib/sanitize_ext/sanitize_config.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
Lint/UnusedBlockArgument:
Exclude:
- 'config/initializers/content_security_policy.rb'
- 'config/initializers/doorkeeper.rb'
- 'config/initializers/paperclip.rb'
- 'config/initializers/simple_form.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Lint/UselessAssignment:
Exclude:
- 'app/services/activitypub/process_status_update_service.rb'
- 'config/initializers/3_omniauth.rb'
- 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
- 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb'
- 'spec/controllers/api/v1/favourites_controller_spec.rb'
- 'spec/controllers/concerns/account_controller_concern_spec.rb'
- 'spec/helpers/jsonld_helper_spec.rb'
- 'spec/models/account_spec.rb'
- 'spec/models/domain_block_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/models/webauthn_credentials_spec.rb'
- 'spec/services/account_search_service_spec.rb'
- 'spec/services/post_status_service_spec.rb'
- 'spec/services/precompute_feed_service_spec.rb'
- 'spec/services/resolve_url_service_spec.rb'
- 'spec/views/statuses/show.html.haml_spec.rb'
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Max: 144
Max: 82
# Configuration parameters: CountBlocks, Max.
Metrics/BlockNesting:
@ -120,369 +34,33 @@ Metrics/CyclomaticComplexity:
Metrics/PerceivedComplexity:
Max: 27
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
# SupportedStyles: snake_case, normalcase, non_integer
# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
Naming/VariableNumber:
Exclude:
- 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- 'db/migrate/20190820003045_update_statuses_index.rb'
- 'db/migrate/20190823221802_add_local_index_to_statuses.rb'
- 'db/migrate/20200119112504_add_public_index_to_statuses.rb'
- 'spec/models/account_spec.rb'
- 'spec/models/domain_block_spec.rb'
- 'spec/models/user_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SafeMultiline.
Performance/DeletePrefix:
Exclude:
- 'app/models/featured_tag.rb'
Performance/MapMethodChain:
Exclude:
- 'app/models/feed.rb'
- 'lib/mastodon/cli/maintenance.rb'
- 'spec/services/bulk_import_service_spec.rb'
- 'spec/services/import_service_spec.rb'
RSpec/AnyInstance:
Exclude:
- 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/controllers/admin/resets_controller_spec.rb'
- 'spec/controllers/admin/settings/branding_controller_spec.rb'
- 'spec/controllers/api/v1/media_controller_spec.rb'
- 'spec/controllers/auth/sessions_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb'
- 'spec/lib/request_spec.rb'
- 'spec/lib/status_filter_spec.rb'
- 'spec/models/account_spec.rb'
- 'spec/models/setting_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
- 'spec/validators/follow_limit_validator_spec.rb'
- 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
Max: 22
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: implicit, each, example
RSpec/HookArgument:
Exclude:
- 'spec/controllers/api/v1/streaming_controller_spec.rb'
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
- 'spec/helpers/instance_helper_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/rails_helper.rb'
- 'spec/serializers/activitypub/note_serializer_spec.rb'
- 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/import_service_spec.rb'
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
Exclude:
- 'spec/controllers/api/v1/streaming_controller_spec.rb'
- 'spec/controllers/auth/confirmations_controller_spec.rb'
- 'spec/controllers/auth/passwords_controller_spec.rb'
- 'spec/controllers/auth/sessions_controller_spec.rb'
- 'spec/controllers/concerns/export_controller_concern_spec.rb'
- 'spec/controllers/home_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- 'spec/controllers/statuses_cleanup_controller_spec.rb'
- 'spec/models/concerns/account_finder_concern_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/public_feed_spec.rb'
- 'spec/serializers/activitypub/note_serializer_spec.rb'
- 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
RSpec/LetSetup:
Exclude:
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/controllers/admin/action_logs_controller_spec.rb'
- 'spec/controllers/admin/instances_controller_spec.rb'
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/controllers/admin/statuses_controller_spec.rb'
- 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
- 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- 'spec/controllers/api/v1/filters_controller_spec.rb'
- 'spec/controllers/api/v1/followed_tags_controller_spec.rb'
- 'spec/controllers/api/v2/admin/accounts_controller_spec.rb'
- 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
- 'spec/controllers/auth/confirmations_controller_spec.rb'
- 'spec/controllers/auth/passwords_controller_spec.rb'
- 'spec/controllers/auth/sessions_controller_spec.rb'
- 'spec/controllers/follower_accounts_controller_spec.rb'
- 'spec/controllers/following_accounts_controller_spec.rb'
- 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- 'spec/controllers/oauth/tokens_controller_spec.rb'
- 'spec/controllers/settings/imports_controller_spec.rb'
- 'spec/lib/activitypub/activity/delete_spec.rb'
- 'spec/lib/vacuum/applications_vacuum_spec.rb'
- 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- 'spec/models/account_spec.rb'
- 'spec/models/account_statuses_cleanup_policy_spec.rb'
- 'spec/models/canonical_email_block_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/services/account_statuses_cleanup_service_spec.rb'
- 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- 'spec/services/activitypub/process_account_service_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
- 'spec/services/batched_remove_status_service_spec.rb'
- 'spec/services/block_domain_service_spec.rb'
- 'spec/services/bulk_import_service_spec.rb'
- 'spec/services/delete_account_service_spec.rb'
- 'spec/services/import_service_spec.rb'
- 'spec/services/notify_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/report_service_spec.rb'
- 'spec/services/resolve_account_service_spec.rb'
- 'spec/services/suspend_account_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
- 'spec/services/unsuspend_account_service_spec.rb'
- 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb'
RSpec/MessageChain:
Exclude:
- 'spec/controllers/api/v1/media_controller_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
- 'spec/models/session_activation_spec.rb'
- 'spec/models/setting_spec.rb'
# Configuration parameters: EnforcedStyle.
# SupportedStyles: have_received, receive
RSpec/MessageSpies:
Exclude:
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/helpers/admin/account_moderation_notes_helper_spec.rb'
- 'spec/lib/webfinger_resource_spec.rb'
- 'spec/models/admin/account_action_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
- 'spec/models/follow_request_spec.rb'
- 'spec/models/identity_spec.rb'
- 'spec/models/session_activation_spec.rb'
- 'spec/models/setting_spec.rb'
- 'spec/services/activitypub/fetch_replies_service_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
- 'spec/spec_helper.rb'
- 'spec/validators/status_length_validator_spec.rb'
RSpec/MultipleExpectations:
Max: 8
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
Max: 21
Max: 17
# Configuration parameters: AllowedGroups.
RSpec/NestedGroups:
Max: 6
RSpec/PendingWithoutReason:
Exclude:
- 'spec/models/account_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/ApplicationController:
Exclude:
- 'app/controllers/health_controller.rb'
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/CreateTableWithTimestamps:
Exclude:
- 'db/migrate/20170508230434_create_conversation_mutes.rb'
- 'db/migrate/20170823162448_create_status_pins.rb'
- 'db/migrate/20171116161857_create_list_accounts.rb'
- 'db/migrate/20180929222014_create_account_conversations.rb'
- 'db/migrate/20181007025445_create_pghero_space_stats.rb'
- 'db/migrate/20190103124649_create_scheduled_statuses.rb'
- 'db/migrate/20220824233535_create_status_trends.rb'
- 'db/migrate/20221006061337_create_preview_card_trends.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Severity.
Rails/DuplicateAssociation:
Exclude:
- 'app/serializers/activitypub/collection_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasAndBelongsToMany:
Exclude:
- 'app/models/concerns/account_associations.rb'
- 'app/models/preview_card.rb'
- 'app/models/concerns/account/associations.rb'
- 'app/models/status.rb'
- 'app/models/tag.rb'
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasManyOrHasOneDependent:
Exclude:
- 'app/models/concerns/account_counters.rb'
- 'app/models/conversation.rb'
- 'app/models/custom_emoji.rb'
- 'app/models/custom_emoji_category.rb'
- 'app/models/domain_block.rb'
- 'app/models/invite.rb'
- 'app/models/status.rb'
- 'app/models/user.rb'
- 'app/models/web/push_subscription.rb'
Rails/I18nLocaleTexts:
Exclude:
- 'lib/tasks/mastodon.rake'
- 'spec/helpers/flashes_helper_spec.rb'
# Configuration parameters: Include.
# Include: app/controllers/**/*.rb, app/mailers/**/*.rb
Rails/LexicallyScopedActionFilter:
Exclude:
- 'app/controllers/auth/passwords_controller.rb'
- 'app/controllers/auth/registrations_controller.rb'
- 'app/controllers/auth/sessions_controller.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/NegateInclude:
Exclude:
- 'app/controllers/concerns/signature_verification.rb'
- 'app/helpers/jsonld_helper.rb'
- 'app/lib/activitypub/activity/create.rb'
- 'app/lib/activitypub/activity/move.rb'
- 'app/lib/feed_manager.rb'
- 'app/lib/link_details_extractor.rb'
- 'app/models/concerns/attachmentable.rb'
- 'app/models/concerns/remotable.rb'
- 'app/models/custom_filter.rb'
- 'app/services/activitypub/process_status_update_service.rb'
- 'app/services/fetch_link_card_service.rb'
- 'app/services/search_service.rb'
- 'app/workers/web/push_notification_worker.rb'
- 'lib/paperclip/color_extractor.rb'
Rails/OutputSafety:
Exclude:
- 'config/initializers/simple_form.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: **/Rakefile, **/*.rake
Rails/RakeEnvironment:
Exclude:
- 'lib/tasks/auto_annotate_models.rake'
- 'lib/tasks/db.rake'
- 'lib/tasks/emojis.rake'
- 'lib/tasks/mastodon.rake'
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ReversibleMigration:
Exclude:
- 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb'
- 'db/migrate/20161122163057_remove_unneeded_indexes.rb'
- 'db/migrate/20170205175257_remove_devices.rb'
- 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb'
- 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb'
- 'db/migrate/20170609145826_remove_default_language_from_statuses.rb'
- 'db/migrate/20170711225116_fix_null_booleans.rb'
- 'db/migrate/20171129172043_add_index_on_stream_entries.rb'
- 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb'
- 'db/migrate/20171226094803_more_faster_index_on_notifications.rb'
- 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- 'db/migrate/20180617162849_remove_unused_indexes.rb'
- 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
Rails/SkipsModelValidations:
Exclude:
- 'app/controllers/admin/invites_controller.rb'
- 'app/controllers/concerns/session_tracking_concern.rb'
- 'app/models/concerns/account_merging.rb'
- 'app/models/concerns/expireable.rb'
- 'app/models/status.rb'
- 'app/models/trends/links.rb'
- 'app/models/trends/preview_card_batch.rb'
- 'app/models/trends/preview_card_provider_batch.rb'
- 'app/models/trends/status_batch.rb'
- 'app/models/trends/statuses.rb'
- 'app/models/trends/tag_batch.rb'
- 'app/models/trends/tags.rb'
- 'app/models/user.rb'
- 'app/services/activitypub/process_status_update_service.rb'
- 'app/services/approve_appeal_service.rb'
- 'app/services/block_domain_service.rb'
- 'app/services/delete_account_service.rb'
- 'app/services/process_mentions_service.rb'
- 'app/services/unallow_domain_service.rb'
- 'app/services/unblock_domain_service.rb'
- 'app/services/update_status_service.rb'
- 'app/workers/activitypub/post_upgrade_worker.rb'
- 'app/workers/move_worker.rb'
- 'app/workers/scheduler/ip_cleanup_scheduler.rb'
- 'app/workers/scheduler/scheduled_statuses_scheduler.rb'
- 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb'
- 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb'
- 'db/migrate/20170209184350_add_reply_to_statuses.rb'
- 'db/migrate/20170304202101_add_type_to_media_attachments.rb'
- 'db/migrate/20180528141303_fix_accounts_unique_index.rb'
- 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb'
- 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb'
- 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
- 'db/migrate/20191007013357_update_pt_locales.rb'
- 'db/migrate/20220316233212_update_kurdish_locales.rb'
- 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb'
- 'db/post_migrate/20200917193528_migrate_notifications_type.rb'
- 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb'
- 'db/post_migrate/20220617202502_migrate_roles.rb'
- 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- 'lib/mastodon/cli/accounts.rb'
- 'lib/mastodon/cli/main.rb'
- 'lib/mastodon/cli/maintenance.rb'
- 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- 'spec/lib/activitypub/activity/follow_spec.rb'
- 'spec/services/follow_service_spec.rb'
- 'spec/services/update_account_service_spec.rb'
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ThreeStateBooleanColumn:
Exclude:
- 'db/migrate/20160325130944_add_admin_to_users.rb'
- 'db/migrate/20161123093447_add_sensitive_to_statuses.rb'
- 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb'
- 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb'
- 'db/migrate/20170209184350_add_reply_to_statuses.rb'
- 'db/migrate/20170330163835_create_imports.rb'
- 'db/migrate/20170905165803_add_local_to_statuses.rb'
- 'db/migrate/20181203021853_add_discoverable_to_accounts.rb'
- 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb'
- 'db/migrate/20190805123746_add_capabilities_to_tags.rb'
- 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb'
- 'db/migrate/20200309150742_add_forwarded_to_reports.rb'
- 'db/migrate/20210609202149_create_login_activities.rb'
- 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb'
- 'db/migrate/20211031031021_create_preview_card_providers.rb'
- 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb'
- 'db/migrate/20220202200743_add_trendable_to_accounts.rb'
- 'db/migrate/20220202200926_add_trendable_to_statuses.rb'
- 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/UniqueValidationWithoutIndex:
@ -492,61 +70,7 @@ Rails/UniqueValidationWithoutIndex:
- 'app/models/identity.rb'
- 'app/models/webauthn_credential.rb'
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/UnusedIgnoredColumns:
Exclude:
- 'app/models/account.rb'
- 'app/models/account_stat.rb'
- 'app/models/admin/action_log.rb'
- 'app/models/custom_filter.rb'
- 'app/models/email_domain_block.rb'
- 'app/models/report.rb'
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: exists, where
Rails/WhereExists:
Exclude:
- 'app/controllers/activitypub/inboxes_controller.rb'
- 'app/controllers/admin/email_domain_blocks_controller.rb'
- 'app/controllers/auth/registrations_controller.rb'
- 'app/lib/activitypub/activity/create.rb'
- 'app/lib/delivery_failure_tracker.rb'
- 'app/lib/feed_manager.rb'
- 'app/lib/status_cache_hydrator.rb'
- 'app/lib/suspicious_sign_in_detector.rb'
- 'app/models/concerns/account_interactions.rb'
- 'app/models/featured_tag.rb'
- 'app/models/poll.rb'
- 'app/models/session_activation.rb'
- 'app/models/status.rb'
- 'app/models/user.rb'
- 'app/policies/status_policy.rb'
- 'app/serializers/rest/announcement_serializer.rb'
- 'app/serializers/rest/tag_serializer.rb'
- 'app/services/activitypub/fetch_remote_status_service.rb'
- 'app/services/app_sign_up_service.rb'
- 'app/services/vote_service.rb'
- 'app/validators/reaction_validator.rb'
- 'app/validators/vote_validator.rb'
- 'app/workers/move_worker.rb'
- 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- 'lib/tasks/tests.rake'
- 'spec/models/account_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowOnConstant, AllowOnSelfClass.
Style/CaseEquality:
Exclude:
- 'config/initializers/trusted_proxies.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedMethods, AllowedPatterns.
# AllowedMethods: ==, equal?, eql?
Style/ClassEqualityComparison:
@ -558,12 +82,6 @@ Style/ClassVars:
Exclude:
- 'config/initializers/devise.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/CombinableLoops:
Exclude:
- 'app/models/form/custom_emoji_batch.rb'
- 'app/models/form/ip_block_batch.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
@ -576,12 +94,11 @@ Style/FetchEnvVar:
- 'config/initializers/3_omniauth.rb'
- 'config/initializers/blacklists.rb'
- 'config/initializers/cache_buster.rb'
- 'config/initializers/content_security_policy.rb'
- 'config/initializers/devise.rb'
- 'config/initializers/paperclip.rb'
- 'config/initializers/vapid.rb'
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/mastodon/redis_config.rb'
- 'lib/premailer_webpack_strategy.rb'
- 'lib/tasks/repo.rake'
- 'spec/features/profile_spec.rb'
@ -591,14 +108,12 @@ Style/FetchEnvVar:
# AllowedMethods: redirect
Style/FormatStringToken:
Exclude:
- 'app/models/privacy_policy.rb'
- 'config/initializers/devise.rb'
- 'lib/paperclip/color_extractor.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/GlobalStdStream:
Exclude:
- 'config/boot.rb'
- 'config/environments/development.rb'
- 'config/environments/production.rb'
@ -606,17 +121,13 @@ Style/GlobalStdStream:
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
Style/GuardClause:
Exclude:
- 'app/controllers/admin/confirmations_controller.rb'
- 'app/controllers/auth/confirmations_controller.rb'
- 'app/controllers/auth/passwords_controller.rb'
- 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
- 'app/lib/activitypub/activity/block.rb'
- 'app/lib/request.rb'
- 'app/lib/request_pool.rb'
- 'app/lib/webfinger.rb'
- 'app/lib/webfinger_resource.rb'
- 'app/models/concerns/account_counters.rb'
- 'app/models/concerns/ldap_authenticable.rb'
- 'app/models/concerns/account/counters.rb'
- 'app/models/concerns/user/ldap_authenticable.rb'
- 'app/models/tag.rb'
- 'app/models/user.rb'
- 'app/services/fan_out_on_write_service.rb'
@ -628,10 +139,8 @@ Style/GuardClause:
- 'app/workers/redownload_media_worker.rb'
- 'app/workers/remote_account_refresh_worker.rb'
- 'config/initializers/devise.rb'
- 'db/migrate/20170901141119_truncate_preview_cards.rb'
- 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb'
- 'lib/devise/two_factor_ldap_authenticatable.rb'
- 'lib/devise/two_factor_pam_authenticatable.rb'
- 'lib/devise/strategies/two_factor_ldap_authenticatable.rb'
- 'lib/devise/strategies/two_factor_pam_authenticatable.rb'
- 'lib/mastodon/cli/accounts.rb'
- 'lib/mastodon/cli/maintenance.rb'
- 'lib/mastodon/cli/media.rb'
@ -645,12 +154,11 @@ Style/HashAsLastArrayItem:
Exclude:
- 'app/controllers/admin/statuses_controller.rb'
- 'app/controllers/api/v1/statuses_controller.rb'
- 'app/models/concerns/account_counters.rb'
- 'app/models/concerns/status_threading_concern.rb'
- 'app/models/concerns/account/counters.rb'
- 'app/models/concerns/status/threading_concern.rb'
- 'app/models/status.rb'
- 'app/services/batched_remove_status_service.rb'
- 'app/services/notify_service.rb'
- 'db/migrate/20181024224956_migrate_account_conversations.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/HashTransformValues:
@ -665,22 +173,6 @@ Style/IfUnlessModifier:
- 'config/initializers/devise.rb'
- 'config/initializers/ffmpeg.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: InverseMethods, InverseBlocks.
Style/InverseMethods:
Exclude:
- 'app/models/custom_filter.rb'
- 'app/services/update_account_service.rb'
- 'spec/controllers/activitypub/replies_controller_spec.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: line_count_dependent, lambda, literal
Style/Lambda:
Exclude:
- 'config/initializers/simple_form.rb'
- 'config/routes.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/MapToHash:
Exclude:
@ -745,49 +237,26 @@ Style/RedundantFetchBlock:
- 'config/initializers/paperclip.rb'
- 'config/puma.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowMultipleReturnValues.
Style/RedundantReturn:
Exclude:
- 'app/controllers/api/v1/directories_controller.rb'
- 'app/controllers/auth/confirmations_controller.rb'
- 'app/lib/ostatus/tag_manager.rb'
- 'app/models/form/import.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
# AllowedMethods: present?, blank?, presence, try, try!
Style/SafeNavigation:
Exclude:
- 'app/models/concerns/account_finder_concern.rb'
- 'app/models/status.rb'
- 'app/models/concerns/account/finder_concern.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: only_raise, only_fail, semantic
Style/SignalException:
Exclude:
- 'lib/devise/two_factor_ldap_authenticatable.rb'
- 'lib/devise/two_factor_pam_authenticatable.rb'
- 'lib/devise/strategies/two_factor_ldap_authenticatable.rb'
- 'lib/devise/strategies/two_factor_pam_authenticatable.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/SingleArgumentDig:
Exclude:
- 'lib/webpacker/manifest_extensions.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: require_parentheses, require_no_parentheses
Style/StabbyLambdaParentheses:
Exclude:
- 'config/environments/production.rb'
- 'config/initializers/content_security_policy.rb'
# This cop supports safe autocorrection (--autocorrect).
Style/StderrPuts:
Exclude:
- 'config/boot.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Mode.
Style/StringConcatenation:
@ -806,20 +275,6 @@ Style/StringLiterals:
- 'config/initializers/webauthn.rb'
- 'config/routes.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
# AllowedMethods: define_method, mail, respond_to
Style/SymbolProc:
Exclude:
- 'config/initializers/3_omniauth.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, AllowSafeAssignment.
# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
Style/TernaryParentheses:
Exclude:
- 'config/environments/development.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyleForMultiline.
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
@ -836,11 +291,8 @@ Style/TrailingCommaInHashLiteral:
- 'config/environments/test.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MinSize, WordRegex.
# Configuration parameters: WordRegex.
# SupportedStyles: percent, brackets
Style/WordArray:
Exclude:
- 'app/helpers/languages_helper.rb'
- 'config/initializers/cors.rb'
- 'spec/controllers/settings/imports_controller_spec.rb'
- 'spec/models/form/import_spec.rb'
EnforcedStyle: percent
MinSize: 3

View File

@ -1 +1 @@
3.2.2
3.2.3

22
.simplecov Normal file
View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
if ENV['CI']
require 'simplecov-lcov'
SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
else
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
end
SimpleCov.start 'rails' do
enable_coverage :branch
add_filter 'lib/linter'
add_group 'Libraries', 'lib'
add_group 'Policies', 'app/policies'
add_group 'Presenters', 'app/presenters'
add_group 'Serializers', 'app/serializers'
add_group 'Services', 'app/services'
add_group 'Validators', 'app/validators'
end

3
.watchmanconfig Normal file
View File

@ -0,0 +1,3 @@
{
"ignore_dirs": ["node_modules/", "public/"]
}

0
.yarn/.gitkeep Normal file
View File

View File

@ -0,0 +1,13 @@
diff --git a/lib/index.js b/lib/index.js
index 16ed6be8be8f555cc99096c2ff60954b42dc313d..d009c069770d066ad0db7ad02de1ea473a29334e 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -99,7 +99,7 @@ function lodash(_ref) {
var node = _ref3;
- if ((0, _types.isModuleDeclaration)(node)) {
+ if ((0, _types.isImportDeclaration)(node) || (0, _types.isExportDeclaration)(node)) {
isModule = true;
break;
}

View File

@ -1,49 +0,0 @@
# test directories
__tests__
test
tests
powered-test
# asset directories
docs
doc
website
images
# assets
# examples
example
examples
# code coverage directories
coverage
.nyc_output
# build scripts
Makefile
Gulpfile.js
Gruntfile.js
# configs
.tern-project
.gitattributes
.editorconfig
.*ignore
.eslintrc
.jshintrc
.flowconfig
.documentup.json
.yarn-metadata.json
.*.yml
*.yml
# misc
*.gz
*.md
# for specific ignore
!.svgo.yml
!sass-lint/**/*.yml
# breaks lint-staged or generally anything using https://github.com/eemeli/yaml/issues/384
!**/yaml/dist/**/doc

1
.yarnrc.yml Normal file
View File

@ -0,0 +1 @@
nodeLinker: node-modules

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,10 @@ You can contribute in the following ways:
If your contributions are accepted into Mastodon, you can request to be paid through [our OpenCollective](https://opencollective.com/mastodon).
## API Changes and Additions
Please note that any changes or additions made to the API should have an accompanying pull request on [our documentation repository](https://github.com/mastodon/documentation).
## Bug reports
Bug reports and feature suggestions must use descriptive and concise titles and be submitted to [GitHub Issues](https://github.com/mastodon/mastodon/issues). Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.

15
Capfile
View File

@ -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 }

View File

@ -1,105 +1,260 @@
# syntax=docker/dockerfile:1.4
# This needs to be bookworm-slim because the Ruby image is built on bookworm-slim
ARG NODE_VERSION="20.6-bookworm-slim"
FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby
FROM node:${NODE_VERSION} as build
# Please see https://docs.docker.com/engine/reference/builder for information about
# the extended buildx capabilities used in this file.
# Make sure multiarch TARGETPLATFORM is available for interpolation
# See: https://docs.docker.com/build/building/multi-platform/
ARG TARGETPLATFORM=${TARGETPLATFORM}
ARG BUILDPLATFORM=${BUILDPLATFORM}
COPY --link --from=ruby /opt/ruby /opt/ruby
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.2.3"]
ARG RUBY_VERSION="3.2.3"
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
ARG NODE_MAJOR_VERSION="20"
# Debian image to use for base image, change with [--build-arg DEBIAN_VERSION="bookworm"]
ARG DEBIAN_VERSION="bookworm"
# Node image to use for base image based on combined variables (ex: 20-bookworm-slim)
FROM docker.io/node:${NODE_MAJOR_VERSION}-${DEBIAN_VERSION}-slim as node
# Ruby image to use for base image based on combined variables (ex: 3.2.3-slim-bookworm)
FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby
ENV DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
WORKDIR /opt/mastodon
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 \
libidn-dev \
libpq-dev \
libjemalloc-dev \
zlib1g-dev \
libgdbm-dev \
libgmp-dev \
libssl-dev \
libyaml-0-2 \
ca-certificates \
libreadline8 \
python3 \
shared-mime-info && \
bundle config set --local deployment 'true' && \
bundle config set --local without 'development test' && \
bundle config set silence_root_warning true && \
bundle install -j"$(nproc)" && \
yarn install --pure-lockfile --production --network-timeout 600000 && \
yarn cache clean
FROM node:${NODE_VERSION}
# Use those args to specify your own version flags & suffixes
# Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA
# Example: v4.2.0-nightly.2023.11.09+something
# Overwrite existance of 'alpha.0' in version.rb [--build-arg MASTODON_VERSION_PRERELEASE="nightly.2023.11.09"]
ARG MASTODON_VERSION_PRERELEASE=""
# Append build metadata or fork information to version.rb [--build-arg MASTODON_VERSION_METADATA="something"]
ARG MASTODON_VERSION_METADATA=""
# Allow Ruby on Rails to serve static files
# See: https://docs.joinmastodon.org/admin/config/#rails_serve_static_files
ARG RAILS_SERVE_STATIC_FILES="true"
# Allow to use YJIT compiler
# See: https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md
ARG RUBY_YJIT_ENABLE="1"
# Timezone used by the Docker container and runtime, change with [--build-arg TZ=Europe/Berlin]
ARG TZ="Etc/UTC"
# Linux UID (user id) for the mastodon user, change with [--build-arg UID=1234]
ARG UID="991"
# Linux GID (group id) for the mastodon user, change with [--build-arg GID=1234]
ARG GID="991"
COPY --link --from=ruby /opt/ruby /opt/ruby
# Apply Mastodon build options based on options above
ENV \
# Apply Mastodon version information
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
# Apply Mastodon static files and YJIT options
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
# Apply timezone
TZ=${TZ}
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV \
# Configure the IP to bind Mastodon to when serving traffic
BIND="0.0.0.0" \
# Use production settings for Yarn, Node and related nodejs based tools
NODE_ENV="production" \
# Use production settings for Ruby on Rails
RAILS_ENV="production" \
# Add Ruby and Mastodon installation to the PATH
DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin" \
# Optimize jemalloc 5.x performance
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0"
ENV DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin"
# Set default shell used for running commands
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
# 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 && \
groupadd -g "${GID}" mastodon && \
useradd -l -u "$UID" -g "${GID}" -m -d /opt/mastodon mastodon && \
apt-get -y --no-install-recommends install whois \
wget \
procps \
libssl3 \
libpq5 \
imagemagick \
ffmpeg \
libjemalloc2 \
libicu72 \
libidn12 \
libyaml-0-2 \
file \
ca-certificates \
tzdata \
libreadline8 \
tini && \
ln -s /opt/mastodon /mastodon
ARG TARGETPLATFORM
# Note: no, cleaning here since Debian does this automatically
# See the file /etc/apt/apt.conf.d/docker-clean within the Docker image's filesystem
RUN echo "Target platform is $TARGETPLATFORM"
COPY --chown=mastodon:mastodon . /opt/mastodon
COPY --chown=mastodon:mastodon --from=build /opt/mastodon /opt/mastodon
RUN \
# Remove automatic apt cache Docker cleanup scripts
rm -f /etc/apt/apt.conf.d/docker-clean; \
# Sets timezone
echo "${TZ}" > /etc/localtime; \
# Creates mastodon user/group and sets home directory
groupadd -g "${GID}" mastodon; \
useradd -l -u "${UID}" -g "${GID}" -m -d /opt/mastodon mastodon; \
# Creates /mastodon symlink to /opt/mastodon
ln -s /opt/mastodon /mastodon;
ENV RAILS_ENV="production" \
NODE_ENV="production" \
RAILS_SERVE_STATIC_FILES="true" \
BIND="0.0.0.0" \
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}"
# Set the run user
USER mastodon
# Set /opt/mastodon as working directory
WORKDIR /opt/mastodon
# Precompile assets
RUN OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder rails assets:precompile
# hadolint ignore=DL3008,DL3005
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Apt update & upgrade to check for security updates to Debian image
apt-get update; \
apt-get dist-upgrade -yq; \
# Install jemalloc, curl and other necessary components
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
ffmpeg \
file \
imagemagick \
libjemalloc2 \
patchelf \
procps \
tini \
tzdata \
wget \
; \
# Patch Ruby to use jemalloc
patchelf --add-needed libjemalloc.so.2 /usr/local/bin/ruby; \
# Discard patchelf after use
apt-get purge -y \
patchelf \
;
# Set the work dir and the container entry point
ENTRYPOINT ["/usr/bin/tini", "--"]
EXPOSE 3000 4000
# Create temporary build layer from base image
FROM ruby as build
# Copy Node package configuration files into working directory
COPY package.json yarn.lock .yarnrc.yml /opt/mastodon/
COPY .yarn /opt/mastodon/.yarn
COPY --from=node /usr/local/bin /usr/local/bin
COPY --from=node /usr/local/lib /usr/local/lib
ARG TARGETPLATFORM
# hadolint ignore=DL3008
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Install build tools and bundler dependencies from APT
apt-get install -y --no-install-recommends \
g++ \
gcc \
git \
libgdbm-dev \
libgmp-dev \
libicu-dev \
libidn-dev \
libpq-dev \
libssl-dev \
make \
shared-mime-info \
zlib1g-dev \
;
RUN \
# Configure Corepack
rm /usr/local/bin/yarn*; \
corepack enable; \
corepack prepare --activate;
# Create temporary bundler specific build layer from build layer
FROM build as bundler
ARG TARGETPLATFORM
# Copy Gemfile config into working directory
COPY Gemfile* /opt/mastodon/
RUN \
# Mount Ruby Gem caches
--mount=type=cache,id=gem-cache-${TARGETPLATFORM},target=/usr/local/bundle/cache/,sharing=locked \
# Configure bundle to prevent changes to Gemfile and Gemfile.lock
bundle config set --global frozen "true"; \
# Configure bundle to not cache downloaded Gems
bundle config set --global cache_all "false"; \
# Configure bundle to only process production Gems
bundle config set --local without "development test"; \
# Configure bundle to not warn about root user
bundle config set silence_root_warning "true"; \
# Download and install required Gems
bundle install -j"$(nproc)";
# Create temporary node specific build layer from build layer
FROM build as yarn
ARG TARGETPLATFORM
# Copy Node package configuration files into working directory
COPY package.json yarn.lock .yarnrc.yml /opt/mastodon/
COPY streaming/package.json /opt/mastodon/streaming/
COPY .yarn /opt/mastodon/.yarn
# hadolint ignore=DL3008
RUN \
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Install Node packages
yarn workspaces focus --production @mastodon/mastodon;
# Create temporary assets build layer from build layer
FROM build as precompiler
# Copy Mastodon sources into precompiler layer
COPY . /opt/mastodon/
# Copy bundler and node packages from build layer to container
COPY --from=yarn /opt/mastodon /opt/mastodon/
COPY --from=bundler /opt/mastodon /opt/mastodon/
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
ARG TARGETPLATFORM
RUN \
# Use Ruby on Rails to create Mastodon assets
OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder bundle exec rails assets:precompile; \
# Cleanup temporary files
rm -fr /opt/mastodon/tmp;
# Prep final Mastodon Ruby layer
FROM ruby as mastodon
ARG TARGETPLATFORM
# hadolint ignore=DL3008
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Mount Corepack and Yarn caches from Docker buildx caches
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Apt update install non-dev versions of necessary components
apt-get install -y --no-install-recommends \
libssl3 \
libpq5 \
libicu72 \
libidn12 \
libreadline8 \
libyaml-0-2 \
;
# Copy Mastodon sources into final layer
COPY . /opt/mastodon/
# Copy compiled assets to layer
COPY --from=precompiler /opt/mastodon/public/packs /opt/mastodon/public/packs
COPY --from=precompiler /opt/mastodon/public/assets /opt/mastodon/public/assets
# Copy bundler components to layer
COPY --from=bundler /usr/local/bundle/ /usr/local/bundle/
RUN \
# Precompile bootsnap code for faster Rails startup
bundle exec bootsnap precompile --gemfile app/ lib/;
RUN \
# Pre-create and chown system volume to Mastodon user
mkdir -p /opt/mastodon/public/system; \
chown mastodon:mastodon /opt/mastodon/public/system; \
# Set Mastodon user as owner of tmp folder
chown -R mastodon:mastodon /opt/mastodon/tmp;
# Set the running user for resulting container
USER mastodon
# Expose default Puma ports
EXPOSE 3000
# Set container tini as default entry point
ENTRYPOINT ["/usr/bin/tini", "--"]

View File

@ -1,19 +1,35 @@
## ActivityPub federation in Mastodon
# Federation
## Supported federation protocols and standards
- [ActivityPub](https://www.w3.org/TR/activitypub/) (Server-to-Server)
- [WebFinger](https://webfinger.net/)
- [Http Signatures](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures)
- [NodeInfo](https://nodeinfo.diaspora.software/)
## Supported FEPs
- [FEP-67ff: FEDERATION.md](https://codeberg.org/fediverse/fep/src/branch/main/fep/67ff/fep-67ff.md)
- [FEP-f1d5: NodeInfo in Fediverse Software](https://codeberg.org/fediverse/fep/src/branch/main/fep/f1d5/fep-f1d5.md)
- [FEP-8fcf: Followers collection synchronization across servers](https://codeberg.org/fediverse/fep/src/branch/main/fep/8fcf/fep-8fcf.md)
- [FEP-5feb: Search indexing consent for actors](https://codeberg.org/fediverse/fep/src/branch/main/fep/5feb/fep-5feb.md)
## ActivityPub in Mastodon
Mastodon largely follows the ActivityPub server-to-server specification but it makes uses of some non-standard extensions, some of which are required for interacting with Mastodon at all.
Supported vocabulary: https://docs.joinmastodon.org/spec/activitypub/
- [Supported ActivityPub vocabulary](https://docs.joinmastodon.org/spec/activitypub/)
### Required extensions
#### Webfinger
#### WebFinger
In Mastodon, users are identified by a `username` and `domain` pair (e.g., `Gargron@mastodon.social`).
This is used both for discovery and for unambiguously mentioning users across the fediverse. Furthermore, this is part of Mastodon's database design from its very beginnings.
As a result, Mastodon requires that each ActivityPub actor uniquely maps back to an `acct:` URI that can be resolved via WebFinger.
More information and examples are available at: https://docs.joinmastodon.org/spec/webfinger/
- [WebFinger information and examples](https://docs.joinmastodon.org/spec/webfinger/)
#### HTTP Signatures
@ -21,11 +37,13 @@ In order to authenticate activities, Mastodon relies on HTTP Signatures, signing
Mastodon requires all `POST` requests to be signed, and MAY require `GET` requests to be signed, depending on the configuration of the Mastodon server.
More information on HTTP Signatures, as well as examples, can be found here: https://docs.joinmastodon.org/spec/security/#http
- [HTTP Signatures information and examples](https://docs.joinmastodon.org/spec/security/#http)
### Optional extensions
- Linked-Data Signatures: https://docs.joinmastodon.org/spec/security/#ld
- Bearcaps: https://docs.joinmastodon.org/spec/bearcaps/
- 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
- [Linked-Data Signatures](https://docs.joinmastodon.org/spec/security/#ld)
- [Bearcaps](https://docs.joinmastodon.org/spec/bearcaps/)
### Additional documentation
- [Mastodon documentation](https://docs.joinmastodon.org/)

53
Gemfile
View File

@ -4,11 +4,14 @@ source 'https://rubygems.org'
ruby '>= 3.0.0'
gem 'puma', '~> 6.3'
gem 'rails', '~> 7.0'
gem 'sprockets', '~> 3.7.2'
gem 'rails', '~> 7.1.1'
gem 'propshaft'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.7'
# For why irb is in the Gemfile, see: https://ruby.social/@st0012/111444685161478182
gem 'irb', '~> 1.8'
gem 'haml-rails', '~>2.0'
gem 'pg', '~> 1.5'
gem 'pghero'
@ -16,14 +19,14 @@ gem 'dotenv-rails', '~> 2.8'
gem 'aws-sdk-s3', '~> 1.123', require: false
gem 'fog-core', '<= 2.4.0'
gem 'fog-openstack', '~> 0.3', require: false
gem 'fog-openstack', '~> 1.0', require: false
gem 'kt-paperclip', '~> 7.2'
gem 'md-paperclip-azure', '~> 2.2', require: false
gem 'blurhash', '~> 0.1'
gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8'
gem 'bootsnap', '~> 1.16.0', require: false
gem 'bootsnap', '~> 1.17.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.3'
@ -36,15 +39,14 @@ end
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-cas', '~> 3.0.0.beta.1'
gem 'omniauth-saml', '~> 2.0'
gem 'omniauth_openid_connect', '~> 0.6.1'
gem 'omniauth', '~> 2.0'
gem 'omniauth-rails_csrf_protection', '~> 1.0'
gem 'color_diff', '~> 0.1'
gem 'csv', '~> 3.2'
gem 'discard', '~> 1.2'
gem 'doorkeeper', '~> 5.6'
gem 'ed25519', '~> 1.3'
@ -72,7 +74,6 @@ gem 'premailer-rails'
gem 'rack-attack', '~> 6.6'
gem 'rack-cors', '~> 2.0', require: 'rack/cors'
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'
@ -86,9 +87,8 @@ gem 'sidekiq-unique-jobs', '~> 7.1'
gem 'sidekiq-bulk', '~> 0.2.0'
gem 'simple-navigation', '~> 4.4'
gem 'simple_form', '~> 5.2'
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
gem 'stoplight', '~> 3.0.1'
gem 'strong_migrations', '~> 0.8'
gem 'strong_migrations', '1.7.0'
gem 'tty-prompt', '~> 0.23', require: false
gem 'twitter-text', '~> 3.1.0'
gem 'tzinfo-data', '~> 1.2023'
@ -103,12 +103,15 @@ gem 'rdf-normalize', '~> 0.5'
gem 'private_address_check', '~> 0.5'
group :test do
# Used to split testing into chunks in CI
gem 'rspec_chunked', '~> 0.6'
# Adds RSpec Error/Warning annotations to GitHub PRs on the Files tab
gem 'rspec-github', '~> 2.4', require: false
# RSpec progress bar formatter
gem 'fuubar', '~> 2.5'
# RSpec helpers for email specs
gem 'email_spec'
# Extra RSpec extenion methods and helpers for sidekiq
gem 'rspec-sidekiq', '~> 4.0'
@ -120,13 +123,7 @@ group :test do
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'
gem 'climate_control'
# Add back helpers functions removed in Rails 5.1
gem 'rails-controller-testing', '~> 1.0'
@ -139,6 +136,7 @@ group :test do
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false
gem 'simplecov', '~> 0.22', require: false
gem 'simplecov-lcov', '~> 0.8', require: false
# Stub web requests for specs
gem 'webmock', '~> 3.18'
@ -170,17 +168,20 @@ group :development do
# Linter CLI for HAML files
gem 'haml_lint', require: false
# Deployment automation
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
# Interactive Debugging tools
gem 'debug', '~> 1.8'
# Generate fake data values
gem 'faker', '~> 3.2'
# Generate factory objects
gem 'fabrication', '~> 2.30'
# Profiling tools
gem 'memory_profiler', require: false
gem 'ruby-prof', require: false
@ -200,7 +201,7 @@ gem 'connection_pool', require: false
gem 'xorcist', '~> 1.1'
gem 'cocoon', '~> 1.2'
gem 'net-http', '~> 0.3.2'
gem 'net-http', '~> 0.4.0'
gem 'rubyzip', '~> 2.3'
gem 'hcaptcha', '~> 7.1'

View File

@ -18,102 +18,91 @@ GIT
sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0)
GIT
remote: https://github.com/mastodon/rails-settings-cached.git
revision: 86328ef0bd04ce21cc0504ff5e334591e8c2ccab
branch: v0.6.6-aliases-true
specs:
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 (7.0.8)
actionpack (= 7.0.8)
activesupport (= 7.0.8)
actioncable (7.1.3)
actionpack (= 7.1.3)
activesupport (= 7.1.3)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.8)
actionpack (= 7.0.8)
activejob (= 7.0.8)
activerecord (= 7.0.8)
activestorage (= 7.0.8)
activesupport (= 7.0.8)
zeitwerk (~> 2.6)
actionmailbox (7.1.3)
actionpack (= 7.1.3)
activejob (= 7.1.3)
activerecord (= 7.1.3)
activestorage (= 7.1.3)
activesupport (= 7.1.3)
mail (>= 2.7.1)
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)
actionmailer (7.1.3)
actionpack (= 7.1.3)
actionview (= 7.1.3)
activejob (= 7.1.3)
activesupport (= 7.1.3)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.8)
actionview (= 7.0.8)
activesupport (= 7.0.8)
rack (~> 2.0, >= 2.2.4)
rails-dom-testing (~> 2.2)
actionpack (7.1.3)
actionview (= 7.1.3)
activesupport (= 7.1.3)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (7.0.8)
actionpack (= 7.0.8)
activerecord (= 7.0.8)
activestorage (= 7.0.8)
activesupport (= 7.0.8)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actiontext (7.1.3)
actionpack (= 7.1.3)
activerecord (= 7.1.3)
activestorage (= 7.1.3)
activesupport (= 7.1.3)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.8)
activesupport (= 7.0.8)
actionview (7.1.3)
activesupport (= 7.1.3)
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)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
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 (7.0.8)
activesupport (= 7.0.8)
activejob (7.1.3)
activesupport (= 7.1.3)
globalid (>= 0.3.6)
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)
activemodel (7.1.3)
activesupport (= 7.1.3)
activerecord (7.1.3)
activemodel (= 7.1.3)
activesupport (= 7.1.3)
timeout (>= 0.4.0)
activestorage (7.1.3)
actionpack (= 7.1.3)
activejob (= 7.1.3)
activerecord (= 7.1.3)
activesupport (= 7.1.3)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.8)
activesupport (7.1.3)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
addressable (2.8.5)
addressable (2.8.6)
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)
@ -123,21 +112,21 @@ GEM
encryptor (~> 3.0.0)
attr_required (1.0.1)
awrence (1.2.1)
aws-eventstream (1.2.0)
aws-partitions (1.809.0)
aws-sdk-core (3.181.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-eventstream (1.3.0)
aws-partitions (1.873.0)
aws-sdk-core (3.190.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.71.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sdk-kms (1.75.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.133.0)
aws-sdk-core (~> 3, >= 3.181.0)
aws-sdk-s3 (1.142.0)
aws-sdk-core (~> 3, >= 3.189.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.6)
aws-sigv4 (1.6.0)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
azure-storage-blob (2.0.3)
azure-storage-common (~> 2.0)
@ -147,26 +136,29 @@ GEM
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.18)
base64 (0.2.0)
bcp47_spec (0.2.1)
bcrypt (3.1.20)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
rouge (>= 1.0.0)
better_html (2.0.1)
better_html (2.0.2)
actionview (>= 6.0)
activesupport (>= 6.0)
ast (~> 2.0)
erubi (~> 1.4)
parser (>= 2.4)
smart_properties
bigdecimal (3.1.6)
bindata (2.4.15)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
blurhash (0.1.7)
bootsnap (1.16.0)
bootsnap (1.17.1)
msgpack (~> 1.2)
brakeman (6.0.1)
brakeman (6.1.1)
racc
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
@ -175,26 +167,11 @@ GEM
bundler-audit (0.9.1)
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
capistrano (3.17.3)
airbrussh (>= 1.0.0)
i18n
rake (>= 10.0.0)
sshkit (>= 1.9.0)
capistrano-bundler (2.1.0)
capistrano (~> 3.1)
capistrano-rails (1.6.3)
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.2)
capybara (3.40.0)
addressable
matrix
mini_mime (>= 0.1.3)
nokogiri (~> 1.8)
nokogiri (~> 1.11)
rack (>= 1.6.0)
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
@ -203,15 +180,15 @@ GEM
activesupport
cbor (0.5.9.6)
charlock_holmes (0.7.7)
chewy (7.3.4)
chewy (7.5.1)
activesupport (>= 5.2)
elasticsearch (>= 7.12.0, < 7.14.0)
elasticsearch-dsl
chunky_png (1.4.0)
climate_control (0.2.0)
climate_control (1.2.0)
cocoon (1.2.15)
color_diff (0.1)
concurrent-ruby (1.2.2)
concurrent-ruby (1.2.3)
connection_pool (2.4.1)
cose (1.3.0)
cbor (~> 0.5.9)
@ -221,39 +198,45 @@ GEM
crass (1.0.6)
css_parser (1.14.0)
addressable
csv (3.2.8)
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)
date (3.3.4)
debug (1.9.1)
irb (~> 1.10)
reline (>= 0.3.8)
debug_inspector (1.1.0)
devise (4.9.2)
devise (4.9.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
devise-two-factor (4.1.0)
activesupport (< 7.1)
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)
rpam2 (~> 4.0)
diff-lcs (1.5.0)
discard (1.2.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.6.6)
doorkeeper (5.6.8)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
dotenv (= 2.8.1)
railties (>= 3.2)
drb (2.2.0)
ruby2_keywords
ed25519 (1.3.0)
elasticsearch (7.13.3)
elasticsearch-api (= 7.13.3)
@ -264,13 +247,17 @@ GEM
elasticsearch-transport (7.13.3)
faraday (~> 1)
multi_json
email_spec (2.2.2)
htmlentities (~> 4.3.3)
launchy (~> 2.1)
mail (~> 2.7)
encryptor (3.0.0)
erubi (1.12.0)
et-orbi (1.2.7)
tzinfo
excon (0.100.0)
fabrication (2.30.0)
faker (3.2.1)
excon (0.109.0)
fabrication (2.31.0)
faker (3.2.3)
i18n (>= 1.8.11, < 2)
faraday (1.10.3)
faraday-em_http (~> 1.0)
@ -298,33 +285,32 @@ GEM
faraday_middleware (1.2.0)
faraday (~> 1.0)
fast_blank (1.0.1)
fastimage (2.2.7)
fastimage (2.3.0)
ffi (1.15.5)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
fog-core (2.1.0)
fog-core (2.4.0)
builder
excon (~> 0.58)
formatador (~> 0.2)
excon (~> 0.71)
formatador (>= 0.2, < 2.0)
mime-types
fog-json (1.2.0)
fog-core
multi_json (~> 1.10)
fog-openstack (0.3.10)
fog-core (>= 1.45, <= 2.1.0)
fog-openstack (1.1.0)
fog-core (~> 2.1)
fog-json (>= 1.0)
ipaddress (>= 0.8)
formatador (0.3.0)
formatador (1.1.0)
fugit (1.8.1)
et-orbi (~> 1, >= 1.2.7)
raabro (~> 1.4)
fuubar (2.5.1)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
globalid (1.1.0)
activesupport (>= 5.0)
haml (6.1.2)
globalid (1.2.1)
activesupport (>= 6.1)
haml (6.3.0)
temple (>= 0.8.2)
thor
tilt
@ -333,8 +319,8 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.50.0)
haml (>= 4.0, < 6.2)
haml_lint (0.55.0)
haml (>= 5.0)
parallel (~> 1.10)
rainbow
rubocop (>= 1.0)
@ -362,38 +348,41 @@ GEM
rainbow (>= 2.0.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)
idn-ruby (0.1.5)
ipaddress (0.8.3)
io-console (0.7.2)
irb (1.11.1)
rdoc
reline (>= 0.4.2)
jmespath (1.6.2)
json (2.6.3)
json-canonicalization (0.3.2)
json (2.7.1)
json-canonicalization (1.0.0)
json-jwt (1.15.3)
activesupport (>= 4.2)
aes_key_wrap
bindata
httpclient
json-ld (3.2.5)
json-ld (3.3.1)
htmlentities (~> 4.3)
json-canonicalization (~> 0.3, >= 0.3.2)
json-canonicalization (~> 1.0)
link_header (~> 0.0, >= 0.0.8)
multi_json (~> 1.15)
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 (4.0.0)
rdf (~> 3.3)
json-ld-preloaded (3.3.0)
json-ld (~> 3.3)
rdf (~> 3.3)
json-schema (4.1.1)
addressable (>= 2.8)
jsonapi-renderer (0.2.2)
jwt (2.7.1)
@ -409,12 +398,12 @@ GEM
activerecord
kaminari-core (= 1.2.2)
kaminari-core (1.2.2)
kt-paperclip (7.2.1)
kt-paperclip (7.2.2)
activemodel (>= 4.2.0)
activesupport (>= 4.2.0)
marcel (~> 1.0.1)
mime-types
terrapin (~> 0.6.0)
terrapin (>= 0.6.0, < 2.0)
language_server-protocol (3.17.0.3)
launchy (2.5.2)
addressable (~> 2.8)
@ -429,12 +418,12 @@ GEM
llhttp-ffi (0.4.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
lograge (0.13.0)
lograge (0.14.0)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.21.3)
loofah (2.22.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@ -451,42 +440,44 @@ GEM
azure-storage-blob (~> 2.0.1)
hashie (~> 5.0)
memory_profiler (1.0.1)
method_source (1.0.0)
mime-types (3.5.1)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.0808)
mime-types-data (3.2023.1205)
mini_mime (1.1.5)
mini_portile2 (2.8.4)
minitest (5.19.0)
msgpack (1.7.1)
mini_portile2 (2.8.5)
minitest (5.21.2)
msgpack (1.7.2)
multi_json (1.15.0)
multipart-post (2.3.0)
net-http (0.3.2)
mutex_m (0.2.0)
net-http (0.4.1)
uri
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
net-imap (0.3.7)
net-imap (0.4.9.1)
date
net-protocol
net-ldap (0.18.0)
net-ldap (0.19.0)
net-pop (0.1.2)
net-protocol
net-protocol (0.2.1)
net-protocol (0.2.2)
timeout
net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-smtp (0.4.0.1)
net-protocol
net-ssh (7.1.0)
nio4r (2.5.9)
nokogiri (1.15.4)
nokogiri (1.16.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.1)
oj (3.16.3)
bigdecimal (>= 3.0)
omniauth (2.1.1)
hashie (>= 3.4.6)
rack (>= 2.2.3)
rack-protection
omniauth-cas (3.0.0.beta.1)
addressable (~> 2.8)
nokogiri (~> 1.12)
omniauth (~> 2.1)
omniauth-rails_csrf_protection (1.0.1)
actionpack (>= 4.2)
omniauth (~> 2.0)
@ -507,20 +498,20 @@ GEM
validate_email
validate_url
webfinger (~> 1.2)
openssl (3.1.0)
openssl (3.2.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
orm_adapter (0.5.0)
ox (2.14.17)
parallel (1.23.0)
parser (3.2.2.3)
parallel (1.24.0)
parser (3.3.0.5)
ast (~> 2.4.1)
racc
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.5.4)
pghero (3.3.4)
pghero (3.4.0)
activerecord (>= 6)
posix-spawn (0.3.15)
premailer (1.21.0)
@ -532,13 +523,20 @@ GEM
net-smtp
premailer (~> 1.7, >= 1.7.9)
private_address_check (0.5.0)
public_suffix (5.0.3)
puma (6.3.1)
propshaft (0.8.0)
actionpack (>= 7.0.0)
activesupport (>= 7.0.0)
rack
railties (>= 7.0.0)
psych (5.1.2)
stringio
public_suffix (5.0.4)
puma (6.4.2)
nio4r (~> 2.0)
pundit (2.3.0)
pundit (2.3.1)
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.7.1)
racc (1.7.3)
rack (2.2.8)
rack-attack (6.7.0)
rack (>= 1.0, < 4)
@ -554,63 +552,74 @@ GEM
rack
rack-proxy (0.7.6)
rack
rack-session (1.0.2)
rack (< 3)
rack-test (2.1.0)
rack (>= 1.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)
rackup (1.0.0)
rack (< 3)
webrick
rails (7.1.3)
actioncable (= 7.1.3)
actionmailbox (= 7.1.3)
actionmailer (= 7.1.3)
actionpack (= 7.1.3)
actiontext (= 7.1.3)
actionview (= 7.1.3)
activejob (= 7.1.3)
activemodel (= 7.1.3)
activerecord (= 7.1.3)
activestorage (= 7.1.3)
activesupport (= 7.1.3)
bundler (>= 1.15.0)
railties (= 7.0.8)
railties (= 7.1.3)
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.1.1)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
rails-i18n (7.0.7)
rails-i18n (7.0.8)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.0.8)
actionpack (= 7.0.8)
activesupport (= 7.0.8)
method_source
railties (7.1.3)
actionpack (= 7.1.3)
activesupport (= 7.1.3)
irb
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6)
rainbow (3.1.1)
rake (13.0.6)
rdf (3.2.11)
rake (13.1.0)
rdf (3.3.1)
bcp47_spec (~> 0.2)
link_header (~> 0.0, >= 0.0.8)
rdf-normalize (0.6.1)
rdf (~> 3.2)
rdf-normalize (0.7.0)
rdf (~> 3.3)
rdoc (6.6.2)
psych (>= 4.0.0)
redcarpet (3.6.0)
redis (4.8.1)
redis-namespace (1.11.0)
redis (>= 4)
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.8.1)
regexp_parser (2.9.0)
reline (0.4.2)
io-console (~> 0.5)
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.6)
rotp (6.2.2)
rotp (6.3.0)
rouge (4.1.2)
rpam2 (4.0.2)
rqrcode (2.2.0)
@ -622,10 +631,12 @@ GEM
rspec-expectations (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.5)
rspec-github (2.4.0)
rspec-core (~> 3.0)
rspec-mocks (3.12.6)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-rails (6.0.3)
rspec-rails (6.1.1)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
@ -633,43 +644,42 @@ GEM
rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12)
rspec-support (~> 3.12)
rspec-sidekiq (4.0.1)
rspec-sidekiq (4.1.0)
rspec-core (~> 3.0)
rspec-expectations (~> 3.0)
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.12.1)
rspec_chunked (0.6)
rubocop (1.56.3)
base64 (~> 0.1.1)
rubocop (1.60.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.2.2.3)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.28.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.29.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
rubocop-capybara (2.18.0)
rubocop-capybara (2.20.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.23.1)
rubocop-factory_bot (2.25.0)
rubocop (~> 1.33)
rubocop-performance (1.19.0)
rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0)
rubocop-rails (2.20.2)
rubocop-performance (1.20.2)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-rails (2.23.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-rspec (2.23.2)
rubocop (~> 1.33)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-rspec (2.26.1)
rubocop (~> 1.40)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
ruby-prof (1.6.3)
ruby-prof (1.7.0)
ruby-progressbar (1.13.0)
ruby-saml (1.15.0)
nokogiri (>= 1.13.10)
@ -680,18 +690,19 @@ GEM
fugit (~> 1.1, >= 1.1.6)
safety_net_attestation (0.4.0)
jwt (~> 2.0)
sanitize (6.0.2)
sanitize (6.1.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
scenic (1.7.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
selenium-webdriver (4.11.0)
selenium-webdriver (4.17.0)
base64 (~> 0.2)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic_range (3.0.0)
sidekiq (6.5.9)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
redis (>= 4.5.0, < 5)
@ -701,7 +712,7 @@ GEM
rufus-scheduler (~> 3.2)
sidekiq (>= 6, < 8)
tilt (>= 1.4.0)
sidekiq-unique-jobs (7.1.29)
sidekiq-unique-jobs (7.1.31)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (< 5.0)
@ -709,7 +720,7 @@ GEM
thor (>= 0.20, < 3.0)
simple-navigation (4.4.0)
activesupport (>= 2.3.2)
simple_form (5.2.0)
simple_form (5.3.0)
actionpack (>= 5.2)
activemodel (>= 5.2)
simplecov (0.22.0)
@ -717,38 +728,30 @@ GEM
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-html (0.12.3)
simplecov-lcov (0.8.0)
simplecov_json_formatter (0.1.4)
smart_properties (1.17.0)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.4.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
sshkit (1.21.5)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
stackprof (0.2.25)
stackprof (0.2.26)
statsd-ruby (1.5.0)
stoplight (3.0.2)
redlock (~> 1.0)
strong_migrations (0.8.0)
stringio (3.1.0)
strong_migrations (1.7.0)
activerecord (>= 5.2)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
httpclient (>= 2.4)
sysexits (1.2.0)
temple (0.10.2)
temple (0.10.3)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
test-prof (1.2.3)
thor (1.2.2)
tilt (2.2.0)
timeout (0.4.0)
terrapin (1.0.1)
climate_control
test-prof (1.3.1)
thor (1.3.0)
tilt (2.3.0)
timeout (0.4.1)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
openssl (> 2.0)
@ -768,12 +771,12 @@ GEM
unf (~> 0.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2023.3)
tzinfo-data (1.2023.4)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.4.2)
unicode-display_width (2.5.0)
uri (0.12.2)
validate_email (0.1.6)
activemodel (>= 3.0)
@ -783,7 +786,7 @@ GEM
public_suffix
warden (1.2.9)
rack (>= 2.0.9)
webauthn (3.0.0)
webauthn (3.1.0)
android_key_attestation (~> 0.3.0)
awrence (~> 1.1)
bindata (~> 2.4)
@ -804,7 +807,8 @@ GEM
rack-proxy (>= 0.6.1)
railties (>= 5.2)
semantic_range (>= 2.3.0)
websocket (1.2.9)
webrick (1.8.1)
websocket (1.2.10)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
@ -812,7 +816,7 @@ GEM
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.11)
zeitwerk (2.6.12)
PLATFORMS
ruby
@ -825,23 +829,21 @@ DEPENDENCIES
better_errors (~> 2.9)
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.16.0)
bootsnap (~> 1.17.0)
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.3)
climate_control (~> 0.2)
climate_control
cocoon (~> 1.2)
color_diff (~> 0.1)
concurrent-ruby
connection_pool
csv (~> 3.2)
database_cleaner-active_record
debug (~> 1.8)
devise (~> 4.9)
devise-two-factor (~> 4.1)
devise_pam_authenticatable2 (~> 9.2)
@ -849,12 +851,13 @@ DEPENDENCIES
doorkeeper (~> 5.6)
dotenv-rails (~> 2.8)
ed25519 (~> 1.3)
email_spec
fabrication (~> 2.30)
faker (~> 3.2)
fast_blank (~> 1.0)
fastimage
fog-core (<= 2.4.0)
fog-openstack (~> 0.3)
fog-openstack (~> 1.0)
fuubar (~> 2.5)
haml-rails (~> 2.0)
haml_lint
@ -866,6 +869,7 @@ DEPENDENCIES
httplog (~> 1.6.2)
i18n-tasks (~> 1.0)
idn-ruby
irb (~> 1.8)
json-ld
json-ld-preloaded (~> 3.2)
json-schema (~> 4.0)
@ -879,13 +883,13 @@ DEPENDENCIES
md-paperclip-azure (~> 2.2)
memory_profiler
mime-types (~> 3.5.0)
net-http (~> 0.3.2)
net-http (~> 0.4.0)
net-ldap (~> 0.18)
nokogiri (~> 1.15)
nsa!
oj (~> 3.14)
omniauth (~> 2.0)
omniauth-cas!
omniauth-cas (~> 3.0.0.beta.1)
omniauth-rails_csrf_protection (~> 1.0)
omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1)
@ -896,6 +900,7 @@ DEPENDENCIES
posix-spawn
premailer-rails
private_address_check (~> 0.5)
propshaft
public_suffix (~> 5.0)
puma (~> 6.3)
pundit (~> 2.3)
@ -903,18 +908,17 @@ DEPENDENCIES
rack-attack (~> 6.6)
rack-cors (~> 2.0)
rack-test (~> 2.1)
rails (~> 7.0)
rails (~> 7.1.1)
rails-controller-testing (~> 1.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.2)
rspec-github (~> 2.4)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 4.0)
rspec_chunked (~> 0.6)
rubocop
rubocop-capybara
rubocop-performance
@ -933,11 +937,10 @@ DEPENDENCIES
simple-navigation (~> 4.4)
simple_form (~> 5.2)
simplecov (~> 0.22)
sprockets (~> 3.7.2)
sprockets-rails (~> 3.4)
simplecov-lcov (~> 0.8)
stackprof
stoplight (~> 3.0.1)
strong_migrations (~> 0.8)
strong_migrations (= 1.7.0)
test-prof
thor (~> 1.2)
tty-prompt (~> 0.23)
@ -953,4 +956,4 @@ RUBY VERSION
ruby 3.2.2p53
BUNDLED WITH
2.4.13
2.5.4

View File

@ -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
stream: env PORT=4000 yarn workspace @mastodon/streaming start
webpack: bin/webpack-dev-server

View File

@ -67,10 +67,10 @@ Mastodon acts as an OAuth2 provider, so 3rd party apps can use the REST and Stre
### Requirements
- **PostgreSQL** 9.5+
- **PostgreSQL** 12+
- **Redis** 4+
- **Ruby** 2.7+
- **Node.js** 14+
- **Node.js** 16+
The repository includes deployment configurations for **Docker and docker-compose** as well as specific platforms like **Heroku**, **Scalingo**, and **Nanobox**. For Helm charts, reference the [mastodon/chart repository](https://github.com/mastodon/chart). The [**standalone** installation guide](https://docs.joinmastodon.org/admin/install/) is available in the documentation.
@ -94,9 +94,10 @@ To set up **MacOS** for native development, complete the following steps:
- Run `brew install postgresql@14`
- Run `brew install redis`
- Run `brew install imagemagick`
- Run `brew install libidn`
- Install Foreman or a similar tool (such as [overmind](https://github.com/DarthSim/overmind)) to handle multiple process launching.
- Navigate to Mastodon's root directory and run `brew install nvm` then `nvm use` to use the version from .nvmrc
- Run `corepack enable && yarn set version classic`
- Run `corepack enable && corepack prepare`
- Run `bundle exec rails db:setup` (optionally prepend `RAILS_ENV=development` to target the dev environment)
- Finally, run `overmind start -f Procfile.dev`
@ -132,7 +133,7 @@ You can open issues for bugs you've found or features you think are missing. You
## License
Copyright (C) 2016-2023 Eugen Rochko & other Mastodon contributors (see [AUTHORS.md](AUTHORS.md))
Copyright (C) 2016-2024 Eugen Rochko & other Mastodon contributors (see [AUTHORS.md](AUTHORS.md))
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

View File

@ -13,9 +13,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions
| Version | Supported |
| ------- | ---------------- |
| 4.1.x | Yes |
| 4.0.x | Until 2023-10-31 |
| 3.5.x | Until 2023-12-31 |
| < 3.5 | No |
| Version | Supported |
| ------- | --------- |
| 4.2.x | Yes |
| 4.1.x | Yes |
| < 4.1 | No |

10
Vagrantfile vendored
View File

@ -10,7 +10,11 @@ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo apt-add-repository 'deb https://dl.yarnpkg.com/debian/ stable main'
# Add repo for NodeJS
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
# Add firewall rule to redirect 80 to PORT and save
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port #{ENV["PORT"]}
@ -112,11 +116,11 @@ bundle install
# Install node modules
sudo corepack enable
yarn set version classic
corepack prepare
yarn install
# Build Mastodon
export RAILS_ENV=development
export RAILS_ENV=development
export $(cat ".env.vagrant" | xargs)
bundle exec rails db:setup

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class AccountsIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s'), analysis: {
filter: {
english_stop: {
@ -60,7 +62,7 @@ class AccountsIndex < Chewy::Index
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(:last_status_at, type: 'date', value: ->(account) { clamp_date(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' }

View File

@ -0,0 +1,14 @@
# frozen_string_literal: true
module DatetimeClampingConcern
extend ActiveSupport::Concern
MIN_ISO8601_DATETIME = '0000-01-01T00:00:00Z'.to_datetime.freeze
MAX_ISO8601_DATETIME = '9999-12-31T23:59:59Z'.to_datetime.freeze
class_methods do
def clamp_date(datetime)
datetime.clamp(MIN_ISO8601_DATETIME, MAX_ISO8601_DATETIME)
end
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class PublicStatusesIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
@ -53,7 +55,7 @@ class PublicStatusesIndex < Chewy::Index
index_scope ::Status.unscoped
.kept
.indexable
.includes(:media_attachments, :preloadable_poll, :preview_cards, :tags)
.includes(:media_attachments, :preloadable_poll, :tags, preview_cards_status: :preview_card)
root date_detection: false do
field(:id, type: 'long')
@ -62,6 +64,6 @@ class PublicStatusesIndex < Chewy::Index
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')
field(:created_at, type: 'date', value: ->(status) { clamp_date(status.created_at) })
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class StatusesIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
@ -50,7 +52,7 @@ class StatusesIndex < Chewy::Index
},
}
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? }
index_scope ::Status.unscoped.kept.without_reblogs.includes(:media_attachments, :local_mentioned, :local_favorited, :local_reblogged, :local_bookmarked, :tags, preview_cards_status: :preview_card, preloadable_poll: :local_voters), delete_if: ->(status) { status.searchable_by.empty? }
root date_detection: false do
field(:id, type: 'long')
@ -60,6 +62,6 @@ class StatusesIndex < Chewy::Index
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')
field(:created_at, type: 'date', value: ->(status) { clamp_date(status.created_at) })
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class TagsIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s'), analysis: {
analyzer: {
content: {
@ -42,6 +44,6 @@ class TagsIndex < Chewy::Index
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 })
field(:last_status_at, type: 'date', value: ->(tag) { clamp_date(tag.last_status_at || tag.created_at) })
end
end

View File

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

View File

@ -18,8 +18,6 @@ class AccountsController < ApplicationController
respond_to do |format|
format.html do
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
format.rss do
@ -52,7 +50,7 @@ class AccountsController < ApplicationController
end
def only_media_scope
Status.joins(:media_attachments).merge(@account.media_attachments.reorder(nil)).group(:id)
Status.joins(:media_attachments).merge(@account.media_attachments).group(:id)
end
def no_replies_scope
@ -84,29 +82,21 @@ class AccountsController < ApplicationController
short_account_url(@account, format: 'rss')
end
end
helper_method :rss_url
def media_requested?
request.path.split('.').first.end_with?('/media') && !tag_requested?
path_without_format.end_with?('/media') && !tag_requested?
end
def replies_requested?
request.path.split('.').first.end_with?('/with_replies') && !tag_requested?
path_without_format.end_with?('/with_replies') && !tag_requested?
end
def tag_requested?
request.path.split('.').first.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize)
path_without_format.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize)
end
def cached_filtered_status_page
cache_collection_paginated_by_id(
filtered_statuses,
Status,
PAGE_SIZE,
params_slice(:max_id, :min_id, :since_id)
)
end
def params_slice(*keys)
params.slice(*keys).permit(*keys)
def path_without_format
request.path.split('.').first
end
end

View File

@ -24,7 +24,7 @@ class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseContro
end
def set_items
@items = @account.followers.where(Account.arel_table[:uri].matches("#{Account.sanitize_sql_like(uri_prefix)}/%", false, true)).or(@account.followers.where(uri: uri_prefix)).pluck(:uri)
@items = @account.followers.matches_uri_prefix(uri_prefix).pluck(:uri)
end
def collection_presenter

View File

@ -24,7 +24,7 @@ class ActivityPub::InboxesController < ActivityPub::BaseController
def unknown_affected_account?
json = Oj.load(body, mode: :strict)
json.is_a?(Hash) && %w(Delete Update).include?(json['type']) && json['actor'].present? && json['actor'] == value_or_id(json['object']) && !Account.where(uri: json['actor']).exists?
json.is_a?(Hash) && %w(Delete Update).include?(json['type']) && json['actor'].present? && json['actor'] == value_or_id(json['object']) && !Account.exists?(uri: json['actor'])
rescue Oj::ParseError
false
end

View File

@ -21,7 +21,7 @@ module Admin
account_action.save!
if account_action.with_report?
redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: params[:report_id])
redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: resource_params[:report_id])
else
redirect_to admin_account_path(@account.id)
end

View File

@ -16,7 +16,7 @@ module Admin
@moderation_notes = @account.targeted_moderation_notes.latest
@warnings = @account.strikes.custom.latest
render template: 'admin/accounts/show'
render 'admin/accounts/show'
end
end

View File

@ -6,7 +6,7 @@ module Admin
def index
authorize :audit_log, :index?
@auditable_accounts = Account.where(id: Admin::ActionLog.reorder(nil).select('distinct account_id')).select(:id, :username)
@auditable_accounts = Account.auditable.select(:id, :username)
end
private

View File

@ -3,11 +3,11 @@
module Admin
class ConfirmationsController < BaseController
before_action :set_user
before_action :check_confirmation, only: [:resend]
before_action :redirect_confirmed_user, only: [:resend], if: :user_confirmed?
def create
authorize @user, :confirm?
@user.confirm!
@user.mark_email_as_confirmed!
log_action :confirm, @user
redirect_to admin_accounts_path
end
@ -25,11 +25,13 @@ module Admin
private
def check_confirmation
if @user.confirmed?
flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed')
redirect_to admin_accounts_path
end
def redirect_confirmed_user
flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed')
redirect_to admin_accounts_path
end
def user_confirmed?
@user.confirmed?
end
end
end

View File

@ -20,7 +20,7 @@ class Admin::Disputes::AppealsController < Admin::BaseController
authorize @appeal, :approve?
log_action :reject, @appeal
@appeal.reject!(current_account)
UserMailer.appeal_rejected(@appeal.account.user, @appeal)
UserMailer.appeal_rejected(@appeal.account.user, @appeal).deliver_later
redirect_to disputes_strike_path(@appeal.strike)
end

View File

@ -33,7 +33,7 @@ module Admin
# Disallow accidentally downgrading a domain block
if existing_domain_block.present? && !@domain_block.stricter_than?(existing_domain_block)
@domain_block.save
@domain_block.validate
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)
return render :new

View File

@ -38,9 +38,9 @@ module Admin
log_action :create, @email_domain_block
(@email_domain_block.other_domains || []).uniq.each do |domain|
next if EmailDomainBlock.where(domain: domain).exists?
next if EmailDomainBlock.exists?(domain: domain)
other_email_domain_block = EmailDomainBlock.create!(domain: domain, parent: @email_domain_block)
other_email_domain_block = EmailDomainBlock.create!(domain: domain, allow_with_approval: @email_domain_block.allow_with_approval, parent: @email_domain_block)
log_action :create, other_email_domain_block
end
end
@ -65,7 +65,7 @@ module Admin
end
def resource_params
params.require(:email_domain_block).permit(:domain, other_domains: [])
params.require(:email_domain_block).permit(:domain, :allow_with_approval, other_domains: [])
end
def form_email_domain_block_batch_params

View File

@ -4,7 +4,7 @@ require 'csv'
module Admin
class ExportDomainAllowsController < BaseController
include AdminExportControllerConcern
include Admin::ExportControllerConcern
before_action :set_dummy_import!, only: [:new]

View File

@ -4,7 +4,7 @@ require 'csv'
module Admin
class ExportDomainBlocksController < BaseController
include AdminExportControllerConcern
include Admin::ExportControllerConcern
before_action :set_dummy_import!, only: [:new]
@ -49,7 +49,7 @@ module Admin
next
end
@warning_domains = Instance.where(domain: @domain_blocks.map(&:domain)).where('EXISTS (SELECT 1 FROM follows JOIN accounts ON follows.account_id = accounts.id OR follows.target_account_id = accounts.id WHERE accounts.domain = instances.domain)').pluck(:domain)
@warning_domains = instances_from_imported_blocks.pluck(:domain)
rescue ActionController::ParameterMissing
flash.now[:alert] = I18n.t('admin.export_domain_blocks.no_file')
set_dummy_import!
@ -58,6 +58,10 @@ module Admin
private
def instances_from_imported_blocks
Instance.with_domain_follows(@domain_blocks.map(&:domain))
end
def export_filename
'domain_blocks.csv'
end
@ -68,7 +72,7 @@ module Admin
def export_data
CSV.generate(headers: export_headers, write_headers: true) do |content|
DomainBlock.with_limitations.each do |instance|
DomainBlock.with_limitations.order(id: :asc).each do |instance|
content << [instance.domain, instance.severity, instance.reject_media, instance.reject_reports, instance.public_comment, instance.obfuscate]
end
end

View File

@ -8,7 +8,7 @@ module Admin
authorize :follow_recommendation, :show?
@form = Form::AccountBatch.new
@accounts = filtered_follow_recommendations
@accounts = filtered_follow_recommendations.page(params[:page])
end
def update

View File

@ -49,7 +49,7 @@ module Admin
private
def set_instance
@instance = Instance.find(TagManager.instance.normalize_domain(params[:id]&.strip))
@instance = Instance.find_or_initialize_by(domain: TagManager.instance.normalize_domain(params[:id]&.strip))
end
def set_instances

View File

@ -24,7 +24,7 @@ module Admin
@relay.enable!
redirect_to admin_relays_path
else
render action: :new
render :new
end
end

View File

@ -26,7 +26,7 @@ module Admin
@form = Admin::StatusBatchAction.new
@statuses = @report.statuses.with_includes
render template: 'admin/reports/show'
render 'admin/reports/show'
end
end

View File

@ -31,6 +31,11 @@ module Admin
private
def batched_ordered_status_edits
@status.edits.includes(:account, status: [:account]).find_each(order: :asc)
end
helper_method :batched_ordered_status_edits
def admin_status_batch_action_params
params.require(:admin_status_batch_action).permit(status_ids: [])
end

View File

@ -4,9 +4,10 @@ class Api::BaseController < ApplicationController
DEFAULT_STATUSES_LIMIT = 20
DEFAULT_ACCOUNTS_LIMIT = 40
include RateLimitHeaders
include AccessTokenTrackingConcern
include ApiCachingConcern
include Api::RateLimitHeaders
include Api::AccessTokenTrackingConcern
include Api::CachingConcern
include Api::ContentSecurityPolicy
skip_before_action :require_functional!, unless: :limited_federation_mode?
@ -17,26 +18,6 @@ class Api::BaseController < ApplicationController
protect_from_forgery with: :null_session
content_security_policy do |p|
# Set every directive that does not have a fallback
p.default_src :none
p.frame_ancestors :none
p.form_action :none
# Disable every directive with a fallback to cut on response size
p.base_uri false
p.font_src false
p.img_src false
p.style_src false
p.media_src false
p.frame_src false
p.manifest_src false
p.connect_src false
p.script_src false
p.child_src false
p.worker_src false
end
rescue_from ActiveRecord::RecordInvalid, Mastodon::ValidationError do |e|
render json: { error: e.to_s }, status: 422
end
@ -83,7 +64,7 @@ class Api::BaseController < ApplicationController
end
def doorkeeper_unauthorized_render_options(error: nil)
{ json: { error: (error.try(:description) || 'Not authorized') } }
{ json: { error: error.try(:description) || 'Not authorized' } }
end
def doorkeeper_forbidden_render_options(*)
@ -124,7 +105,11 @@ class Api::BaseController < ApplicationController
end
def require_not_suspended!
render json: { error: 'Your login is currently disabled' }, status: 403 if current_user&.account&.suspended?
render json: { error: 'Your login is currently disabled' }, status: 403 if current_user&.account&.unavailable?
end
def require_valid_pagination_options!
render json: { error: 'Pagination values for `offset` and `limit` must be positive' }, status: 400 if pagination_options_invalid?
end
def require_user!
@ -155,6 +140,10 @@ class Api::BaseController < ApplicationController
private
def pagination_options_invalid?
params.slice(:limit, :offset).values.map(&:to_i).any?(&:negative?)
end
def respond_with_error(code)
render json: { error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code
end

View File

@ -16,6 +16,8 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController
current_user.update(user_params) if user_params
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
render json: @account, serializer: REST::CredentialAccountSerializer
rescue ActiveRecord::RecordInvalid => e
render json: ValidationErrorFormatter.new(e).as_json, status: 422
end
private

View File

@ -12,7 +12,7 @@ class Api::V1::Accounts::FamiliarFollowersController < Api::BaseController
private
def set_accounts
@accounts = Account.without_suspended.where(id: account_ids).select('id, hide_collections').index_by(&:id).values_at(*account_ids).compact
@accounts = Account.without_suspended.where(id: account_ids).select('id, hide_collections')
end
def familiar_followers

View File

@ -21,16 +21,16 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController
return [] if hide_results?
scope = default_accounts
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id
scope = scope.not_excluded_by_account(current_account) unless current_account.nil? || current_account.id == @account.id
scope.merge(paginated_follows).to_a
end
def hide_results?
@account.suspended? || (@account.hides_followers? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account))
@account.unavailable? || (@account.hides_followers? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account))
end
def default_accounts
Account.includes(:active_relationships, :account_stat).references(:active_relationships)
Account.includes(:active_relationships, :account_stat, :user).references(:active_relationships)
end
def paginated_follows

View File

@ -21,16 +21,16 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController
return [] if hide_results?
scope = default_accounts
scope = scope.where.not(id: current_account.excluded_from_timeline_account_ids) unless current_account.nil? || current_account.id == @account.id
scope = scope.not_excluded_by_account(current_account) unless current_account.nil? || current_account.id == @account.id
scope.merge(paginated_follows).to_a
end
def hide_results?
@account.suspended? || (@account.hides_following? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account))
@account.unavailable? || (@account.hides_following? && current_account&.id != @account.id) || (current_account && @account.blocking?(current_account))
end
def default_accounts
Account.includes(:passive_relationships, :account_stat).references(:passive_relationships)
Account.includes(:passive_relationships, :account_stat, :user).references(:passive_relationships)
end
def paginated_follows

View File

@ -25,6 +25,6 @@ class Api::V1::Accounts::NotesController < Api::BaseController
end
def relationships_presenter
AccountRelationshipsPresenter.new([@account.id], current_user.account_id)
AccountRelationshipsPresenter.new([@account], current_user.account_id)
end
end

View File

@ -25,6 +25,6 @@ class Api::V1::Accounts::PinsController < Api::BaseController
end
def relationships_presenter
AccountRelationshipsPresenter.new([@account.id], current_user.account_id)
AccountRelationshipsPresenter.new([@account], current_user.account_id)
end
end

View File

@ -5,10 +5,8 @@ class Api::V1::Accounts::RelationshipsController < Api::BaseController
before_action :require_user!
def index
accounts = Account.without_suspended.where(id: account_ids).select('id')
# .where doesn't guarantee that our results are in the same order
# we requested them, so return the "right" order to the requestor.
@accounts = accounts.index_by(&:id).values_at(*account_ids).compact
@accounts = Account.where(id: account_ids).select(:id, :domain)
@accounts.merge!(Account.without_suspended) unless truthy_param?(:with_suspended)
render json: @accounts, each_serializer: REST::RelationshipSerializer, relationships: relationships
end

View File

@ -19,7 +19,7 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
end
def load_statuses
@account.suspended? ? [] : cached_account_statuses
@account.unavailable? ? [] : cached_account_statuses
end
def cached_account_statuses

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class Api::V1::AccountsController < Api::BaseController
include RegistrationHelper
before_action -> { authorize_if_got_token! :read, :'read:accounts' }, except: [:create, :follow, :unfollow, :remove_from_followers, :block, :unblock, :mute, :unmute]
before_action -> { doorkeeper_authorize! :follow, :write, :'write:follows' }, only: [:follow, :unfollow, :remove_from_followers]
before_action -> { doorkeeper_authorize! :follow, :write, :'write:mutes' }, only: [:mute, :unmute]
@ -47,7 +49,7 @@ class Api::V1::AccountsController < Api::BaseController
end
def mute
MuteService.new.call(current_user.account, @account, notifications: truthy_param?(:notifications), duration: (params[:duration]&.to_i || 0))
MuteService.new.call(current_user.account, @account, notifications: truthy_param?(:notifications), duration: params[:duration].to_i)
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
end
@ -86,22 +88,18 @@ class Api::V1::AccountsController < Api::BaseController
end
def relationships(**options)
AccountRelationshipsPresenter.new([@account.id], current_user.account_id, **options)
AccountRelationshipsPresenter.new([@account], current_user.account_id, **options)
end
def account_params
params.permit(:username, :email, :password, :agreement, :locale, :reason, :time_zone)
params.permit(:username, :email, :password, :agreement, :locale, :reason, :time_zone, :invite_code)
end
def invite
Invite.find_by(code: params[:invite_code]) if params[:invite_code].present?
end
def check_enabled_registrations
forbidden if single_user_mode? || omniauth_only? || !allowed_registrations?
end
def allowed_registrations?
Setting.registrations_mode != 'none'
end
def omniauth_only?
ENV['OMNIAUTH_ONLY'] == 'true'
forbidden unless allowed_registration?(request.remote_ip, invite)
end
end

View File

@ -55,7 +55,7 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController
end
def resource_params
params.permit(:domain)
params.permit(:domain, :allow_with_approval)
end
def insert_pagination_headers

View File

@ -0,0 +1,30 @@
# frozen_string_literal: true
class Api::V1::AnnualReportsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }, only: :index
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, except: :index
before_action :require_user!
before_action :set_annual_report, except: :index
def index
with_read_replica do
@presenter = AnnualReportsPresenter.new(GeneratedAnnualReport.where(account_id: current_account.id).pending)
@relationships = StatusRelationshipsPresenter.new(@presenter.statuses, current_account.id)
end
render json: @presenter,
serializer: REST::AnnualReportsSerializer,
relationships: @relationships
end
def read
@annual_report.view!
render_empty
end
private
def set_annual_report
@annual_report = GeneratedAnnualReport.find_by!(account_id: current_account.id, year: params[:id])
end
end

View File

@ -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

View File

@ -17,7 +17,7 @@ class Api::V1::BlocksController < Api::BaseController
end
def paginated_blocks
@paginated_blocks ||= Block.eager_load(target_account: :account_stat)
@paginated_blocks ||= Block.eager_load(target_account: [:account_stat, :user])
.joins(:target_account)
.merge(Account.without_suspended)
.where(account: current_account)

View File

@ -41,10 +41,10 @@ class Api::V1::ConversationsController < Api::BaseController
account: :account_stat,
last_status: [
:media_attachments,
:preview_cards,
:status_stat,
:tags,
{
preview_cards_status: :preview_card,
active_mentions: [account: :account_stat],
account: :account_stat,
},

View File

@ -12,7 +12,7 @@ class Api::V1::DirectoriesController < Api::BaseController
private
def require_enabled!
return not_found unless Setting.profile_directory
not_found unless Setting.profile_directory
end
def set_accounts
@ -27,7 +27,7 @@ class Api::V1::DirectoriesController < Api::BaseController
scope.merge!(local_account_scope) if local_accounts?
scope.merge!(account_exclusion_scope) if current_account
scope.merge!(account_domain_block_scope) if current_account && !local_accounts?
end
end.includes(:account_stat, user: :role)
end
def local_accounts?

View File

@ -25,7 +25,7 @@ class Api::V1::EndorsementsController < Api::BaseController
end
def endorsed_accounts
current_account.endorsed_accounts.includes(:account_stat).without_suspended
current_account.endorsed_accounts.includes(:account_stat, :user).without_suspended
end
def insert_pagination_headers

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