480 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| require:
 | |
|   - rubocop-rails
 | |
|   - rubocop-rspec
 | |
|   - rubocop-performance
 | |
| 
 | |
| AllCops:
 | |
|   TargetRubyVersion: 2.7
 | |
|   DisplayCopNames: true
 | |
|   DisplayStyleGuide: true
 | |
|   ExtraDetails: true
 | |
|   UseCache: true
 | |
|   CacheRootDirectory: tmp
 | |
|   NewCops: enable
 | |
|   Exclude:
 | |
|     - db/schema.rb
 | |
|     - 'app/views/**/*'
 | |
|     - 'config/**/*'
 | |
|     - 'bin/*'
 | |
|     - 'Rakefile'
 | |
|     - 'node_modules/**/*'
 | |
|     - 'Vagrantfile'
 | |
|     - 'vendor/**/*'
 | |
|     - 'lib/json_ld/*'
 | |
|     - 'lib/templates/**/*'
 | |
| 
 | |
| Bundler/OrderedGems:
 | |
|   Enabled: false
 | |
| 
 | |
| Layout/AccessModifierIndentation:
 | |
|   EnforcedStyle: indent
 | |
| 
 | |
| Layout/EmptyLineAfterMagicComment:
 | |
|   Enabled: false
 | |
| 
 | |
| Layout/EmptyLineAfterGuardClause:
 | |
|   Enabled: false
 | |
| 
 | |
| Layout/EmptyLineBetweenDefs:
 | |
|   AllowAdjacentOneLineDefs: true
 | |
| 
 | |
| Layout/EmptyLinesAroundAttributeAccessor:
 | |
|   Enabled: true
 | |
| 
 | |
| Layout/FirstHashElementIndentation:
 | |
|   EnforcedStyle: consistent
 | |
| 
 | |
| Layout/HashAlignment:
 | |
|   Enabled: false
 | |
| 
 | |
| Layout/SpaceAroundMethodCallOperator:
 | |
|   Enabled: true
 | |
| 
 | |
| Layout/SpaceInsideHashLiteralBraces:
 | |
|   EnforcedStyle: space
 | |
| 
 | |
| Lint/DeprecatedOpenSSLConstant:
 | |
|   Enabled: true
 | |
| 
 | |
| Lint/DuplicateElsifCondition:
 | |
|   Enabled: true
 | |
| 
 | |
| Lint/MixedRegexpCaptureTypes:
 | |
|   Enabled: true
 | |
| 
 | |
| Lint/RaiseException:
 | |
|   Enabled: true
 | |
| 
 | |
| Lint/StructNewOverride:
 | |
|   Enabled: true
 | |
| 
 | |
| Lint/UselessAccessModifier:
 | |
|   ContextCreatingMethods:
 | |
|     - class_methods
 | |
| 
 | |
| Metrics/AbcSize:
 | |
|   Max: 34 # RuboCop default 17
 | |
|   Exclude:
 | |
|     - 'lib/**/*cli*.rb'
 | |
|     - db/*migrate/**/*
 | |
|     - lib/paperclip/color_extractor.rb
 | |
|     - app/workers/scheduler/follow_recommendations_scheduler.rb
 | |
|     - app/services/activitypub/fetch*_service.rb
 | |
|     - lib/paperclip/**/*
 | |
|   CountRepeatedAttributes: false
 | |
|   AllowedMethods:
 | |
|     - update_media_attachments!
 | |
|     - account_link_to
 | |
|     - attempt_oembed
 | |
|     - build_crutches
 | |
|     - calculate_scores
 | |
|     - cc
 | |
|     - dump_actor!
 | |
|     - filter_from_home?
 | |
|     - hydrate
 | |
|     - import_bookmarks!
 | |
|     - import_relationships!
 | |
|     - initialize
 | |
|     - link_to_mention
 | |
|     - log_target
 | |
|     - matches_time_window?
 | |
|     - parse_metadata
 | |
|     - perform_statuses_search!
 | |
|     - privatize_media_attachments!
 | |
|     - process_update
 | |
|     - publish_media_attachments!
 | |
|     - remotable_attachment
 | |
|     - render_initial_state
 | |
|     - render_with_cache
 | |
|     - searchable_by
 | |
|     - self.cached_filters_for
 | |
|     - set_fetchable_attributes!
 | |
|     - signed_request_actor
 | |
|     - statuses_to_delete
 | |
|     - update_poll!
 | |
| 
 | |
| Metrics/BlockLength:
 | |
|   Max: 55
 | |
|   Exclude:
 | |
|     - 'lib/mastodon/*_cli.rb'
 | |
|   CountComments: false
 | |
|   CountAsOne: [array, heredoc]
 | |
|   AllowedMethods:
 | |
|     - task
 | |
|     - namespace
 | |
|     - class_methods
 | |
|     - included
 | |
