Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream 20240524 #746

Merged
merged 116 commits into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
5a3062f
Pass the CodeCov token from the secret to the action (#30219)
renchap May 10, 2024
6819bcc
Update dependency glob to v10.3.14 (#30230)
renovate[bot] May 10, 2024
6ccee26
Update dependency rubocop to v1.63.5 (#30225)
renovate[bot] May 10, 2024
c36a878
Fix typo (#30224)
cheeaun May 10, 2024
0a4a930
Update Yarn to v4.2.2 (#30220)
renovate[bot] May 10, 2024
1aa3976
Update dependency pino-http to v10.1.0 (#30199)
renovate[bot] May 10, 2024
3a5a1b2
Update dependency node to 20.13 (#30211)
renovate[bot] May 10, 2024
c9557bd
New Crowdin Translations (automated) (#30215)
github-actions[bot] May 10, 2024
040aaf3
Use `default: ...` assignment for Devise config, fixes `Style/ClassVa…
mjankowski May 10, 2024
fa43a6c
Use more accurate `redirect_uri` in oauth spec (#30212)
mjankowski May 10, 2024
f3f6310
Update dependency @reduxjs/toolkit to v2.2.4 (#30223)
renovate[bot] May 10, 2024
e20f2e7
Update i18n to version 1.14.5 (#30198)
mjankowski May 10, 2024
164b09b
Update README.md setup steps (#30063)
joshuay03 May 10, 2024
0d397db
Consolidate system specs into single directory, use rspec tags for co…
mjankowski May 10, 2024
68b9fe8
Add OpenTelemetry instrumentation (#30130)
renchap May 10, 2024
ded11ec
Update dependency pundit to v2.3.2 (#30222)
renovate[bot] May 10, 2024
d933e6b
Update dependency opentelemetry-instrumentation-concurrent_ruby to v0…
renovate[bot] May 10, 2024
af71f23
Update dependency opentelemetry-instrumentation-excon to v0.22.2 (#30…
renovate[bot] May 10, 2024
482d108
Update dependency opentelemetry-instrumentation-faraday to v0.24.3 (#…
renovate[bot] May 10, 2024
d09b02e
Group Ruby OTEL packages in Renovate PRs (#30242)
renchap May 10, 2024
9920f41
Update opentelemetry-ruby (non-major) (#30249)
renovate[bot] May 10, 2024
3465307
Update dependency utf-8-validate to v6.0.4 (#30248)
renovate[bot] May 10, 2024
1959365
Add missing `on_delete: :cascade` on `notification_policies` (#30251)
ClearlyClaire May 10, 2024
807cf35
Update dependency eslint-plugin-jsdoc to v48.2.4 (#30274)
renovate[bot] May 13, 2024
ab4efa3
Update dependency @testing-library/react to v15.0.7 (#30273)
renovate[bot] May 13, 2024
471728d
Update DefinitelyTyped types (non-major) (#30272)
renovate[bot] May 13, 2024
5e7d88a
Update dependency glob to v10.3.15 (#30263)
renovate[bot] May 13, 2024
123108b
Update dependency postcss-preset-env to v9.5.12 (#30256)
renovate[bot] May 13, 2024
f66c9fa
Update dependency sass to v1.77.1 (#30252)
renovate[bot] May 13, 2024
cb93c1e
Add active animation to header settings button (#30221)
daudix May 13, 2024
c66fdb3
Update dependency immutable to v4.3.6 (#30276)
renovate[bot] May 13, 2024
b429c9b
fix(bin/dev): makes conditional for launching overmind POSIX-complian…
abrokenjester May 13, 2024
6e1b8b3
Update opentelemetry-ruby (non-major) (#30262)
renovate[bot] May 13, 2024
9ec7c1f
Fix i18n:extract flags (#30261)
nschonni May 13, 2024
13fb549
Enable Style/IfUnlessModifier RuboCop (#30260)
nschonni May 13, 2024
3a7aec2
New Crowdin Translations (automated) (#30254)
github-actions[bot] May 13, 2024
b5b84fa
Fix OpenSearch compatibility issue (#30278)
ClearlyClaire May 14, 2024
1bf661c
Fix missing prop warning for `<Account>` (#30291)
renchap May 14, 2024
38a330f
fix(deps): update dependency core-js to v3.37.1 (#30293)
renovate[bot] May 15, 2024
508e93e
chore(deps): update dependency fog-openstack to v1.1.1 (#30295)
renovate[bot] May 15, 2024
44e855d
chore(deps): update dependency nokogiri to v1.16.5 [security] (#30289)
renovate[bot] May 15, 2024
4063951
Retain unconfirmed users longer (1 week) (#30285)
renchap May 15, 2024
7f7eba8
chore(deps): update dependency letter_opener_web to v3 (#30296)
renovate[bot] May 15, 2024
78a8263
fix(deps): update dependency postcss-preset-env to v9.5.13 (#30286)
renovate[bot] May 15, 2024
aad5e84
New Crowdin Translations (automated) (#30290)
github-actions[bot] May 15, 2024
6beead3
Move `simplecov` config into `rails_helper` (#30302)
mjankowski May 15, 2024
85c625d
Fix repetitive database queries from #30040 (#30259)
JasonPunyon May 15, 2024
4e085df
chore(deps): update dependency aws-sdk-s3 to v1.151.0 (#30287)
renovate[bot] May 15, 2024
c2ca3d1
Fix off-by-one in `tootctl media` commands (#30306)
ClearlyClaire May 15, 2024
5fd5651
Improve Report Notes and Account Moderation Notes (#30288)
ThisIsMissEm May 15, 2024
d5d3a0f
fix(deps): update dependency pino to v9.1.0 (#30283)
renovate[bot] May 15, 2024
ca560c1
Disable `Style/RedundantFetchBlock` cop (#30207)
mjankowski May 15, 2024
94493cf
Fix incorrect element selector from #30221 (#30307)
daudix May 16, 2024
60b423b
chore(deps): update dependency rspec-sidekiq to v5 (#30314)
renovate[bot] May 16, 2024
c9ee143
Use ruby language constants to build version string in software versi…
mjankowski May 16, 2024
cdb042a
New Crowdin Translations (automated) (#30319)
github-actions[bot] May 16, 2024
356bbba
fix(deps): update dependency @reduxjs/toolkit to v2.2.5 (#30320)
renovate[bot] May 16, 2024
f0d6dc4
Fix: Mark redirect uris field in Development > Application form as re…
ThisIsMissEm May 16, 2024
65e8221
Rename `cache_*` methods to `preload_*` in controller concern (#30209)
mjankowski May 16, 2024
283a891
Allow to customise the OTEL service name prefix (#30322)
renchap May 16, 2024
1b6eb2c
Enable YJIT when available (#30310)
mjankowski May 16, 2024
66906a1
Fix Web UI trying to save user settings when logged out (#30324)
ClearlyClaire May 16, 2024
b2388be
chore(deps): update dependency selenium-webdriver to v4.21.0 (#30325)
renovate[bot] May 16, 2024
094ff9d
Merge remote-tracking branch 'parent/main' into upstream-20240517
kmycode May 16, 2024
0a9e094
Fix test/lint
kmycode May 17, 2024
c07986f
Fix lint
kmycode May 17, 2024
2399d8a
fix test
kmycode May 17, 2024
795c510
Fix test
kmycode May 17, 2024
ba1225d
Fix lint
kmycode May 17, 2024
c46f5ba
Fix lint
kmycode May 17, 2024
d28f147
Fix test
kmycode May 17, 2024
226d7a7
fix(deps): update dependency sass to v1.77.2 (#30338)
renovate[bot] May 17, 2024
f7f5b9d
fix(deps): update dependency @rails/ujs to v7.1.3-3 (#30337)
renovate[bot] May 17, 2024
3286ad5
chore(deps): update dependency selenium-webdriver to v4.21.1 (#30335)
renovate[bot] May 17, 2024
fc166d0
chore(deps): update dependency rails to v7.1.3.3 (#30334)
renovate[bot] May 17, 2024
a6d1229
Remove duplicate method def `ApplicationHelper#instance_presenter` (#…
mjankowski May 17, 2024
bff7769
New Crowdin Translations (automated) (#30336)
github-actions[bot] May 17, 2024
a627219
Fix moderation action logs (#30342)
tribela May 17, 2024
12472e7
Add emphasis on ActiveRecord Encryption configuration values being se…
ClearlyClaire May 17, 2024
2da2a1d
Support multiple redirect_uris when creating OAuth 2.0 Applications (…
ThisIsMissEm May 17, 2024
6282b6d
Fix og:image requests when html in a web page is over 1.megabyte (#30…
phocks May 19, 2024
a178ba7
Use a modern React context for identity in the app (#30098)
renchap May 19, 2024
0a343b9
fix(deps): update react monorepo to v18.3.1 (#30074)
renovate[bot] May 19, 2024
0f07e1c
Fix yarn.lock diff (#30366)
nschonni May 19, 2024
990a0c1
Fix a warning when running JS Tests because of FakeIdentityContext us…
renchap May 20, 2024
778bd96
chore(deps): update dependency @types/lodash to v4.17.4 (#30371)
renovate[bot] May 20, 2024
814d00c
chore(deps): update dependency @formatjs/cli to v6.2.12 (#30370)
renovate[bot] May 20, 2024
8b75d18
New Crowdin Translations (automated) (#30358)
github-actions[bot] May 20, 2024
0ce2285
fix(deps): update dependency @rails/ujs to v7.1.3 (#30356)
renovate[bot] May 20, 2024
9658d3e
Use the job class as span name for Sidekiq root spans (#30353)
renchap May 20, 2024
70608f8
Add coverage for `AdminMailer#auto_close_registrations` (#30349)
mjankowski May 20, 2024
def6b68
Fix `Rails/WhereRange` cop (#30343)
mjankowski May 20, 2024
de4815a
Add more tests for self-destruct mode (#30374)
ClearlyClaire May 20, 2024
2bcbeed
Add some error handling to OTP secret migration (#30344)
ClearlyClaire May 20, 2024
00cf8d3
Change older Paperclip database migrations for consistency (#30204)
ClearlyClaire May 20, 2024
0a2110b
Add coverage for custom filters (#30347)
mjankowski May 20, 2024
8c925de
chore(deps): update dependency rubocop-rails to v2.25.0 (#30341)
renovate[bot] May 20, 2024
0663c7d
fix(deps): update formatjs monorepo (#30359)
renovate[bot] May 20, 2024
eda2bdf
New Crowdin Translations (automated) (#30383)
github-actions[bot] May 21, 2024
89f89d7
Revert "Allow unblocking email addresses from any matching account (#…
ClearlyClaire May 21, 2024
3222386
Add coverage to `/admin/accounts/:id` (#30386)
ClearlyClaire May 21, 2024
cd0c547
Fix announcements icon rotating like settings one (#30388)
daudix May 21, 2024
6e67ca7
fix(deps): update dependency axios to v1.7.2 (#30372)
renovate[bot] May 22, 2024
d9d4ba1
fix(deps): update dependency glob to v10.3.16 (#30392)
renovate[bot] May 22, 2024
a2b4c29
New Crowdin Translations (automated) (#30394)
github-actions[bot] May 22, 2024
2c75cf8
Add "Warning preset" link to admin navigation (#26199)
vmstan May 22, 2024
2c5ab8f
Remove the access token from Redux & context (#30275)
renchap May 22, 2024
15d3070
Fix some API calls that should not use an API token (#30401)
renchap May 23, 2024
5b5a35c
New Crowdin Translations (automated) (#30402)
github-actions[bot] May 23, 2024
3a86243
Remove unused account record in api/v2/admin/accounts spec (#30397)
mjankowski May 23, 2024
10ec421
Proposal: a modern & typed way of writing Redux actions doing API req…
renchap May 23, 2024
133d98f
Normalize language code of incoming posts (#30403)
ClearlyClaire May 23, 2024
b6fd14f
Fix `createDataLoadingThunk` and related actions (#30408)
renchap May 23, 2024
749816a
Merge branch 'upstream-20240517' into upstream-20240524
kmycode May 23, 2024
c546939
Merge remote-tracking branch 'parent/main' into upstream-20240524
kmycode May 23, 2024
dc7778c
Fix rubocop
kmycode May 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .env.test
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ LOCAL_HTTPS=true
# Elasticsearch
ES_PREFIX=test

# Required by ActiveRecord encryption feature
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=fkSxKD2bF396kdQbrP1EJ7WbU7ZgNokR
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=r0hvVmzBVsjxC7AMlwhOzmtc36ZCOS1E
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=PhdFyyfy5xJ7WVd2lWBpcPScRQHzRTNr
# Secret values required by ActiveRecord encryption feature
# Use `bin/rails db:encryption:init` to generate fresh secrets
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=test_determinist_key_DO_NOT_USE_IN_PRODUCTION
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=test_salt_DO_NOT_USE_IN_PRODUCTION
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=test_primary_key_DO_NOT_USE_IN_PRODUCTION
7 changes: 7 additions & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,13 @@
matchUpdateTypes: ['patch', 'minor'],
groupName: 'RSpec (non-major)',
},
{
// Group all opentelemetry-ruby packages in the same PR
matchManagers: ['bundler'],
matchPackagePrefixes: ['opentelemetry-'],
matchUpdateTypes: ['patch', 'minor'],
groupName: 'opentelemetry-ruby (non-major)',
},
// Add labels depending on package manager
{ matchManagers: ['npm', 'nvm'], addLabels: ['javascript'] },
{ matchManagers: ['bundler', 'ruby-version'], addLabels: ['ruby'] },
Expand Down
98 changes: 0 additions & 98 deletions .github/workflows/elasticsearch-settings/elasticsearch.yml

This file was deleted.

65 changes: 34 additions & 31 deletions .github/workflows/test-ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ jobs:
uses: codecov/codecov-action@v4
with:
files: coverage/lcov/mastodon.lcov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

test-e2e:
name: End to End testing
Expand Down Expand Up @@ -186,6 +188,8 @@ jobs:
RAILS_ENV: test
BUNDLE_WITH: test
ES_ENABLED: false
LOCAL_DOMAIN: localhost:3000
LOCAL_HTTPS: false

strategy:
fail-fast: false
Expand Down Expand Up @@ -215,7 +219,7 @@ jobs:
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'

- run: bundle exec rake spec:system
- run: bin/rspec spec/system --tag streaming --tag js

- name: Archive logs
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -262,6 +266,33 @@ jobs:
ports:
- 6379:6379

elasticsearch:
image: ${{ contains(matrix.search-image, 'elasticsearch') && matrix.search-image || '' }}
env:
discovery.type: single-node
xpack.security.enabled: false
options: >-
--health-cmd "curl http://localhost:9200/_cluster/health"
--health-interval 10s
--health-timeout 5s
--health-retries 10
ports:
- 9200:9200

opensearch:
image: ${{ contains(matrix.search-image, 'opensearch') && matrix.search-image || '' }}
env:
discovery.type: single-node
DISABLE_INSTALL_DEMO_CONFIG: true
DISABLE_SECURITY_PLUGIN: true
options: >-
--health-cmd "curl http://localhost:9200/_cluster/health"
--health-interval 10s
--health-timeout 5s
--health-retries 10
ports:
- 9200:9200

env:
DB_HOST: localhost
DB_USER: postgres
Expand All @@ -285,6 +316,8 @@ jobs:
include:
- ruby-version: '.ruby-version'
search-image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2
- ruby-version: '.ruby-version'
search-image: opensearchproject/opensearch:2

steps:
- uses: actions/checkout@v4
Expand All @@ -303,36 +336,6 @@ jobs:
- name: Set up Javascript environment
uses: ./.github/actions/setup-javascript

- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144

- name: Install Elasticsearch
run: |
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-amd64.deb.sha512
shasum -a 512 -c elasticsearch-7.17.10-amd64.deb.sha512
sudo dpkg -i elasticsearch-7.17.10-amd64.deb
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/WorksApplications/elasticsearch-sudachi/releases/download/v3.1.0/elasticsearch-7.17.10-analysis-sudachi-3.1.0.zip

- name: Install dictionary
run: |
wget http://sudachi.s3-website-ap-northeast-1.amazonaws.com/sudachidict/sudachi-dictionary-latest-core.zip
unzip sudachi-dictionary-latest-core.zip
sudo mkdir /etc/elasticsearch/sudachi -p
sudo cp sudachi-dictionary-*/system_core.dic /etc/elasticsearch/sudachi

- name: Set security settings
run: |
sudo cp .github/workflows/elasticsearch-settings/elasticsearch.yml /etc/elasticsearch

- name: Running Elasticsearch
run: |
sudo systemctl start elasticsearch

- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'

Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.12
20.13
5 changes: 5 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,11 @@ Style/PercentLiteralDelimiters:
Style/RedundantBegin:
Enabled: false

# Reason: Prevailing style choice
# https://docs.rubocop.org/rubocop/cops_style.html#styleredundantfetchblock
Style/RedundantFetchBlock:
Enabled: false

# Reason: Overridden to reduce implicit StandardError rescues
# https://docs.rubocop.org/rubocop/cops_style.html#stylerescuestandarderror
Style/RescueStandardError:
Expand Down
25 changes: 2 additions & 23 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
@@ -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.62.1.
# using RuboCop version 1.63.5.
# 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
Expand Down Expand Up @@ -58,10 +58,6 @@ Style/ClassEqualityComparison:
- 'app/helpers/jsonld_helper.rb'
- 'app/serializers/activitypub/outbox_serializer.rb'

Style/ClassVars:
Exclude:
- 'config/initializers/devise.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
Expand All @@ -78,7 +74,7 @@ Style/FetchEnvVar:
- 'config/initializers/vapid.rb'
- 'lib/mastodon/redis_config.rb'
- 'lib/tasks/repo.rake'
- 'spec/features/profile_spec.rb'
- 'spec/system/profile_spec.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns.
Expand Down Expand Up @@ -130,13 +126,6 @@ Style/HashTransformValues:
- 'app/serializers/rest/web_push_subscription_serializer.rb'
- 'app/services/import_service.rb'

# This cop supports safe autocorrection (--autocorrect).
Style/IfUnlessModifier:
Exclude:
- 'config/environments/production.rb'
- 'config/initializers/devise.rb'
- 'config/initializers/ffmpeg.rb'

# This cop supports unsafe autocorrection (--autocorrect-all).
Style/MapToHash:
Exclude:
Expand Down Expand Up @@ -184,16 +173,6 @@ Style/RedundantConstantBase:
- 'config/environments/production.rb'
- 'config/initializers/sidekiq.rb'

# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SafeForConstants.
Style/RedundantFetchBlock:
Exclude:
- 'config/initializers/1_hosts.rb'
- 'config/initializers/chewy.rb'
- 'config/initializers/devise.rb'
- 'config/initializers/paperclip.rb'
- 'config/puma.rb'

# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
# AllowedMethods: present?, blank?, presence, try, try!
Expand Down
22 changes: 0 additions & 22 deletions .simplecov

This file was deleted.

24 changes: 21 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ gem 'htmlentities', '~> 4.3'
gem 'http', '~> 5.2.0'
gem 'http_accept_language', '~> 2.1'
gem 'httplog', '~> 1.6.2'
gem 'i18n', '1.14.1' # TODO: Remove version when resolved: https://github.com/glebm/i18n-tasks/issues/552 / https://github.com/ruby-i18n/i18n/pull/688
gem 'i18n'
gem 'idn-ruby', require: 'idn'
gem 'inline_svg'
gem 'kaminari', '~> 1.2'
Expand Down Expand Up @@ -103,6 +103,24 @@ gem 'rdf-normalize', '~> 0.5'

gem 'private_address_check', '~> 0.5'

group :opentelemetry do
gem 'opentelemetry-exporter-otlp', '~> 0.26.3', require: false
gem 'opentelemetry-instrumentation-active_job', '~> 0.7.1', require: false
gem 'opentelemetry-instrumentation-active_model_serializers', '~> 0.20.1', require: false
gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false
gem 'opentelemetry-instrumentation-excon', '~> 0.22.0', require: false
gem 'opentelemetry-instrumentation-faraday', '~> 0.24.1', require: false
gem 'opentelemetry-instrumentation-http', '~> 0.23.2', require: false
gem 'opentelemetry-instrumentation-http_client', '~> 0.22.3', require: false
gem 'opentelemetry-instrumentation-net_http', '~> 0.22.4', require: false
gem 'opentelemetry-instrumentation-pg', '~> 0.27.1', require: false
gem 'opentelemetry-instrumentation-rack', '~> 0.24.1', require: false
gem 'opentelemetry-instrumentation-rails', '~> 0.30.0', require: false
gem 'opentelemetry-instrumentation-redis', '~> 0.25.3', require: false
gem 'opentelemetry-instrumentation-sidekiq', '~> 0.25.2', require: false
gem 'opentelemetry-sdk', '~> 1.4', require: false
end

group :test do
# Adds RSpec Error/Warning annotations to GitHub PRs on the Files tab
gem 'rspec-github', '~> 2.4', require: false
Expand All @@ -114,7 +132,7 @@ group :test do
gem 'email_spec'

# Extra RSpec extension methods and helpers for sidekiq
gem 'rspec-sidekiq', '~> 4.0'
gem 'rspec-sidekiq', '~> 5.0'

# Browser integration testing
gem 'capybara', '~> 3.39'
Expand Down Expand Up @@ -160,7 +178,7 @@ group :development do

# Preview mail in the browser
gem 'letter_opener', '~> 1.8'
gem 'letter_opener_web', '~> 2.0'
gem 'letter_opener_web', '~> 3.0'

# Security analysis CLI tools
gem 'brakeman', '~> 6.0', require: false
Expand Down
Loading
Loading