| 
 | |
| Metrics/BlockNesting:
 | |
|   Max: 3
 | |
|   Exclude:
 | |
|     - 'lib/mastodon/*_cli.rb'
 | |
| 
 | |
| Metrics/ClassLength:
 | |
|   CountComments: false
 | |
|   Max: 500
 | |
|   CountAsOne: [array, heredoc]
 | |
|   Exclude:
 | |
|     - 'lib/mastodon/*_cli.rb'
 | |
| 
 | |
| Metrics/CyclomaticComplexity:
 | |
|   Max: 12
 | |
|   Exclude:
 | |
|     - lib/mastodon/*cli*.rb
 | |
|     - db/*migrate/**/*
 | |
|   AllowedMethods:
 | |
|     - attempt_oembed
 | |
|     - blocked?
 | |
|     - build_crutches
 | |
|     - calculate_scores
 | |
|     - cc
 | |
|     - discover_endpoint!
 | |
|     - filter_from_home?
 | |
|     - hydrate
 | |
|     - klass
 | |
|     - link_to_mention
 | |
|     - log_target
 | |
|     - matches_time_window?
 | |
|     - patch_for_forwarding!
 | |
|     - preprocess_attributes!
 | |
|     - process_update
 | |
|     - remotable_attachment
 | |
|     - scan_text!
 | |
|     - self.cached_filters_for
 | |
|     - set_fetchable_attributes!
 | |
|     - setup_redis_env_url
 | |
|     - update_media_attachments!
 | |
| 
 | |
| Layout/LineLength:
 | |
|   Max: 140 # RuboCop default 120
 | |
|   AllowHeredoc: true
 | |
|   AllowURI: true
 | |
|   IgnoreCopDirectives: true
 | |
|   AllowedPatterns:
 | |
|     # Allow comments to be long lines
 | |
|     - !ruby/regexp / \# .*$/
 | |
|     - !ruby/regexp /^\# .*$/
 | |
|   Exclude:
 | |
|     - lib/**/*cli*.rb
 | |
|     - db/*migrate/**/*
 | |
|     - db/seeds/**/*
 | |
| 
 | |
| Metrics/MethodLength:
 | |
|   CountComments: false
 | |
|   CountAsOne: [array, heredoc]
 | |
|   Max: 25 # RuboCop default 10
 | |
|   Exclude:
 | |
|     - 'lib/mastodon/*_cli.rb'
 | |
|   AllowedMethods:
 | |
|     - account_link_to
 | |
|     - attempt_oembed
 | |
|     - body_with_limit
 | |
|     - build_crutches
 | |
|     - cached_filters_for
 | |
|     - calculate_scores
 | |
|     - check_webfinger!
 | |
|     - clean_feeds!
 | |
|     - collection_items
 | |
|     - collection_presenter
 | |
|     - copy_account_notes!
 | |
|     - deduplicate_accounts!
 | |
|     - deduplicate_conversations!
 | |
|     - deduplicate_local_accounts!
 | |
|     - deduplicate_statuses!
 | |
|     - deduplicate_tags!
 | |
|     - deduplicate_users!
 | |
|     - discover_endpoint!
 | |
|     - extract_extra_uris_with_indices
 | |
|     - extract_hashtags_with_indices
 | |
|     - extract_mentions_or_lists_with_indices
 | |
|     - filter_from_home?
 | |
|     - from_elasticsearch
 | |
|     - handle_explicit_update!
 | |
|     - handle_mark_as_sensitive!
 | |
|     - hsl_to_rgb
 | |
|     - import_bookmarks!
 | |
|     - import_domain_blocks!
 | |
|     - import_relationships!
 | |
|     - ldap_options
 | |
|     - matches_time_window?
 | |
|     - outbox_presenter
 | |
|     - pam_get_user
 | |
|     - parallelize_with_progress
 | |
|     - parse_and_transform
 | |
|     - patch_for_forwarding!
 | |
|     - populate_home
 | |
|     - post_process_style
 | |
|     - preload_cache_collection_target_statuses
 | |
|     - privatize_media_attachments!
 | |
|     - provides_callback_for
 | |
|     - publish_media_attachments!
 | |
|     - relevant_account_timestamp
 | |
|     - remotable_attachment
 | |
|     - rgb_to_hsl
 | |
|     - rss_status_content_format
 | |
|     - set_fetchable_attributes!
 | |
|     - setup_redis_env_url
 | |
|     - signed_request_actor
 | |
|     - to_preview_card_attributes
 | |
|     - upgrade_storage_filesystem
 | |
|     - upgrade_storage_s3
 | |
|     - user_settings_params
 | |
|     - hydrate
 | |
|     - cc
 | |
|     - self_destruct
 | |
| 
 | |
| Metrics/ModuleLength:
 | |
|   CountComments: false
 | |
|   Max: 200
 | |
|   CountAsOne: [array, heredoc]
 | |
| 
 | |
| Metrics/ParameterLists:
 | |
|   Max: 5 # RuboCop default 5
 | |
|   CountKeywordArgs: true # RuboCop default true
 | |
|   MaxOptionalParameters: 3 # RuboCop default 3
 | |
|   Exclude:
 | |
|     - app/models/concerns/account_interactions.rb
 | |
|     - app/services/activitypub/fetch_remote_account_service.rb
 | |
|     - app/services/activitypub/fetch_remote_actor_service.rb
 | |
| 
 | |
| Metrics/PerceivedComplexity:
 | |
|   Max: 16 # RuboCop default 8
 | |
|   AllowedMethods:
 | |
|     - attempt_oembed
 | |
|     - build_crutches
 | |
|     - calculate_scores
 | |
|     - deduplicate_users!
 | |
|     - discover_endpoint!
 | |
|     - filter_from_home?
 | |
|     - hydrate
 | |
|     - patch_for_forwarding!
 | |
|     - process_update
 | |
|     - remove_orphans
 | |
|     - update_media_attachments!
 | |
| 
 | |
| Naming/MemoizedInstanceVariableName:
 | |
|   Enabled: false
 | |
| 
 | |
| Naming/MethodParameterName:
 | |
|   Enabled: true
 | |
| 
 | |
| Rails:
 | |
|   Enabled: true
 | |
| 
 | |
| Rails/ApplicationController:
 | |
|   Enabled: false
 | |
|   Exclude:
 | |
|     - 'app/controllers/well_known/**/*.rb'
 | |
| 
 | |
| Rails/BelongsTo:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/ContentTag:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/EnumHash:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/Exit:
 | |
|   Exclude:
 | |
|     - 'lib/mastodon/*'
 | |
|     - 'lib/cli.rb'
 | |
| 
 | |
| Rails/FilePath:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/HasAndBelongsToMany:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/HasManyOrHasOneDependent:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/HelperInstanceVariable:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/HttpStatus:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/IndexBy:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/InverseOf:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/LexicallyScopedActionFilter:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/OutputSafety:
 | |
|   Enabled: true
 | |
| 
 | |
| Rails/RakeEnvironment:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/RedundantForeignKey:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/SkipsModelValidations:
 | |
|   Enabled: false
 | |
| 
 | |
| Rails/UniqueValidationWithoutIndex:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/AccessorGrouping:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/AccessModifierDeclarations:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/ArrayCoercion:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/BisectedAttrAccessor:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/CaseLikeIf:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/ClassAndModuleChildren:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/CollectionMethods:
 | |
|   Enabled: true
 | |
|   PreferredMethods:
 | |
|     find_all: 'select'
 | |
| 
 | |
| Style/Documentation:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/DoubleNegation:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/ExpandPathArguments:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/ExponentialNotation:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/FormatString:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/FormatStringToken:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/FrozenStringLiteralComment:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/GuardClause:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/HashAsLastArrayItem:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/HashEachMethods:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/HashLikeCase:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/HashTransformKeys:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/HashTransformValues:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/HashSyntax:
 | |
|   Enabled: true
 | |
|   EnforcedStyle: ruby19_no_mixed_keys
 | |
| 
 | |
| Style/IfUnlessModifier:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/InverseMethods:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/Lambda:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/MutableConstant:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/PercentLiteralDelimiters:
 | |
|   PreferredDelimiters:
 | |
|     '%i': '()'
 | |
|     '%w': '()'
 | |
| 
 | |
| Style/PerlBackrefs:
 | |
|   AutoCorrect: false
 | |
| 
 | |
| Style/RedundantFetchBlock:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/RedundantFileExtensionInRequire:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/RedundantRegexpCharacterClass:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/RedundantRegexpEscape:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/RedundantReturn:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/RedundantBegin:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/RegexpLiteral:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/RescueStandardError:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/SignalException:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/SlicingWithRange:
 | |
|   Enabled: true
 | |
| 
 | |
| Style/SymbolArray:
 | |
|   Enabled: false
 | |
| 
 | |
| Style/TrailingCommaInArrayLiteral:
 | |
|   EnforcedStyleForMultiline: 'comma'
 | |
| 
 | |
| Style/TrailingCommaInHashLiteral:
 | |
|   EnforcedStyleForMultiline: 'comma'
 | |
| 
 | |
| Style/UnpackFirst:
 | |
|   Enabled: false
 | |
| 
 | |
| RSpec/ScatteredSetup:
 | |
|   Enabled: false
 | |
| RSpec/ImplicitExpect:
 | |
|   Enabled: false
 | |
| RSpec/NamedSubject:
 | |
|   Enabled: false
 | |
| RSpec/DescribeClass:
 | |
|   Enabled: false
 | |
| RSpec/LetSetup:
 | |
|   Enabled: false
 |